From b5e22c126422abdbaa707fd01a09862ca2ffb667 Mon Sep 17 00:00:00 2001 From: Will Smith Date: Mon, 17 Aug 2020 14:10:02 -0400 Subject: [PATCH 01/39] Allow CLI to reference StackScript script by path This adds the new spec extension defined in https://github.com/linode/linode-cli/pull/205 to the StackScript object's `script` attribute. This extension overrides the "format" for this property, but only for the Linode CLI. --- openapi.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/openapi.yaml b/openapi.yaml index 5549ba09b..130f8b2fa 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -18064,6 +18064,7 @@ components: The script to execute when provisioning a new Linode with this StackScript. example: > "#!/bin/bash" + x-linode-cli-format: file user_defined_fields: type: array description: > From c0928327aa5730aa516abefb43960ac136b0b728 Mon Sep 17 00:00:00 2001 From: Will Smith Date: Mon, 17 Aug 2020 14:12:26 -0400 Subject: [PATCH 02/39] Document new spec extension --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 23dee1633..8490e8484 100644 --- a/README.md +++ b/README.md @@ -52,3 +52,4 @@ Attribute | Location | Type | Supported By | Explanation `x-linode-cli-rows`| media type | array | A list of JSON paths where the CLI can find the value it should treat as table rows. Only needed for irregular endpoints. `x-linode-cli-use-schema` | media type | schema or $ref | The schema the CLI should use when showing a row for this response. Use with `x-linode-cli-rows`. `x-linode-cli-nested-list` | media type | string | The name of the property defined by this response body's schema that is a nested list. Items in the list will be broken out into rows in the CLI's output. +`x-linode-cli-format` | schema properties | string | Overrides the value of the "format" field for this property, but for the CLI only. Currently, the only valid value is `file`. From c51d16c6d6921b981e880edda071afbc6737d4fd Mon Sep 17 00:00:00 2001 From: hzoppetti Date: Tue, 25 Aug 2020 13:36:31 -0400 Subject: [PATCH 03/39] removed disks from examples, added required to type and count on node_pools in create cluster --- openapi.yaml | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/openapi.yaml b/openapi.yaml index 713fc7b27..45e5bffd6 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -6336,6 +6336,9 @@ paths: $ref: '#/components/schemas/LKECluster/properties/tags' node_pools: type: array + required: + - type + - count items: $ref: '#/components/schemas/LKENodePoolRequestBody' responses: @@ -6360,13 +6363,7 @@ paths: "node_pools": [ { "type": "g6-standard-4", - "count": 6, - "disks": [ - { - "size": 1028, - "type": "ext4" - } - ] + "count": 6 }, { "type": "g6-standard-8", @@ -6655,13 +6652,7 @@ paths: -H "Authorization: Bearer $TOKEN" \ -X POST -d '{ "type": "g6-standard-4", - "count": 6, - "disks": [ - { - "size": 1028, - "type": "ext4" - } - ] + "count": 6 }' \ https://api.linode.com/v4/lke/clusters/12345/pools - lang: CLI @@ -16198,6 +16189,11 @@ components: disks: type: array description: > + **Note**: This field should be omitted except for special use cases. The disks specified here are + partitions in *addition* to the primary partition and reduce the size of the primary partition, + which can lead to stability problems for the Node. + + This Node Pool's custom disk layout. Each item in this array will create a new disk partition for each node in this Node Pool. @@ -16205,9 +16201,6 @@ components: * The maximum number of custom disk partitions that can be configured is 7. * Once the requested disk paritions are allocated, the remaining disk space is allocated to the node's boot disk. * A Node Pool's custom disk layout is immutable over the lifetime of the Node Pool. - - **Note**: If this field is omitted, the node will have a default disk layout consisting of a single partition. - A custom layout is only required for specific use cases. items: type: object description: > From b09cf3c46b316aa31031c1f3045281b93155965d Mon Sep 17 00:00:00 2001 From: hzoppetti Date: Tue, 25 Aug 2020 14:10:54 -0400 Subject: [PATCH 04/39] removed disks from cli examples --- openapi.yaml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/openapi.yaml b/openapi.yaml index 45e5bffd6..ab09b43e8 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -6378,7 +6378,7 @@ paths: --label cluster12345 \ --region us-central \ --k8s_version 1.16 \ - --node_pools.type g6-standard-4 --node_pools.count 6 --node_pools.disks '[{"size": 1028, "type": "ext4"}]' \ + --node_pools.type g6-standard-4 --node_pools.count 6 \ --node_pools.type g6-standard-8 --node_pools.count 3 \ --tags ecomm /lke/clusters/{clusterId}: @@ -6659,8 +6659,7 @@ paths: source: > linode-cli lke pool-create 12345 \ --type g6-standard-4 \ - --count 6 \ - --disks '[{"size": 1028, "type": "ext4"}]' + --count 6' /lke/clusters/{clusterId}/pools/{poolId}: parameters: - name: clusterId From cc9e2901afed44f4182804162f2dba0fa2b9c667 Mon Sep 17 00:00:00 2001 From: hzoppetti Date: Tue, 25 Aug 2020 14:21:54 -0400 Subject: [PATCH 05/39] removed stray apostrophe --- openapi.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openapi.yaml b/openapi.yaml index ab09b43e8..f0c3efe82 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -6659,7 +6659,7 @@ paths: source: > linode-cli lke pool-create 12345 \ --type g6-standard-4 \ - --count 6' + --count 6 /lke/clusters/{clusterId}/pools/{poolId}: parameters: - name: clusterId From 4bf6fbd5a6fde1c674a7ef083c71fa80419cfc18 Mon Sep 17 00:00:00 2001 From: Will Smith Date: Wed, 26 Aug 2020 13:08:22 -0400 Subject: [PATCH 06/39] Added second accepted format This is to support https://github.com/linode/linode-cli/pull/206 --- README.md | 2 +- openapi.yaml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8490e8484..8ef6c8d98 100644 --- a/README.md +++ b/README.md @@ -52,4 +52,4 @@ Attribute | Location | Type | Supported By | Explanation `x-linode-cli-rows`| media type | array | A list of JSON paths where the CLI can find the value it should treat as table rows. Only needed for irregular endpoints. `x-linode-cli-use-schema` | media type | schema or $ref | The schema the CLI should use when showing a row for this response. Use with `x-linode-cli-rows`. `x-linode-cli-nested-list` | media type | string | The name of the property defined by this response body's schema that is a nested list. Items in the list will be broken out into rows in the CLI's output. -`x-linode-cli-format` | schema properties | string | Overrides the value of the "format" field for this property, but for the CLI only. Currently, the only valid value is `file`. +`x-linode-cli-format` | schema properties | string | Overrides the value of the "format" field for this property, but for the CLI only. Valid values are `file` and `json`. diff --git a/openapi.yaml b/openapi.yaml index 130f8b2fa..c46a63d7c 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -16107,6 +16107,7 @@ components: example: 6 disks: type: array + x-linode-cli-format: json description: > This Node Pool's custom disk layout. Each item in this array will create a new disk partition for each node in this Node Pool. From 73ecc22937b1c4876fbfab210ee2f85496a0a6e1 Mon Sep 17 00:00:00 2001 From: Will Smith Date: Wed, 26 Aug 2020 13:25:01 -0400 Subject: [PATCH 07/39] Grouped new extension with other schema property extensions --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8ef6c8d98..3cd970ee7 100644 --- a/README.md +++ b/README.md @@ -44,6 +44,7 @@ Attribute | Location | Type | Supported By | Explanation `x-linode-grant` | method | string | | The level of access a user must have in order to call this endpoint. `x-linode-cli-display` | schema properties | integer | linode-cli | If truthy, this property will be displayed in the Linode CLI. The numeric value determines the ordering of the displayed columns, left to right. `x-linode-cli-color` | schema properties | object | linode-cli | A mapping of possible property values to color codes understood by python's [colorclass module](https://pypi.python.org/pypi/colorclass). Must include a `default_`, used for any value that doesn't match one of the keys. +`x-linode-cli-format` | schema properties | string | Overrides the value of the "format" field for this property, but for the CLI only. Valid values are `file` and `json`. `x-linode-cli-command` | path | string | linode-cli | The command group the methods of this path fall into when generating commands in the `linode-cli ` format. `x-linode-cli-action` | method | string | linode-cli | The action this method will be mapped to when generating commands in the `linode-cli ` format. `x-linode-cli-skip` | method | boolean | linode-cli | If true, the CLI will not expose this action. @@ -52,4 +53,3 @@ Attribute | Location | Type | Supported By | Explanation `x-linode-cli-rows`| media type | array | A list of JSON paths where the CLI can find the value it should treat as table rows. Only needed for irregular endpoints. `x-linode-cli-use-schema` | media type | schema or $ref | The schema the CLI should use when showing a row for this response. Use with `x-linode-cli-rows`. `x-linode-cli-nested-list` | media type | string | The name of the property defined by this response body's schema that is a nested list. Items in the list will be broken out into rows in the CLI's output. -`x-linode-cli-format` | schema properties | string | Overrides the value of the "format" field for this property, but for the CLI only. Valid values are `file` and `json`. From 81684ab72ae324d1615813b55df2dd9e4df120cd Mon Sep 17 00:00:00 2001 From: Will Smith Date: Wed, 26 Aug 2020 13:26:12 -0400 Subject: [PATCH 08/39] Add proper "supported by" to table --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3cd970ee7..eff7a0c1c 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ Attribute | Location | Type | Supported By | Explanation `x-linode-grant` | method | string | | The level of access a user must have in order to call this endpoint. `x-linode-cli-display` | schema properties | integer | linode-cli | If truthy, this property will be displayed in the Linode CLI. The numeric value determines the ordering of the displayed columns, left to right. `x-linode-cli-color` | schema properties | object | linode-cli | A mapping of possible property values to color codes understood by python's [colorclass module](https://pypi.python.org/pypi/colorclass). Must include a `default_`, used for any value that doesn't match one of the keys. -`x-linode-cli-format` | schema properties | string | Overrides the value of the "format" field for this property, but for the CLI only. Valid values are `file` and `json`. +`x-linode-cli-format` | schema properties | string | linode-cli | Overrides the value of the "format" field for this property, but for the CLI only. Valid values are `file` and `json`. `x-linode-cli-command` | path | string | linode-cli | The command group the methods of this path fall into when generating commands in the `linode-cli ` format. `x-linode-cli-action` | method | string | linode-cli | The action this method will be mapped to when generating commands in the `linode-cli ` format. `x-linode-cli-skip` | method | boolean | linode-cli | If true, the CLI will not expose this action. From c212ef2d53d25ff26d2e321aa98b061116005fe7 Mon Sep 17 00:00:00 2001 From: Will Smith Date: Wed, 26 Aug 2020 13:27:49 -0400 Subject: [PATCH 09/39] Fill in "supported by" for other CLI extensions --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index eff7a0c1c..3514ae26f 100644 --- a/README.md +++ b/README.md @@ -50,6 +50,6 @@ Attribute | Location | Type | Supported By | Explanation `x-linode-cli-skip` | method | boolean | linode-cli | If true, the CLI will not expose this action. `x-linode-redoc-load-ids`| operation | boolean | If true, ReDoc will load this path and print a bulleted list of IDs. This only works on public collections. `x-linode-ref-name`| keyword | string | [Linode Developer's Site](https://github.com/linode/developers) | Provides a mechanism by which the Developer's site can generate a dropdown menu with an Object's name when using the `oneOf` keyword with a `discriminator`. **Note**: This front end functionality is currently being developed. -`x-linode-cli-rows`| media type | array | A list of JSON paths where the CLI can find the value it should treat as table rows. Only needed for irregular endpoints. -`x-linode-cli-use-schema` | media type | schema or $ref | The schema the CLI should use when showing a row for this response. Use with `x-linode-cli-rows`. -`x-linode-cli-nested-list` | media type | string | The name of the property defined by this response body's schema that is a nested list. Items in the list will be broken out into rows in the CLI's output. +`x-linode-cli-rows`| media type | array | linode-cli | A list of JSON paths where the CLI can find the value it should treat as table rows. Only needed for irregular endpoints. +`x-linode-cli-use-schema` | media type | schema or $ref | linode-cli | The schema the CLI should use when showing a row for this response. Use with `x-linode-cli-rows`. +`x-linode-cli-nested-list` | media type | string | linode-cli | The name of the property defined by this response body's schema that is a nested list. Items in the list will be broken out into rows in the CLI's output. From 8ca715e8974d39c2f1682f30c892ff4b292942b1 Mon Sep 17 00:00:00 2001 From: hzoppetti Date: Wed, 26 Aug 2020 13:47:58 -0400 Subject: [PATCH 10/39] update language for view user grants to differentiate between account user and account owner --- openapi.yaml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/openapi.yaml b/openapi.yaml index 713fc7b27..fee2d5326 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -2088,11 +2088,14 @@ paths: - Account summary: View User's grants description: > - Returns the full grants structure for this User. This includes all - entities on the Account alongside what level of access this User has - to each of them. Individual users may view their own grants at the - [/profile/grants](/api/v4/profile-grants) - endpoint, but will not see entities that they have no access to. + Returns the full grants structure for the specified account User + (other than the account owner, see below). This includes all entities + on the Account alongside what level of access this User has to each of them. + + + The current authenticated User, including the account owner, may view their + own grants at the [/profile/grants](/api/v4/profile-grants) + endpoint, but will not see entities that they do not have access to. operationId: getUserGrants x-linode-cli-action: grants x-linode-cli-skip: true From 063fdf293971f41c71a086119698a71a28f0a984 Mon Sep 17 00:00:00 2001 From: Will Smith Date: Mon, 31 Aug 2020 08:00:10 -0400 Subject: [PATCH 11/39] Filled in IPv6Range object Closes https://github.com/linode/linode-cli/issues/207 It was reported above that the CLI wasn't showing complete output for IPv6 Ranges compared to IPv6 Pools. Turns out this is because the docs were missing several fields for ranges. This PR adds the missing fields to IPv6Ranges. I based the descriptions and values off of the equivalent fields in IPv6Pool. --- openapi.yaml | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/openapi.yaml b/openapi.yaml index 61390d6bc..b159e8cf3 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -15300,13 +15300,26 @@ components: example: '2600:3c01::02:5000::' readOnly: true x-linode-cli-display: 1 + prefix: + type: integer + description: > + The prefix length of the address, denoting how many addresses can be + assigned from this range calculated as 2 128-prefix. + example: 64 + x-linode-cli-display: 2 region: type: string description: > The region for this range of IPv6 addresses. example: us-east readOnly: true - x-linode-cli-display: 2 + x-linode-cli-display: 3 + route_target: + type: string + description: > + The last address in this block of IPv6 addresses. + example: '2600:3c01::02:5000::ca72' + nullable: true Kernel: type: object description: Linux kernel object From 13e2facf2a4f1d4e95ed9dae5d5a18e6f1dd4e3d Mon Sep 17 00:00:00 2001 From: hzoppetti Date: Mon, 31 Aug 2020 12:07:07 -0400 Subject: [PATCH 12/39] updated nb config to include proxyprotocol --- openapi.yaml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/openapi.yaml b/openapi.yaml index 61390d6bc..b7d7e26ef 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -9437,6 +9437,7 @@ paths: "check_path": "/test", "check_body": "it works", "check_passive": true, + "proxy_protocol": "v1", "cipher_suite": "recommended" }' \ https://api.linode.com/v4/nodebalancers/12345/configs @@ -9454,6 +9455,7 @@ paths: --check_path "/test" \ --check_body "it works" \ --check_passive true \ + --proxy_protocol "v1" \ --cipher_suite recommended /nodebalancers/{nodeBalancerId}/configs/{configId}: parameters: @@ -9548,6 +9550,7 @@ paths: "check_path": "/test", "check_body": "it works", "check_passive": true, + "proxy_protocol": "v1", "cipher_suite": "recommended" }' \ https://api.linode.com/v4/nodebalancers/12345/configs/4567 @@ -9566,6 +9569,7 @@ paths: --check_path "/test" \ --check_body "it works" \ --check_passive true \ + --proxy_protocol "v1" \ --cipher_suite recommended delete: x-linode-grant: read_write @@ -9697,6 +9701,7 @@ paths: "check_path": "/test", "check_body": "it works", "check_passive": true, + "proxy_protocol": "v1", "cipher_suite": "recommended", "nodes": [ { @@ -9730,6 +9735,7 @@ paths: --check_path "/test" \ --check_body "it works" \ --check_passive true \ + --proxy_protocol "v1" \ --cipher_suite recommended /nodebalancers/{nodeBalancerId}/configs/{configId}/nodes: parameters: @@ -17139,6 +17145,13 @@ components: enough for it to be considered unhealthy and taken out of rotation. example: true x-linode-cli-display: 6 + proxy_protocol: + type: string + enum: + - v1 + - v2 + nullable: true + example: v1 cipher_suite: type: string enum: From 66b40198f96f49850e6a6201d38778d277ce4c6b Mon Sep 17 00:00:00 2001 From: Will Smith Date: Tue, 1 Sep 2020 07:30:31 -0400 Subject: [PATCH 13/39] Cleaned up example v6 addresses Made all example v6 addresses valid and correct where they're used. --- openapi.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/openapi.yaml b/openapi.yaml index b159e8cf3..67e5e48af 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -15264,7 +15264,7 @@ components: type: string description: > The IPv6 range of addresses in this pool. - example: '2600:3c01::02:5000::' + example: '2600:3c01::2:5000:0' readOnly: true x-linode-cli-display: 1 prefix: @@ -15286,7 +15286,7 @@ components: type: string description: > The last address in this block of IPv6 addresses. - example: '2600:3c01::02:5000::ca72' + example: '2600:3c01::2:5000:f' nullable: true IPv6Range: type: object @@ -15297,7 +15297,7 @@ components: type: string description: > The IPv6 range of addresses in this pool. - example: '2600:3c01::02:5000::' + example: '2600:3c01::' readOnly: true x-linode-cli-display: 1 prefix: @@ -15318,7 +15318,7 @@ components: type: string description: > The last address in this block of IPv6 addresses. - example: '2600:3c01::02:5000::ca72' + example: '2600:3c01::ffff:ffff:ffff:ffff' nullable: true Kernel: type: object From 996dd5f76848f687403df19e85eaf67c9875f781 Mon Sep 17 00:00:00 2001 From: hzoppetti Date: Tue, 1 Sep 2020 11:58:22 -0400 Subject: [PATCH 14/39] updated enum --- openapi.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openapi.yaml b/openapi.yaml index b7d7e26ef..8f08f3f02 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -17150,7 +17150,7 @@ components: enum: - v1 - v2 - nullable: true + - none example: v1 cipher_suite: type: string From d35b34279cdf11fbdf40ca3617362abe1fe255e9 Mon Sep 17 00:00:00 2001 From: hzoppetti Date: Tue, 1 Sep 2020 12:44:26 -0400 Subject: [PATCH 15/39] update description --- openapi.yaml | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/openapi.yaml b/openapi.yaml index 8f08f3f02..4aa2af38c 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -17146,12 +17146,24 @@ components: example: true x-linode-cli-display: 6 proxy_protocol: + description: > + ProxyProtocol is an internet protocol that sends information as a header on a + TCP connection without losing client data. When used with a NodeBalancer, it + enables the termination of TCP connections. + + + Linode NodeBalancers supports two versions, `v1` and `v2`. `v1` is human readable + text while `v2` makes use of a binary signature. + + + If ommited from the configuration, the default is `none`. type: string enum: - v1 - v2 - none - example: v1 + example: none + default: none cipher_suite: type: string enum: From b593acb46817e6a91938f3088d5f46eec352b7a1 Mon Sep 17 00:00:00 2001 From: hzoppetti Date: Tue, 1 Sep 2020 14:41:37 -0400 Subject: [PATCH 16/39] updated description --- openapi.yaml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/openapi.yaml b/openapi.yaml index 4aa2af38c..9cfd058ae 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -17147,21 +17147,21 @@ components: x-linode-cli-display: 6 proxy_protocol: description: > - ProxyProtocol is an internet protocol that sends information as a header on a - TCP connection without losing client data. When used with a NodeBalancer, it - enables the termination of TCP connections. + ProxyProtocol is a TCP extension that sends initial TCP connection + information such as source/destination IPs and ports to backend devices. + This information would be lost otherwise. Backend devices must be + configured to work with ProxyProtocol if enabled. - Linode NodeBalancers supports two versions, `v1` and `v2`. `v1` is human readable - text while `v2` makes use of a binary signature. - - - If ommited from the configuration, the default is `none`. + * If ommited, or set to `none`, the NodeBalancer doesn't send any auxilary + data over TCP connections. This is the default. + * If set to `v1`, the human-readable header format (Version 1), is used. + * If set to `v2`, the binary header format (Version 2), is used. type: string enum: + - none - v1 - v2 - - none example: none default: none cipher_suite: From e572184ecd09870d669115528544a579c9650816 Mon Sep 17 00:00:00 2001 From: hzoppetti Date: Tue, 1 Sep 2020 14:52:26 -0400 Subject: [PATCH 17/39] formatting the list --- openapi.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/openapi.yaml b/openapi.yaml index 9cfd058ae..7a6781c44 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -17155,8 +17155,10 @@ components: * If ommited, or set to `none`, the NodeBalancer doesn't send any auxilary data over TCP connections. This is the default. - * If set to `v1`, the human-readable header format (Version 1), is used. - * If set to `v2`, the binary header format (Version 2), is used. + + * If set to `v1`, the human-readable header format (Version 1) is used. + + * If set to `v2`, the binary header format (Version 2) is used. type: string enum: - none From e70b24a63c503f7ff71fb8c6e1894bc6fff63b3e Mon Sep 17 00:00:00 2001 From: Ryan Syracuse Date: Tue, 1 Sep 2020 20:44:26 -0400 Subject: [PATCH 18/39] limited access keys update for obj --- openapi.yaml | 46 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/openapi.yaml b/openapi.yaml index 61390d6bc..17d400b4f 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -10692,6 +10692,22 @@ paths: type: string description: The label for this keypair, for display purposes only. example: my-key + bucket_access: + type: object + description: Defines this key as a limited access key, and contains values pertaining to permissions. Limited Access Keys block access to all buckets except for those specified within the object. + properties: + cluster: + type: string + description: The datacenter where a bucket with limited access is hosted. + example: ap-south-1 + bucket_name: + type: string + description: The unique label of the bucket with limited access. + example: example-bucket + permissions: + type: string + description: The permissions for the selected key. Can be `read_write` or `read_only`. + example: read_only responses: '200': description: The new keypair. **This is the only time** the secret key is returned. @@ -10712,7 +10728,15 @@ paths: curl -H "Content-Type: application/json" \ -H "Authorization: Bearer $TOKEN" \ -X POST -d '{ - "label": "my-object-storage-key" + "label": "my-object-storage-key", + "bucket_access": [{ + "cluster": "ap-south-1", + "bucket_name": "bucket-test1", + "permissions": "read_write"}, + { + "cluster": "us-east-1", + "bucket_name": "bucket-test2", + "permissions": "read_only"}] }' \ https://api.linode.com/v4/object-storage/keys - lang: CLI @@ -17697,6 +17721,26 @@ components: description: This keypair's secret key. **Only returned on key creation**. example: '[REDACTED]' readOnly: true + limited: + type: boolean + description: Whether or not this key is a limited access key. Will return `false` if this key grants full access to all buckets on the user's account. + example: true + bucket_access: + type: object + description: Defines this key as a limited access key, and contains values pertaining to permissions. Limited Access Keys block access to all buckets except for those specified within the object. + properties: + cluster: + type: string + description: The datacenter where a bucket with limited access is hosted. + example: ap-south-1 + bucket_name: + type: string + description: The unique label of the bucket with limited access. + example: example-bucket + permissions: + type: string + description: The permissions for the selected key. Can be `read_write` or `read_only`. + example: read_only PaginationEnvelope: type: object description: > From 84cdf6c9ce18c310a34054de8381a86a3be0b47e Mon Sep 17 00:00:00 2001 From: Ryan Syracuse Date: Wed, 2 Sep 2020 12:30:57 -0400 Subject: [PATCH 19/39] Update Key fix --- openapi.yaml | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/openapi.yaml b/openapi.yaml index 17d400b4f..e12f8e8b9 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -10729,14 +10729,18 @@ paths: -H "Authorization: Bearer $TOKEN" \ -X POST -d '{ "label": "my-object-storage-key", - "bucket_access": [{ + "bucket_access": [ + { "cluster": "ap-south-1", "bucket_name": "bucket-test1", - "permissions": "read_write"}, + "permissions": "read_write" + }, { "cluster": "us-east-1", "bucket_name": "bucket-test2", - "permissions": "read_only"}] + "permissions": "read_only" + } + ] }' \ https://api.linode.com/v4/object-storage/keys - lang: CLI @@ -10803,7 +10807,12 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ObjectStorageKey' + type: object + properties: + label: + type: string + description: The label for this keypair, for display purposes only. + example: my-key responses: '200': description: Update Successful From dd876fa658c6a70a7306b40a07e7947c7e69732d Mon Sep 17 00:00:00 2001 From: Ryan Syracuse Date: Thu, 3 Sep 2020 12:37:06 -0400 Subject: [PATCH 20/39] tech/copy fixes --- openapi.yaml | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/openapi.yaml b/openapi.yaml index e12f8e8b9..7e7c20425 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -10693,20 +10693,22 @@ paths: description: The label for this keypair, for display purposes only. example: my-key bucket_access: - type: object + type: array + items: + type: object description: Defines this key as a limited access key, and contains values pertaining to permissions. Limited Access Keys block access to all buckets except for those specified within the object. properties: cluster: type: string - description: The datacenter where a bucket with limited access is hosted. + description: The Object Storage cluster where a bucket to which the key is granting access is hosted. example: ap-south-1 bucket_name: type: string - description: The unique label of the bucket with limited access. + description: The unique label of the bucket to which the key will grant access. example: example-bucket permissions: type: string - description: The permissions for the selected key. Can be `read_write` or `read_only`. + description: The permissions of the key for the selected bucket. Can be `read_write` or `read_only`. example: read_only responses: '200': @@ -10827,7 +10829,7 @@ paths: source: > curl -H "Content-Type: application/json" \ -H "Authorization: Bearer $TOKEN" \ - -x PUT -d '{ + -X PUT -d '{ "label": "my-object-storage-key" }' \ https://api.linode.com/v4/object-storage/keys/12345 @@ -10863,7 +10865,7 @@ paths: - lang: Shell source: > curl -H "Authorization: Bearer $TOKEN" \ - -x DELETE \ + -X DELETE \ https://api.linode.com/v4/object-storage/keys/12345 - lang: CLI source: > @@ -17735,20 +17737,22 @@ components: description: Whether or not this key is a limited access key. Will return `false` if this key grants full access to all buckets on the user's account. example: true bucket_access: - type: object + type: array + items: + type: object description: Defines this key as a limited access key, and contains values pertaining to permissions. Limited Access Keys block access to all buckets except for those specified within the object. properties: cluster: type: string - description: The datacenter where a bucket with limited access is hosted. + description: The Object Storage cluster where a bucket to which the key is granting access is hosted. example: ap-south-1 bucket_name: type: string - description: The unique label of the bucket with limited access. + description: The unique label of the bucket to which the key will grant limited access. example: example-bucket permissions: type: string - description: The permissions for the selected key. Can be `read_write` or `read_only`. + description: The permissions of the key for the selected bucket. Can be `read_write` or `read_only`. example: read_only PaginationEnvelope: type: object From 3a04f37be1d87da810ac8689b169b72da3fa54ab Mon Sep 17 00:00:00 2001 From: hzoppetti Date: Thu, 3 Sep 2020 12:39:04 -0400 Subject: [PATCH 21/39] added POST /linode/instances/{linodeId}/password --- openapi.yaml | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/openapi.yaml b/openapi.yaml index 61390d6bc..296dcfbf0 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -5325,6 +5325,72 @@ paths: - lang: CLI source: > linode-cli linodes upgrade 123 + /linode/instances/{linodeId}/password: + parameters: + - name: linodeId + in: path + description: ID of the linode to reboot. + required: true + schema: + type: integer + x-linode-cli-command: linodes + post: + x-linode-grant: read_write + summary: Reset Linode Root Password + description: > + Resets the root password for a Linode. + + + **Note:** A root password can only be reset using this method + if it has only one non-swap disk. + tags: + - Linode Instances + operationId: resetLinodePassword + x-linode-cli-action: linode-reset-password + security: + - personalAccessToken: [] + - oauth: + - linodes:read_write + requestBody: + description: The new root password. + content: + 'application/json': + schema: + required: + - root_pass + properties: + root_pass: + type: string + description: > + The root user's password on the Linode. Linode passwords + have the following constraints: + + + Must meet a password strength score requirement that is calculated internally + by the API. If the strength requirement is not met, you will receive a + Password does not meet strength requirement error. + example: a$eCure4assw0rd!43v51 + responses: + '200': + description: Password Reset. + content: + application/json: + schema: + type: object + default: + $ref: '#/components/responses/ErrorResponse' + x-code-samples: + - lang: Shell + source: > + curl -H "Content-Type: application/json" \ + -H "Authorization: Bearer $TOKEN" \ + -X POST -d '{ + "root_pass": "a$eCure4assw0rd!43v51" + }' \ + https://api.linode.com/v4/linode/instances/123/password + - lang: CLI + source: > + linode-cli linodes linode-reset-password 123 a$eCure4assw0rd!43v51 /linode/instances/{linodeId}/reboot: parameters: - name: linodeId From 102abab6064c51b584a203bab2d335d09aef3a77 Mon Sep 17 00:00:00 2001 From: leslitagordita Date: Thu, 3 Sep 2020 13:46:26 -0400 Subject: [PATCH 22/39] minor copy edits --- openapi.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openapi.yaml b/openapi.yaml index fee2d5326..5ae28b05c 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -2089,8 +2089,8 @@ paths: summary: View User's grants description: > Returns the full grants structure for the specified account User - (other than the account owner, see below). This includes all entities - on the Account alongside what level of access this User has to each of them. + (other than the account owner, see below for details). This includes all entities + on the Account alongside the level of access this User has to each of them. The current authenticated User, including the account owner, may view their From c3a0de036caae8af9e05e0cbc7767f0b6eceea59 Mon Sep 17 00:00:00 2001 From: leslitagordita Date: Thu, 3 Sep 2020 17:22:41 -0400 Subject: [PATCH 23/39] copy edit --- openapi.yaml | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/openapi.yaml b/openapi.yaml index 296dcfbf0..25930cd95 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -5329,7 +5329,7 @@ paths: parameters: - name: linodeId in: path - description: ID of the linode to reboot. + description: ID of the Linode for which to reset it's root password. required: true schema: type: integer @@ -5338,11 +5338,12 @@ paths: x-linode-grant: read_write summary: Reset Linode Root Password description: > - Resets the root password for a Linode. + Resets the root password for this Linode. + - **Note:** A root password can only be reset using this method - if it has only one non-swap disk. + **Note:** If your Linode has more than one disk (not counting its swap disk), use the + [Reset Disk Root Password](/api/v4/linode-instances-linode-id-disks-disk-id-password/#post) endpoint to update a specific disk's root password. tags: - Linode Instances operationId: resetLinodePassword @@ -5352,7 +5353,7 @@ paths: - oauth: - linodes:read_write requestBody: - description: The new root password. + description: This Linode's new root password. content: 'application/json': schema: @@ -5362,7 +5363,7 @@ paths: root_pass: type: string description: > - The root user's password on the Linode. Linode passwords + The root user's password on this Linode. Linode passwords have the following constraints: From 007ae04467b705f6225364b3b9fe98b701c80cb8 Mon Sep 17 00:00:00 2001 From: leslitagordita Date: Thu, 3 Sep 2020 17:27:07 -0400 Subject: [PATCH 24/39] Add reset root password event to Event schema --- openapi.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/openapi.yaml b/openapi.yaml index 25930cd95..5153f762d 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -14381,6 +14381,7 @@ components: - password_reset - payment_submitted - profile_update + - reset_root_password - stackscript_create - stackscript_delete - stackscript_update From 12f90208952981a6d0318d422ebbe93ef0af92c0 Mon Sep 17 00:00:00 2001 From: leslitagordita Date: Thu, 3 Sep 2020 17:35:52 -0400 Subject: [PATCH 25/39] Add note about root_password_reset event There is a password_reset event, so wanted to make it clear which one corresponds to this endpoint. --- openapi.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/openapi.yaml b/openapi.yaml index 5153f762d..3493626d8 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -5344,6 +5344,9 @@ paths: **Note:** If your Linode has more than one disk (not counting its swap disk), use the [Reset Disk Root Password](/api/v4/linode-instances-linode-id-disks-disk-id-password/#post) endpoint to update a specific disk's root password. + + + A `reset_root_password` event is generated when a root password reset is successful. tags: - Linode Instances operationId: resetLinodePassword From d95589b10127e39827f5753a45e1df74b6c310c0 Mon Sep 17 00:00:00 2001 From: leslitagordita Date: Thu, 3 Sep 2020 18:18:27 -0400 Subject: [PATCH 26/39] The event is password_reset Kept note about the event in the /linode/instances/{linodeId}/password description. --- openapi.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/openapi.yaml b/openapi.yaml index 3493626d8..6cbe51775 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -5346,7 +5346,7 @@ paths: [Reset Disk Root Password](/api/v4/linode-instances-linode-id-disks-disk-id-password/#post) endpoint to update a specific disk's root password. - A `reset_root_password` event is generated when a root password reset is successful. + A `password_reset` event is generated when a root password reset is successful. tags: - Linode Instances operationId: resetLinodePassword @@ -14384,7 +14384,6 @@ components: - password_reset - payment_submitted - profile_update - - reset_root_password - stackscript_create - stackscript_delete - stackscript_update From e7bd7de52359a0f7bd2f07339bb624ec0d9aaaa7 Mon Sep 17 00:00:00 2001 From: leslitagordita Date: Fri, 4 Sep 2020 11:33:48 -0400 Subject: [PATCH 27/39] Update oauth scope --- openapi.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openapi.yaml b/openapi.yaml index 7e7c20425..1f8a89792 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -10679,7 +10679,7 @@ paths: security: - personalAccessToken: [] - oauth: - - object_storage:read_only + - object_storage:read_write requestBody: description: > The label of the key to create. This is used to identify the created key. From cc1fc424b3ad447305403fc993ce77eff3e9a686 Mon Sep 17 00:00:00 2001 From: leslitagordita Date: Fri, 4 Sep 2020 11:46:57 -0400 Subject: [PATCH 28/39] Fix shell example indentation --- openapi.yaml | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/openapi.yaml b/openapi.yaml index 1f8a89792..59805b17d 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -10730,21 +10730,21 @@ paths: curl -H "Content-Type: application/json" \ -H "Authorization: Bearer $TOKEN" \ -X POST -d '{ - "label": "my-object-storage-key", - "bucket_access": [ - { - "cluster": "ap-south-1", - "bucket_name": "bucket-test1", - "permissions": "read_write" - }, - { - "cluster": "us-east-1", - "bucket_name": "bucket-test2", - "permissions": "read_only" - } - ] - }' \ - https://api.linode.com/v4/object-storage/keys + "label": "my-object-storage-key", + "bucket_access": [ + { + "cluster": "ap-south-1", + "bucket_name": "bucket-test1", + "permissions": "read_write" + }, + { + "cluster": "us-east-1", + "bucket_name": "bucket-test2", + "permissions": "read_only" + } + ] + }' \ + https://api.linode.com/v4/object-storage/keys - lang: CLI source: > linode-cli object-storage keys-create \ From 22498d02117f20e5ceff004d4d9a9922bcb92143 Mon Sep 17 00:00:00 2001 From: leslitagordita Date: Fri, 4 Sep 2020 11:53:07 -0400 Subject: [PATCH 29/39] Add bucket_access to CLI example --- openapi.yaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/openapi.yaml b/openapi.yaml index 59805b17d..abddda0cb 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -10734,12 +10734,12 @@ paths: "bucket_access": [ { "cluster": "ap-south-1", - "bucket_name": "bucket-test1", + "bucket_name": "bucket-example-1", "permissions": "read_write" }, { "cluster": "us-east-1", - "bucket_name": "bucket-test2", + "bucket_name": "bucket-example-2", "permissions": "read_only" } ] @@ -10748,7 +10748,8 @@ paths: - lang: CLI source: > linode-cli object-storage keys-create \ - --label "my-object-storage-key" + --label "my-object-storage-key" \ + --bucket_access '[{"cluster": "ap-south-1", "bucket_name": "bucket-example-1", "permissions": "read_write" }]' /object-storage/keys/{keyId}: x-linode-cli-command: object-storage parameters: From 0c54302e8dfea07175eecd0dec934eba0b87079b Mon Sep 17 00:00:00 2001 From: leslitagordita Date: Fri, 4 Sep 2020 15:06:07 -0400 Subject: [PATCH 30/39] Use reference to ObjectStorageKey schema object in POST request update limited field to be readOnly --- openapi.yaml | 43 +++++++++---------------------------------- 1 file changed, 9 insertions(+), 34 deletions(-) diff --git a/openapi.yaml b/openapi.yaml index abddda0cb..9d685a007 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -10686,30 +10686,7 @@ paths: content: application/json: schema: - type: object - properties: - label: - type: string - description: The label for this keypair, for display purposes only. - example: my-key - bucket_access: - type: array - items: - type: object - description: Defines this key as a limited access key, and contains values pertaining to permissions. Limited Access Keys block access to all buckets except for those specified within the object. - properties: - cluster: - type: string - description: The Object Storage cluster where a bucket to which the key is granting access is hosted. - example: ap-south-1 - bucket_name: - type: string - description: The unique label of the bucket to which the key will grant access. - example: example-bucket - permissions: - type: string - description: The permissions of the key for the selected bucket. Can be `read_write` or `read_only`. - example: read_only + $ref: '#/components/schemas/ObjectStorageKey' responses: '200': description: The new keypair. **This is the only time** the secret key is returned. @@ -10717,11 +10694,13 @@ paths: application/json: schema: allOf: - - $ref: '#/components/schemas/ObjectStorageKey' - - type: object - properties: - secret_key: - example: OiA6F5r0niLs3QA2stbyq7mY5VCV7KqOzcmitmHw + - $ref: '#/components/schemas/ObjectStorageKey' + - type: object + properties: + secret_key: + type: string + description: This keypair’s secret key. **Only returned on key creation**. + example: OiA6F5r0niLs3QA2stbyq7mY5VCV7KqOzcmitmHw default: $ref: '#/components/responses/ErrorResponse' x-code-samples: @@ -17728,15 +17707,11 @@ components: description: This keypair's access key. This is not secret. example: KVAKUTGBA4WTR2NSJQ81 readOnly: true - secret_key: - type: string - description: This keypair's secret key. **Only returned on key creation**. - example: '[REDACTED]' - readOnly: true limited: type: boolean description: Whether or not this key is a limited access key. Will return `false` if this key grants full access to all buckets on the user's account. example: true + readOnly: true bucket_access: type: array items: From 2514025f79c1e5cd13aefcd2a52faf7bc2bfb9bb Mon Sep 17 00:00:00 2001 From: leslitagordita Date: Fri, 4 Sep 2020 15:31:13 -0400 Subject: [PATCH 31/39] Update descriptions Add enum for permissions field --- openapi.yaml | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/openapi.yaml b/openapi.yaml index 9d685a007..7355960e5 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -17716,7 +17716,15 @@ components: type: array items: type: object - description: Defines this key as a limited access key, and contains values pertaining to permissions. Limited Access Keys block access to all buckets except for those specified within the object. + description: > + Limited Access Keys restrict this Object Storage key's access to only the bucket(s) declared in this array and define their bucket-level permissions. + + + Limited Access Keys can: + + * [list all buckets](/api/v4/object-storage-buckets/) available on this Account, but cannot perform any actions on a bucket unless it has access to the bucket. + + * [create new buckets](/api/v4/object-storage-buckets/#post), but do not have any access to the buckets created, unless explicitly given access to it. properties: cluster: type: string @@ -17728,7 +17736,10 @@ components: example: example-bucket permissions: type: string - description: The permissions of the key for the selected bucket. Can be `read_write` or `read_only`. + enum: + - read_write + - read_only + description: This Limited Access Key's permissions for the selected bucket. example: read_only PaginationEnvelope: type: object From 486649ee54a524e6da0f88f73a983142f350fa59 Mon Sep 17 00:00:00 2001 From: leslitagordita Date: Fri, 4 Sep 2020 15:33:56 -0400 Subject: [PATCH 32/39] minor copy edits --- openapi.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openapi.yaml b/openapi.yaml index 7355960e5..094490f61 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -17717,14 +17717,14 @@ components: items: type: object description: > - Limited Access Keys restrict this Object Storage key's access to only the bucket(s) declared in this array and define their bucket-level permissions. + Defines this key as a Limited Access Key. Limited Access Keys restrict this Object Storage key's access to only the bucket(s) declared in this array and define their bucket-level permissions. Limited Access Keys can: * [list all buckets](/api/v4/object-storage-buckets/) available on this Account, but cannot perform any actions on a bucket unless it has access to the bucket. - * [create new buckets](/api/v4/object-storage-buckets/#post), but do not have any access to the buckets created, unless explicitly given access to it. + * [create new buckets](/api/v4/object-storage-buckets/#post), but do not have any access to the buckets it creates, unless explicitly given access to them. properties: cluster: type: string From 8cc20ece574937b4dec3fde2c0d1323f0c845e53 Mon Sep 17 00:00:00 2001 From: leslitagordita Date: Mon, 7 Sep 2020 18:04:17 -0400 Subject: [PATCH 33/39] Fix indentation --- openapi.yaml | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/openapi.yaml b/openapi.yaml index 094490f61..2ae10b05a 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -17716,31 +17716,31 @@ components: type: array items: type: object - description: > - Defines this key as a Limited Access Key. Limited Access Keys restrict this Object Storage key's access to only the bucket(s) declared in this array and define their bucket-level permissions. + description: > + Defines this key as a Limited Access Key. Limited Access Keys restrict this Object Storage key's access to only the bucket(s) declared in this array and define their bucket-level permissions. - Limited Access Keys can: + Limited Access Keys can: - * [list all buckets](/api/v4/object-storage-buckets/) available on this Account, but cannot perform any actions on a bucket unless it has access to the bucket. + * [list all buckets](/api/v4/object-storage-buckets/) available on this Account, but cannot perform any actions on a bucket unless it has access to the bucket. - * [create new buckets](/api/v4/object-storage-buckets/#post), but do not have any access to the buckets it creates, unless explicitly given access to them. - properties: - cluster: - type: string - description: The Object Storage cluster where a bucket to which the key is granting access is hosted. - example: ap-south-1 - bucket_name: - type: string - description: The unique label of the bucket to which the key will grant limited access. - example: example-bucket - permissions: - type: string - enum: - - read_write - - read_only - description: This Limited Access Key's permissions for the selected bucket. - example: read_only + * [create new buckets](/api/v4/object-storage-buckets/#post), but do not have any access to the buckets it creates, unless explicitly given access to them. + properties: + cluster: + type: string + description: The Object Storage cluster where a bucket to which the key is granting access is hosted. + example: ap-south-1 + bucket_name: + type: string + description: The unique label of the bucket to which the key will grant limited access. + example: example-bucket + permissions: + type: string + enum: + - read_write + - read_only + description: This Limited Access Key's permissions for the selected bucket. + example: read_only PaginationEnvelope: type: object description: > From 9d4a433545fca4096ff62b7d75ccac54d99ed3fe Mon Sep 17 00:00:00 2001 From: leslitagordita Date: Mon, 7 Sep 2020 19:11:26 -0400 Subject: [PATCH 34/39] move description to the array --- openapi.yaml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/openapi.yaml b/openapi.yaml index 2ae10b05a..f01745f1d 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -17714,17 +17714,17 @@ components: readOnly: true bucket_access: type: array - items: - type: object - description: > - Defines this key as a Limited Access Key. Limited Access Keys restrict this Object Storage key's access to only the bucket(s) declared in this array and define their bucket-level permissions. + description: > + Defines this key as a Limited Access Key. Limited Access Keys restrict this Object Storage key's access to only the bucket(s) declared in this array and define their bucket-level permissions. - Limited Access Keys can: + Limited Access Keys can: - * [list all buckets](/api/v4/object-storage-buckets/) available on this Account, but cannot perform any actions on a bucket unless it has access to the bucket. + * [list all buckets](/api/v4/object-storage-buckets/) available on this Account, but cannot perform any actions on a bucket unless it has access to the bucket. - * [create new buckets](/api/v4/object-storage-buckets/#post), but do not have any access to the buckets it creates, unless explicitly given access to them. + * [create new buckets](/api/v4/object-storage-buckets/#post), but do not have any access to the buckets it creates, unless explicitly given access to them. + items: + type: object properties: cluster: type: string From cf786498244fcaebb6e692b0462353de4e9b507b Mon Sep 17 00:00:00 2001 From: leslitagordita Date: Mon, 7 Sep 2020 19:42:15 -0400 Subject: [PATCH 35/39] Add info about shutdown requirements --- openapi.yaml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/openapi.yaml b/openapi.yaml index 6cbe51775..a3c1a72e7 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -5340,13 +5340,12 @@ paths: description: > Resets the root password for this Linode. + * Your Linode must be [shut down](/api/v4/linode-instances-linode-id-shutdown/#post) for a password reset to complete. - - **Note:** If your Linode has more than one disk (not counting its swap disk), use the + * If your Linode has more than one disk (not counting its swap disk), use the [Reset Disk Root Password](/api/v4/linode-instances-linode-id-disks-disk-id-password/#post) endpoint to update a specific disk's root password. - - A `password_reset` event is generated when a root password reset is successful. + * A `password_reset` event is generated when a root password reset is successful. tags: - Linode Instances operationId: resetLinodePassword From 6e6f98f0f2c0e919801774cdb123e9af04a0cb1a Mon Sep 17 00:00:00 2001 From: nmelehan Date: Tue, 8 Sep 2020 11:28:34 -0400 Subject: [PATCH 36/39] Add go module for use with new Hugo docs UI --- go.mod | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 go.mod diff --git a/go.mod b/go.mod new file mode 100644 index 000000000..ff864cf81 --- /dev/null +++ b/go.mod @@ -0,0 +1,3 @@ +module github.com/linode/linode-api-docs + +go 1.15 From da31eeca894c2cd78eacc8b59331c3ca9a1f0b87 Mon Sep 17 00:00:00 2001 From: leslitagordita Date: Tue, 8 Sep 2020 13:47:42 -0400 Subject: [PATCH 37/39] Add more info about IPv6 ranges --- openapi.yaml | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/openapi.yaml b/openapi.yaml index 67e5e48af..e4f9517d2 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -9048,9 +9048,14 @@ paths: - Networking summary: List IPv6 Ranges description: > - Displays the IPv6 ranges on your Account. A range of IPv6 addresses is routed to a single - Linode in a given [Region](https://developers.linode.com/api/v4/regions). Your Linode is responsible for routing individual addresses in - the range, or handling traffic for all the addresses in the range. + Displays the IPv6 ranges on your Account. + + + * An IPv6 range is a `/64` block of IPv6 addresses routed to a single Linode in a given [Region](https://developers.linode.com/api/v4/regions). + + * Your Linode is responsible for routing individual addresses in the range, or handling traffic for all the addresses in the range. + + * You must [open a support ticket](/api/v4/support-tickets/#post) to request a `/64` block of IPv6 addresses to be added to your account. operationId: getIPv6Ranges x-linode-cli-action: v6-ranges security: From 93506d507b0fa65abba0cf6ff84a9f0f205995f0 Mon Sep 17 00:00:00 2001 From: leslitagordita Date: Tue, 8 Sep 2020 15:38:32 -0400 Subject: [PATCH 38/39] Bump version to 4.74.0 --- openapi.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openapi.yaml b/openapi.yaml index 20b1312c2..956849629 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -1,6 +1,6 @@ openapi: 3.0.1 info: - version: 4.73.0 + version: 4.74.0 title: Linode API description: | From 823851d743e9d584c9668479a6597759a53a7d90 Mon Sep 17 00:00:00 2001 From: leslitagordita Date: Tue, 8 Sep 2020 16:17:02 -0400 Subject: [PATCH 39/39] Minor copy edits --- openapi.yaml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/openapi.yaml b/openapi.yaml index 956849629..673c505cf 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -5332,7 +5332,7 @@ paths: parameters: - name: linodeId in: path - description: ID of the Linode for which to reset it's root password. + description: ID of the Linode for which to reset its root password. required: true schema: type: integer @@ -5369,10 +5369,7 @@ paths: type: string description: > The root user's password on this Linode. Linode passwords - have the following constraints: - - - Must meet a password strength score requirement that is calculated internally + must meet a password strength score requirement that is calculated internally by the API. If the strength requirement is not met, you will receive a Password does not meet strength requirement error. example: a$eCure4assw0rd!43v51