From f343e0fee89bc574097192411495004dea138146 Mon Sep 17 00:00:00 2001 From: Zhiwei Liang Date: Fri, 11 Aug 2023 17:49:09 -0400 Subject: [PATCH 01/21] Add tags to NodeBalancer creation API request schema --- openapi.yaml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/openapi.yaml b/openapi.yaml index a316a90fb..3a94239f8 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -13760,6 +13760,18 @@ paths: $ref: '#/components/schemas/NodeBalancer/properties/label' client_conn_throttle: $ref: '#/components/schemas/NodeBalancer/properties/client_conn_throttle' + tags: + x-linode-filterable: true + description: > + An array of Tags applied to this object. Tags are for organizational + purposes only. + type: array + items: + type: string + example: + - test + - web-dev-team + configs: type: array description: | From ec386b3dec94eb6bd2bd012c6aaad21496992f90 Mon Sep 17 00:00:00 2001 From: bbiggerr Date: Tue, 15 Aug 2023 10:50:31 -0400 Subject: [PATCH 02/21] Add Volume detach info upon Linode Delete --- openapi.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/openapi.yaml b/openapi.yaml index a316a90fb..e16b4f299 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -6336,6 +6336,7 @@ paths: * Gives up any IP addresses the Linode was assigned. * Deletes all Disks, Backups, Configs, etc. + * Detaches any Volumes associated withe Linode. * Stops billing for the Linode and its associated services. You will be billed for time used within the billing period the Linode was active. @@ -18506,11 +18507,10 @@ paths: x-linode-cli-command: volumes post: summary: Volume Detach - description: > - Detaches a Volume on your Account - from a Linode on your Account. In order for this request to - complete successfully, your User must have `read_write` access to the - Volume and `read_write` access to the Linode. + description: | + Detaches a Volume on your Account from a Linode on your Account. In order for this request to complete successfully, your User must have `read_write` access to the Volume and `read_write` access to the Linode. + + Volumes are automatically detached from deleted Linodes. tags: - Volumes operationId: detachVolume From c64aad7c5dcc085bf5945fce1b6fb3608f9109df Mon Sep 17 00:00:00 2001 From: bbiggerr Date: Mon, 21 Aug 2023 11:32:13 -0400 Subject: [PATCH 03/21] Added Region Availabilty endpoints --- openapi.yaml | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) diff --git a/openapi.yaml b/openapi.yaml index a316a90fb..e78aafde6 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -17446,6 +17446,73 @@ paths: - lang: CLI source: > linode-cli regions view us-east + /regions/{regionId}/availability: + x-linode-cli-command: regions + parameters: + - name: regionId + in: path + description: ID of the Region to look up. + required: true + schema: + type: string + get: + tags: + - Regions + summary: Region Availability View + description: > + Returns availability data for a single Region. + operationId: getRegionAvailability + x-linode-cli-action: view-avail + responses: + '200': + description: A single Region object. + content: + application/json: + schema: + $ref: '#/components/schemas/RegionAvailability' + default: + $ref: '#/components/responses/ErrorResponse' + x-code-samples: + - lang: Shell + source: > + curl https://api.linode.com/v4/regions/us-east/availability + - lang: CLI + source: > + linode-cli regions view-avail us-east + /regions/availability: + x-linode-cli-command: regions + get: + tags: + - Regions + summary: Regions Availability List + description: | + Returns availability data for all Regions. + + Currently, this command returns availability of select premium and GPU plans for select regions. + operationId: getRegionsAvailability + x-linode-cli-action: list-avail + responses: + '200': + description: Returns a Region Availability object. + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/PaginationEnvelope' + - properties: + data: + type: array + items: + $ref: '#/components/schemas/RegionAvailability' + default: + $ref: '#/components/responses/ErrorResponse' + x-code-samples: + - lang: Shell + source: > + curl https://api.linode.com/v4/regions/availability + - lang: CLI + source: > + linode-cli regions list-avail /support/tickets: x-linode-cli-command: tickets get: @@ -25297,6 +25364,22 @@ components: The IPv6 addresses for this region's DNS resolvers, separated by commas. example: "2001:0db8::,2001:0db8::1" readOnly: true + RegionAvailability: + type: object + description: Compute instance availability information by [Type](/docs/api/linode-types/) and [Region](/docs/api/regions/). + properties: + region: + type: string + example: us-east + description: The [Region](/docs/api/regions/) ID. + plan: + type: string + example: gpu-rtx6000-1.1 + description: The compute instance [Type](/docs/api/linode-types/) ID. + availability: + type: boolean + example: true + description: Whether the compute instance type is available in the region. RescueDevices: type: object properties: From 45ba53baca17490da9f14fea9e9f4b6f88772c6b Mon Sep 17 00:00:00 2001 From: bbiggerr Date: Tue, 22 Aug 2023 09:43:27 -0400 Subject: [PATCH 04/21] Added premium to Linode Types --- openapi.yaml | 28 ++++++++++------------------ 1 file changed, 10 insertions(+), 18 deletions(-) diff --git a/openapi.yaml b/openapi.yaml index a316a90fb..ed70e19ad 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -22735,28 +22735,20 @@ components: x-linode-filterable: true type: string readOnly: true - description: > - The class of the Linode Type. We currently offer five classes of Linodes: - - * nanode - Nanode instances are good for low-duty workloads, - where performance isn't critical. **Note:** As of June 16th, 2020, Nanodes became - 1 GB Linodes in the Cloud Manager, however, the API, the CLI, and billing will - continue to refer to these instances as Nanodes. - * standard - Standard Shared instances are good for medium-duty workloads and - are a good mix of performance, resources, and price. **Note:** As of June 16th, 2020, - Standard Linodes in the Cloud Manager became Shared Linodes, however, the API, the CLI, and - billing will continue to refer to these instances as Standard Linodes. - * dedicated - Dedicated CPU instances are good for full-duty workloads - where consistent performance is important. - * gpu - Linodes with dedicated NVIDIA Quadro ® RTX 6000 GPUs accelerate highly - specialized applications such as machine learning, AI, and video transcoding. - * highmem - High Memory instances favor RAM over other resources, and can be - good for memory hungry use cases like caching and in-memory databases. - All High Memory plans contain dedicated CPU cores. + description: | + The class of the Linode Type. We currently offer six classes of compute instances: + + * `nanode` - Nanode instances are good for low-duty workloads, where performance isn't critical. **Note:** As of June 16th, 2020, Nanodes became 1 GB Linodes in the Cloud Manager, however, the API, the CLI, and billing will continue to refer to these instances as Nanodes. + * `standard` - Standard Shared instances are good for medium-duty workloads and are a good mix of performance, resources, and price. **Note:** As of June 16th, 2020, Standard Linodes in the Cloud Manager became Shared Linodes, however, the API, the CLI, and billing will continue to refer to these instances as Standard Linodes. + * `dedicated` - Dedicated CPU instances are good for full-duty workloads where consistent performance is important. + * `premium` - In addition to the features of Dedicated instances, Premium instances come equipped with the latest AMD EPYC™ CPUs, ensuring your applications are running on the latest hardware with consistently high performance. + * `gpu` - Linodes with dedicated NVIDIA Quadro® RTX 6000 GPUs accelerate highly specialized applications such as machine learning, AI, and video transcoding. + * `highmem` - High Memory instances favor RAM over other resources, and can be good for memory hungry use cases like caching and in-memory databases. All High Memory plans contain dedicated CPU cores. enum: - nanode - standard - dedicated + - premium - gpu - highmem example: standard From d86a5ef360681871d66ee2aa7001b7c2f9ea0d55 Mon Sep 17 00:00:00 2001 From: bbiggerr Date: Tue, 22 Aug 2023 10:35:33 -0400 Subject: [PATCH 05/21] Updated kernels descriptions for clarity --- openapi.yaml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/openapi.yaml b/openapi.yaml index a316a90fb..8a111251d 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -8033,6 +8033,8 @@ paths: summary: Kernels List description: | Lists available Kernels. + + Due to the extensive list of available kernels, please keep [pagination](/docs/api/#pagination) controls in mind when managing responses to this command. operationId: getKernels x-linode-cli-action: - list @@ -22373,7 +22375,11 @@ components: x-linode-cli-display: 1 kernel: type: string - description: A Kernel ID to boot a Linode with. Defaults to "linode/latest-64bit". + default: linode/latest-64bit + description: | + A Kernel ID to boot a Linode with. Use `linode/grub2` for the upstream distribution-supplied kernel that is installed on the primary disk. + + For a complete list of options, use the [Kernels List](/docs/api/linode-instances/#kernels-list) command. example: linode/latest-64bit x-linode-cli-display: 3 comments: From 3b79303caefb2b77db35671a864cab3ba665bd3f Mon Sep 17 00:00:00 2001 From: bbiggerr Date: Tue, 22 Aug 2023 10:50:17 -0400 Subject: [PATCH 06/21] Updated unrestricted user reqs for Tags endpoints --- openapi.yaml | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/openapi.yaml b/openapi.yaml index a316a90fb..ad7503144 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -17800,20 +17800,20 @@ paths: /tags: x-linode-cli-command: tags get: - x-linode-grant: read_only + x-linode-grant: unrestricted only parameters: - $ref: '#/components/parameters/pageOffset' - $ref: '#/components/parameters/pageSize' tags: - Tags summary: Tags List - description: > - Tags are User-defined labels attached to objects in your Account, such - as Linodes. They are used for specifying and grouping attributes of - objects that are relevant to the User. - + description: | + Tags are User-defined labels attached to objects in your Account, such as Linodes. They are used for specifying and grouping attributes of objects that are relevant to the User. This endpoint returns a paginated list of Tags on your account. + + **Important**: You must be an unrestricted User in order to access, add, or modify + Tags information. operationId: getTags x-linode-cli-action: - list @@ -17848,16 +17848,15 @@ paths: curl -H "Authorization: Bearer $TOKEN" \ https://api.linode.com/v4/tags post: + x-linode-grant: unrestricted only tags: - Tags summary: New Tag Create - description: > - Creates a new Tag and optionally tags requested objects with it - immediately. - + description: | + Creates a new Tag and optionally tags requested objects with it immediately. - **Important**: You must be an unrestricted User in order to add or modify - Tags. + **Important**: You must be an unrestricted User in order to access, add, or modify + Tags information. operationId: createTag x-linode-cli-action: create security: @@ -17963,9 +17962,11 @@ paths: required: true get: summary: Tagged Objects List - description: > - Returns a paginated list of all objects you've tagged with the requested - Tag. This is a mixed collection of all object types. + description: | + Returns a paginated list of all objects you've tagged with the requested Tag. This is a mixed collection of all object types. + + **Important**: You must be an unrestricted User in order to access, add, or modify + Tags information. tags: - Tags operationId: getTaggedObjects @@ -18026,8 +18027,8 @@ paths: Remove a Tag from all objects and delete it. - **Important**: You must be an unrestricted User in order to add or modify - Tags. + **Important**: You must be an unrestricted User in order to access, add, or modify + Tags information. tags: - Tags operationId: deleteTag From c650b117af57e2217306479630b7bca247ad4073 Mon Sep 17 00:00:00 2001 From: bbiggerr Date: Tue, 22 Aug 2023 11:06:47 -0400 Subject: [PATCH 07/21] Cleanup formatting --- openapi.yaml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/openapi.yaml b/openapi.yaml index 3a94239f8..3df8d0e22 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -13761,17 +13761,14 @@ paths: client_conn_throttle: $ref: '#/components/schemas/NodeBalancer/properties/client_conn_throttle' tags: - x-linode-filterable: true - description: > - An array of Tags applied to this object. Tags are for organizational - purposes only. + description: | + An array of Tags applied to this object. Tags are for organizational purposes only. type: array items: type: string example: - test - web-dev-team - configs: type: array description: | From d67eb141d6f18dd4e622a71e90f4af4ebd913274 Mon Sep 17 00:00:00 2001 From: bbiggerr Date: Tue, 22 Aug 2023 15:33:27 -0400 Subject: [PATCH 08/21] Update kernels description with more examples --- openapi.yaml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/openapi.yaml b/openapi.yaml index 8a111251d..74243564f 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -22377,7 +22377,11 @@ components: type: string default: linode/latest-64bit description: | - A Kernel ID to boot a Linode with. Use `linode/grub2` for the upstream distribution-supplied kernel that is installed on the primary disk. + A Kernel ID to boot a Linode with. Here are examples of commonly-used kernels: + + * `linode/latest-64bit` (default): Our latest kernel at the time of instance boot/reboot. + * `linode/grub2`: The upstream distribution-supplied kernel that is installed on the primary disk, or a custom kernel if installed. + * `linode/direct-disk`: The MBR (Master Boot Record) of the primary disk/root device, used instead of a Linux kernel. For a complete list of options, use the [Kernels List](/docs/api/linode-instances/#kernels-list) command. example: linode/latest-64bit From 4b731a64610a66e3b484dadd763bd52d930db8f8 Mon Sep 17 00:00:00 2001 From: John Dutton Date: Wed, 23 Aug 2023 13:20:09 -0400 Subject: [PATCH 09/21] Volume Attach permissions fix --- openapi.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openapi.yaml b/openapi.yaml index 3df8d0e22..5a2339e30 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -18373,7 +18373,7 @@ paths: description: > Attaches a Volume on your Account to an existing Linode on your Account. In order for this request to - complete successfully, your User must have `read_only` or `read_write` + complete successfully, your User must have `read_write` permission to the Volume and `read_write` permission to the Linode. Additionally, the Volume and Linode must be located in the same Region. tags: From 8d45abd2f8a78c857fbec29511d7f8b72dd12d5a Mon Sep 17 00:00:00 2001 From: bbiggerr Date: Mon, 17 Apr 2023 10:02:55 -0400 Subject: [PATCH 10/21] Added Metadata service --- openapi.yaml | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/openapi.yaml b/openapi.yaml index 0f110d078..fa5c7a08f 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -6826,6 +6826,10 @@ paths: * Disks and Configs must be created manually. * This is only recommended for advanced use cases. + * **BETA** Using cloud-init with [Metadata](/docs/products/compute/compute-instances/guides/metadata/). + * Automate system configuration and software installation by providing a base-64 encoded [cloud-config](/docs/products/compute/compute-instances/guides/metadata-cloud-config/) file. + * This feature is in beta and is currently limited to certain Regions and distributions. Please be aware that this feature may receive breaking updates in the future. This notice will be removed when this feature is out of beta. + **Important**: You must be an unrestricted User in order to add or modify tags on Linodes. tags: @@ -22207,6 +22211,17 @@ components: The "+order_by" and "+order" operators are not available for [filtering](/docs/api/#filtering-and-sorting) on this key. example: available + capabilities: + type: array + readOnly: true + items: + type: object + description: A list of capabilities of this Image. + properties: + cloud-init: + type: boolean + example: false + description: Whether this Image supports cloud-init with [Metadata](/docs/products/compute/compute-instances/guides/metadata/). Only applies to public Images. Invoice: type: object description: Account Invoice object @@ -23388,6 +23403,22 @@ components: If it is deployed from an Image or a Backup and you wish it to remain `offline` after deployment, set this to `false`. default: true + metadata: + type: object + writeOnly: true + description: | + An object containing user-defined data relevant to the creation of Linodes. + properties: + user_data: + type: string + format: byte + description: | + Base64-encoded [cloud-config](/docs/products/compute/compute-instances/guides/metadata-cloud-config/) data. + + Must not be included when cloing to an existing Linode. + + Unencoded data must not exceed 65535 bytes, or about 16kb encoded. + example: I2Nsb3VkLWNvbmZpZwpwYWNrYWdlX3VwZGF0ZTogdHJ1ZQpwYWNrYWdlX3VwZ3JhZGU6IHRydWU= LinodeStats: type: object description: > From b20d603cc62675a5c4ee2fc2a8265cef012cad49 Mon Sep 17 00:00:00 2001 From: bbiggerr Date: Thu, 24 Aug 2023 12:21:57 -0400 Subject: [PATCH 11/21] Fixed Images cloud-init --- openapi.yaml | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/openapi.yaml b/openapi.yaml index fa5c7a08f..069b20ea1 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -6828,6 +6828,7 @@ paths: * **BETA** Using cloud-init with [Metadata](/docs/products/compute/compute-instances/guides/metadata/). * Automate system configuration and software installation by providing a base-64 encoded [cloud-config](/docs/products/compute/compute-instances/guides/metadata-cloud-config/) file. + * Requires a compatible Image. You can determine compatible Images by checking for `cloud-init` under `capabilities` when using Images List ([GET /images](/docs/api/images/#images-list)). * This feature is in beta and is currently limited to certain Regions and distributions. Please be aware that this feature may receive breaking updates in the future. This notice will be removed when this feature is out of beta. **Important**: You must be an unrestricted User in order to add or modify @@ -22212,16 +22213,17 @@ components: The "+order_by" and "+order" operators are not available for [filtering](/docs/api/#filtering-and-sorting) on this key. example: available capabilities: + x-linode-cli-display: 8 type: array readOnly: true + description: | + A list containing the following possible capabilities of this Image: + + `cloud-init`: This Image supports cloud-init with [Metadata](/docs/products/compute/compute-instances/guides/metadata/). Only applies to public Images. items: - type: object - description: A list of capabilities of this Image. - properties: - cloud-init: - type: boolean - example: false - description: Whether this Image supports cloud-init with [Metadata](/docs/products/compute/compute-instances/guides/metadata/). Only applies to public Images. + type: string + example: + - cloud-init Invoice: type: object description: Account Invoice object From b513d3d4b199f5b323f02336288a1b885322465a Mon Sep 17 00:00:00 2001 From: bbiggerr Date: Thu, 24 Aug 2023 12:30:47 -0400 Subject: [PATCH 12/21] Fixed typo --- openapi.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openapi.yaml b/openapi.yaml index 069b20ea1..1a5ff7cc7 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -23417,7 +23417,7 @@ components: description: | Base64-encoded [cloud-config](/docs/products/compute/compute-instances/guides/metadata-cloud-config/) data. - Must not be included when cloing to an existing Linode. + Must not be included when cloning to an existing Linode. Unencoded data must not exceed 65535 bytes, or about 16kb encoded. example: I2Nsb3VkLWNvbmZpZwpwYWNrYWdlX3VwZGF0ZTogdHJ1ZQpwYWNrYWdlX3VwZ3JhZGU6IHRydWU= From 2eaa275c8c490dae5c2dda59169fece3a126f7d9 Mon Sep 17 00:00:00 2001 From: bbiggerr Date: Thu, 24 Aug 2023 13:04:19 -0400 Subject: [PATCH 13/21] Added has_user_data to Linode --- openapi.yaml | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/openapi.yaml b/openapi.yaml index 1a5ff7cc7..7be38a903 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -6933,7 +6933,7 @@ paths: "backup_id": 1234, "backups_enabled": true, "swap_size": 512, - "image": "linode/debian9", + "image": "linode/ubuntu22.04", "root_pass": "aComplexP@ssword", "stackscript_id": 10079, "stackscript_data": { @@ -6962,7 +6962,10 @@ paths: "label": "linode123", "type": "g6-standard-2", "region": "us-east", - "group": "Linode-Group" + "group": "Linode-Group", + "metadata": { + "user_data": "I2Nsb3VkLWNvbmZpZwpwYWNrYWdlX3VwZGF0ZTogdHJ1ZQpwYWNrYWdlX3VwZ3JhZGU6IHRydWU=" + } }' \ https://api.linode.com/v4/linode/instances - lang: CLI @@ -23202,6 +23205,11 @@ components: description: The Linode's host machine, as a UUID. readOnly: true example: 3a3ddd59d9a78bb8de041391075df44de62bfec8 + has_user_data: + type: boolean + description: Whether this compute instance was provisioned utilizing `user_data` provided via the Metadata service. See the [Linode Create](/docs/api/linode-instances/#linode-create) description for more information on Metadata. + readOnly: true + example: true LinodeConfig: type: object properties: From 59957e7d3239c9bb7e73e1966d4641c5bbf4cebe Mon Sep 17 00:00:00 2001 From: bbiggerr Date: Thu, 24 Aug 2023 13:11:27 -0400 Subject: [PATCH 14/21] Added Regions insruction to description --- openapi.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/openapi.yaml b/openapi.yaml index 7be38a903..aa936e49b 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -6829,6 +6829,7 @@ paths: * **BETA** Using cloud-init with [Metadata](/docs/products/compute/compute-instances/guides/metadata/). * Automate system configuration and software installation by providing a base-64 encoded [cloud-config](/docs/products/compute/compute-instances/guides/metadata-cloud-config/) file. * Requires a compatible Image. You can determine compatible Images by checking for `cloud-init` under `capabilities` when using Images List ([GET /images](/docs/api/images/#images-list)). + * Requires a compatible Region. You can determine compatible Regions by checking for `Metadata` under `capabilities` when using Regions List ([GET /regions](/docs/api/regions/#regions-list)). * This feature is in beta and is currently limited to certain Regions and distributions. Please be aware that this feature may receive breaking updates in the future. This notice will be removed when this feature is out of beta. **Important**: You must be an unrestricted User in order to add or modify From 66d916242d11cdff6866e3af4f4976f02c2ad48e Mon Sep 17 00:00:00 2001 From: bbiggerr Date: Thu, 24 Aug 2023 13:40:29 -0400 Subject: [PATCH 15/21] Removed xen from Kernels --- openapi.yaml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/openapi.yaml b/openapi.yaml index 5a2339e30..7e0b58964 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -21998,12 +21998,6 @@ components: description: If this Kernel is suitable for KVM Linodes. example: true readOnly: true - xen: - x-linode-filterable: true - type: boolean - description: If this Kernel is suitable for Xen Linodes. - example: false - readOnly: true architecture: x-linode-filterable: true type: string From b08b71326ca137c0f5b6c1645bd7fe4b966f5418 Mon Sep 17 00:00:00 2001 From: Ben Bigger <25663044+bbiggerr@users.noreply.github.com> Date: Thu, 24 Aug 2023 15:01:16 -0400 Subject: [PATCH 16/21] Fixed typo Co-authored-by: alsaihn --- openapi.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openapi.yaml b/openapi.yaml index e16b4f299..94a9b0c9b 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -6336,7 +6336,7 @@ paths: * Gives up any IP addresses the Linode was assigned. * Deletes all Disks, Backups, Configs, etc. - * Detaches any Volumes associated withe Linode. + * Detaches any Volumes associated with the Linode. * Stops billing for the Linode and its associated services. You will be billed for time used within the billing period the Linode was active. From f634f6cbc9261a1f3be34c97cd5a4f52e5d04c09 Mon Sep 17 00:00:00 2001 From: bbiggerr Date: Thu, 24 Aug 2023 15:22:44 -0400 Subject: [PATCH 17/21] Added Region info for limited Types --- openapi.yaml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/openapi.yaml b/openapi.yaml index ed70e19ad..3fe227c53 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -22736,13 +22736,15 @@ components: type: string readOnly: true description: | - The class of the Linode Type. We currently offer six classes of compute instances: + The class of the Linode Type. + + We currently offer six classes of compute instances: * `nanode` - Nanode instances are good for low-duty workloads, where performance isn't critical. **Note:** As of June 16th, 2020, Nanodes became 1 GB Linodes in the Cloud Manager, however, the API, the CLI, and billing will continue to refer to these instances as Nanodes. * `standard` - Standard Shared instances are good for medium-duty workloads and are a good mix of performance, resources, and price. **Note:** As of June 16th, 2020, Standard Linodes in the Cloud Manager became Shared Linodes, however, the API, the CLI, and billing will continue to refer to these instances as Standard Linodes. * `dedicated` - Dedicated CPU instances are good for full-duty workloads where consistent performance is important. - * `premium` - In addition to the features of Dedicated instances, Premium instances come equipped with the latest AMD EPYC™ CPUs, ensuring your applications are running on the latest hardware with consistently high performance. - * `gpu` - Linodes with dedicated NVIDIA Quadro® RTX 6000 GPUs accelerate highly specialized applications such as machine learning, AI, and video transcoding. + * `premium` (limited Regions) - In addition to the features of Dedicated instances, Premium instances come equipped with the latest AMD EPYC™ CPUs, ensuring your applications are running on the latest hardware with consistently high performance. Only available in [Regions](/docs/api/regions/#regions-list) with "Premium Plans" in their `capabilities` + * `gpu` (limited Regions) - Linodes with dedicated NVIDIA Quadro® RTX 6000 GPUs accelerate highly specialized applications such as machine learning, AI, and video transcoding. Only available in [Regions](/docs/api/regions/#regions-list) with "GPU Linodes" in their `capabilities` * `highmem` - High Memory instances favor RAM over other resources, and can be good for memory hungry use cases like caching and in-memory databases. All High Memory plans contain dedicated CPU cores. enum: - nanode From 298bbb16186e0ebe758229e6636a50de64ad8ddc Mon Sep 17 00:00:00 2001 From: bbiggerr Date: Thu, 24 Aug 2023 15:31:33 -0400 Subject: [PATCH 18/21] Update Linode Create CLI example --- openapi.yaml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/openapi.yaml b/openapi.yaml index aa936e49b..59f16a69a 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -6965,7 +6965,7 @@ paths: "region": "us-east", "group": "Linode-Group", "metadata": { - "user_data": "I2Nsb3VkLWNvbmZpZwpwYWNrYWdlX3VwZGF0ZTogdHJ1ZQpwYWNrYWdlX3VwZ3JhZGU6IHRydWU=" + "user_data": "I2Nsb3VkLWNvbmZpZw==" } }' \ https://api.linode.com/v4/linode/instances @@ -6979,9 +6979,10 @@ paths: --stackscript_data '{"gh_username": "linode"}' \ --region us-east \ --type g6-standard-2 \ - --authorized_keys "ssh-rsa AAAA_valid_public_ssh_key_123456785== user@their-computer" - --authorized_users "myUser" - --authorized_users "secondaryUser" + --authorized_keys "ssh-rsa AAAA_valid_public_ssh_key_123456785== user@their-computer" \ + --authorized_users "myUser" \ + --authorized_users "secondaryUser" \ + --metadata.user_data "I2Nsb3VkLWNvbmZpZw==)" /linode/instances/{linodeId}: parameters: - name: linodeId From fbadb9ad7e3e1f2ab81c8156e032ce90c15f9cac Mon Sep 17 00:00:00 2001 From: bbiggerr Date: Thu, 24 Aug 2023 15:33:11 -0400 Subject: [PATCH 19/21] availability -> available --- openapi.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openapi.yaml b/openapi.yaml index e78aafde6..3c5d82a24 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -25376,7 +25376,7 @@ components: type: string example: gpu-rtx6000-1.1 description: The compute instance [Type](/docs/api/linode-types/) ID. - availability: + available: type: boolean example: true description: Whether the compute instance type is available in the region. From d0f8575136717828e161b82be419bfe7f9c7cbb4 Mon Sep 17 00:00:00 2001 From: bbiggerr Date: Thu, 24 Aug 2023 15:37:32 -0400 Subject: [PATCH 20/21] Bump version to 4.161.0 --- openapi.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openapi.yaml b/openapi.yaml index a50f6b819..30cf05bfb 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -1,6 +1,6 @@ openapi: 3.0.1 info: - version: 4.159.0 + version: 4.161.0 title: Linode API description: | From 8fe702d7919e5ca6ef2c93ea45f776adc0cc6bdc Mon Sep 17 00:00:00 2001 From: bbiggerr Date: Thu, 24 Aug 2023 15:43:12 -0400 Subject: [PATCH 21/21] Added filterable tags to Region Availability responses --- openapi.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/openapi.yaml b/openapi.yaml index 30cf05bfb..ade39c3ed 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -25420,14 +25420,20 @@ components: description: Compute instance availability information by [Type](/docs/api/linode-types/) and [Region](/docs/api/regions/). properties: region: + x-linode-cli-display: 1 + x-linode-filterable: true type: string example: us-east description: The [Region](/docs/api/regions/) ID. plan: + x-linode-cli-display: 2 + x-linode-filterable: true type: string example: gpu-rtx6000-1.1 description: The compute instance [Type](/docs/api/linode-types/) ID. available: + x-linode-cli-display: 3 + x-linode-filterable: true type: boolean example: true description: Whether the compute instance type is available in the region.