diff --git a/openapi.yaml b/openapi.yaml index f9bca8b0d..ebd4697b5 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -5498,9 +5498,9 @@ components: authorizationCode: authorizationUrl: https://login.linode.com/oauth/authorize scopes: - account:read_only: Allows access to GET information about your Account. - account:read_write: Allows access to all endpoints related to your Account. - domains:read_only: Allows access to GET Domains on your Account. + account:read_only: Allows access to GET information about your account. + account:read_write: Allows access to all endpoints related to your account. + domains:read_only: Allows access to GET Domains on your account. domains:read_write: Allows access to all Domain endpoints. events:read_only: Allows access to GET your Events. events:read_write: Allows access to all endpoints related to your Events. @@ -5510,13 +5510,15 @@ components: images:read_write: Allows access to all endpoints related to your Images. ips:read_only: Allows access to GET your ips. ips:read_write: Allows access to all endpoints related to your ips. - linodes:read_only: Allows access to GET Linodes on your Account. + linodes:read_only: Allows access to GET Linodes on your account. linodes:read_write: Allow access to all endpoints related to your Linodes. - lke:read_only: Allows access to GET LKE Clusters on your Account. - lke:read_write: Allows access to all endpoints related to LKE Clusters on your Account. + lke:read_only: Allows access to GET LKE Clusters on your account. + lke:read_write: Allows access to all endpoints related to LKE Clusters on your account. longview:read_only: Allows access to GET your Longview Clients. longview:read_write: Allows access to all endpoints related to your Longview Clients. - nodebalancers:read_only: Allows access to GET NodeBalancers on your Account. + monitor:read-write: Allows access to all Monitor (Akamai Cloud Pulse) endpoints. + monitor:read_only: Allows access to Monitor (Akamai Cloud Pulse) data. + nodebalancers:read_only: Allows access to GET NodeBalancers on your account. nodebalancers:read_write: Allows access to all NodeBalancer endpoints. object_storage:read_only: Allows access to GET information related to your Object Storage. object_storage:read_write: Allows access to all Object Storage endpoints. @@ -5543,7 +5545,7 @@ info: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0.html title: Linode API - version: 4.191.1 + version: 4.191.2 openapi: 3.0.1 paths: /{apiVersion}/account: @@ -9688,7 +9690,7 @@ paths: file-path: schemas/added-get-events-200.yaml x-example: x-ref: ../examples/get-events-200.json - description: Returns a paginated lists of Event objects from the last 90 days. + description: Returns a paginated list of Event objects from the last 90 days. default: content: application/json: @@ -19336,9 +19338,7 @@ paths: /{apiVersion}/databases/engines: get: description: |- - __This operation is currently only available for customers who already have an active Managed Database.__ - - Display all available Managed Database engine types and versions. Engine IDs are used when creating new Managed Databases. + Display all available Managed Databases engine types and versions. Use an engine's `id` to create a new Managed Databases instance. <> @@ -19451,7 +19451,7 @@ paths: type: object x-akamai: file-path: schemas/added-get-databases-engines-200.yaml - description: Returns a paginated list of all available Managed Database engines and versions. + description: Returns a paginated list of all available Managed Databases engines and versions. default: content: application/json: @@ -19477,10 +19477,7 @@ paths: type: array type: object description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes. - servers: - - url: https://api.linode.com/v4 - - url: https://api.linode.com/v4beta - summary: List managed database engines + summary: List Managed Databases engines tags: - Databases x-akamai: @@ -19508,9 +19505,7 @@ paths: /{apiVersion}/databases/engines/{engineId}: get: description: |- - __This operation is currently only available for customers who already have an active Managed Database.__ - - Display information for a single Managed Database engine type and version. + Display information for a single Managed Databases engine type and version. Run the [List Managed Databases engines](https://techdocs.akamai.com/linode-api/reference/get-databases-engines) operation and store the `id` for the applicable database engine. <> @@ -19588,7 +19583,7 @@ paths: file-path: schemas/database-engine.yaml x-example: x-ref: ../examples/get-databases-engine-200.json - description: Returns information for a single Managed Database engine type and version. + description: Returns information for a single Managed Databases engine type and version. default: content: application/json: @@ -19614,10 +19609,7 @@ paths: type: array type: object description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes. - servers: - - url: https://api.linode.com/v4 - - url: https://api.linode.com/v4beta - summary: Get a managed database engine + summary: Get a Managed Databases engine tags: - Databases x-akamai: @@ -19639,6 +19631,7 @@ paths: x-akamai: file-path: parameters/api-version-path.yaml - description: The ID of the Managed Database engine. + example: mysql/8.0.26 in: path name: engineId required: true @@ -19653,9 +19646,7 @@ paths: /{apiVersion}/databases/instances: get: description: |- - Display all Managed Databases that are accessible by your user, regardless of engine type. - - For more detailed information on a particular database instance, make a request to its `instance_uri`. + Display all Managed Databases accessible to your user, regardless of engine type. For more detailed information on a particular database instance, make a request to its `instance_uri`. <> @@ -19781,11 +19772,13 @@ paths: properties: allow_list: description: |- - A list of IP addresses that can access the Managed Database. Each item can be a single IP address or a range in CIDR format. + Controls access to the Managed Database. - By default, this is an empty array (`[]`), which blocks all public and private connections to the Managed Database. + - Individually included IP addresses or CIDR ranges can access the Managed Database while all other sources are blocked. - If `0.0.0.0/0` is a value in this list, then all IP addresses can access the Managed Database. + - A standalone value of `0.0.0.0/0` allows all IP addresses access to the Managed Database. + + - An empty array (`[]`) blocks all public and private connections to the Managed Database. example: - 203.0.113.1/32 - 192.0.1.0/24 @@ -19915,6 +19908,7 @@ paths: x-akamai: labels: - Filterable + x-linode-cli-display: 8 x-linode-filterable: true port: description: __Read-only__ The access port for this Managed Database. @@ -20055,7 +20049,7 @@ paths: type: object x-akamai: file-path: schemas/added-get-databases-instances-200.yaml - description: Returns a paginated list of all accessible Managed Databases on your Account. + description: Returns a paginated list of all accessible Managed Databases on your account. default: content: application/json: @@ -20085,9 +20079,6 @@ paths: - personalAccessToken: [] - oauth: - databases:read_only - servers: - - url: https://api.linode.com/v4 - - url: https://api.linode.com/v4beta summary: List Managed Databases tags: - Databases @@ -20122,7 +20113,7 @@ paths: /{apiVersion}/databases/mysql/instances: get: description: |- - Display all accessible Managed MySQL Databases. + Display all accessible MySQL Managed Databases. <> @@ -20248,11 +20239,13 @@ paths: properties: allow_list: description: |- - A list of IP addresses that can access the Managed Database. Each item can be a single IP address or a range in CIDR format. + Controls access to the Managed Database. + + - Individually included IP addresses or CIDR ranges can access the Managed Database while all other sources are blocked. - By default, this is an empty array (`[]`), which blocks all public and private connections to the Managed Database. + - A standalone value of `0.0.0.0/0` allows all IP addresses access to the Managed Database. - If `0.0.0.0/0` is a value in this list, then all IP addresses can access the Managed Database. + - An empty array (`[]`) blocks all public and private connections to the Managed Database. example: - 203.0.113.1/32 - 192.0.1.0/24 @@ -20374,6 +20367,7 @@ paths: x-akamai: labels: - Filterable + x-linode-cli-display: 8 x-linode-filterable: true port: description: __Read-only__ The access port for this Managed Database. @@ -20521,7 +20515,7 @@ paths: type: object x-akamai: file-path: schemas/added-get-databases-mysql-instances-200.yaml - description: Returns a paginated list of all accessible Managed MySQL Databases on your Account. + description: Returns a paginated list of all accessible MySQL Managed Databases on your account. default: content: application/json: @@ -20577,70 +20571,7 @@ paths: x-akamai: file-path: parameters/api-version-path.yaml post: - description: |- - **Provision a MySQL Managed Database** - - Restricted users need the `add_databases` grant to use this operation. - - New instances can take 15 to 30 minutes to provision. - - Use the `allow_list` to control access to the Managed Database. - - - IP addresses and ranges in this list can access the Managed Database. All other sources are blocked. - - - If `0.0.0.0/0` is a value in this list, then all IP addresses can access the Managed Database. - - - Entering an empty array (`[]`) blocks all public and private connections to the Managed Database. - - All Managed Databases include automatic, daily backups. Up to seven backups are automatically stored for each Managed Database, providing restore points for each day of the past week. - - All Managed Databases include automatic updates, which apply security patches to the underlying operating system of the Managed MySQL Database. Configure the maintenance window for these updates with the [Update a managed MySQL database](https://techdocs.akamai.com/linode-api/reference/put-databases-mysql-instance) operation. - - - If your database cluster is configured with a single node, downtime occurs during maintenance updates. You should adjust the window to match a time that's the least disruptive to your application and users. Also consider upgrading to a [high availability](https://techdocs.akamai.com/cloud-computing/docs/managed-databases#high-availability) plan to avoid any maintenance downtime. - - - Major upgrades are optional until the service reaches end of service, and can be done in place. - - - To update the maintenance window for a database, run the [Update a MySQL Managed Database](https://techdocs.akamai.com/linode-api/reference/put-databases-mysql-instance) operation. - - **Restore a MySQL Managed Database** - - Do this by creating a `fork` from a backup. To perform this operation, a user needs `read_write` access to the database in question and the database needs to be in a status of `active`, `degraded`, or `failed`. - - __Note__ - - - Restoring from a backup results in a second running cluster, which incurs billing. You likely want to delete the first cluster after the restore is complete. - - - This operation is currently only available for Linode DBaaS Beta participants. - - - <> - - --- - - - - __CLI for create operation__. - - ``` - linode-cli databases mysql-create \ - --label example-db1 \ - --region us-east \ - --type g6-dedicated-2 \ - --cluster_size 3 \ - --engine mysql/8.0.26 \ - --ssl_connection true \ - --allow_list 203.0.113.1 \ - --allow_list 192.0.1.0/24 - ``` - - [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) - - - __OAuth scopes__. - - ``` - databases:read_write - ``` - - [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + description: "**Provision a MySQL Managed Database**\n\nUse this operation to create a new MySQL Managed Database.\n\n- Restricted users need the `add_databases` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants).\n\n- New instances can take 10 to 15 minutes to deploy.\n\n- All Managed Databases include automatic, daily backups. Up to seven backups are automatically stored for each Managed Database, providing restore points for each day of the past week.\n\n- All Managed Databases include automatic updates, which apply security patches to the underlying operating system of the MySQL Managed Database. Configure the maintenance window for these updates with the [Update a managed MySQL database](https://techdocs.akamai.com/linode-api/reference/put-databases-mysql-instance) operation.\n\n- If your database cluster is configured with a single node, downtime occurs during maintenance updates. You should adjust the window to match a time that's the least disruptive to your application and users. Also consider upgrading to a [high availability](https://techdocs.akamai.com/cloud-computing/docs/managed-databases#high-availability) plan to avoid any maintenance downtime.\n\n- Major upgrades are optional until the service reaches end of service, and can be done in place.\n\n**Restore a MySQL Managed Database**\n\nDo this by creating a `fork` from a backup. A user needs `read_write` access to the database and its status can be `active`, `degraded`, or `failed`.\n\n> \U0001F4D8\n>\n> Restoring from a backup creates a second running cluster, which incurs billing. Delete the first cluster after the restore is complete, to avoid this billing.\n\n\n<>\n\n---\n\n\n- __CLI for create operation__.\n\n ```\n linode-cli databases mysql-create \\\n --label example-db1 \\\n --region us-east \\\n --type g6-dedicated-2 \\\n --cluster_size 3 \\\n --engine mysql/8.0.26 \\\n --ssl_connection true \\\n --allow_list 203.0.113.1 \\\n --allow_list 192.0.1.0/24\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n databases:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)" externalDocs: description: See documentation for this operation in Akamai's Linode API url: https://techdocs.akamai.com/linode-api/reference/post-databases-mysql-instances @@ -20654,11 +20585,13 @@ paths: properties: allow_list: description: |- - A list of IP addresses that can access the Managed Database. Each item can be a single IP address or a range in CIDR format. + Controls access to the Managed Database. - By default, this is an empty array (`[]`), which blocks all public and private connections to the Managed Database. + - Individually included IP addresses or CIDR ranges can access the Managed Database while all other sources are blocked. - If `0.0.0.0/0` is a value in this list, then all IP addresses can access the Managed Database. + - A standalone value of `0.0.0.0/0` allows all IP addresses access to the Managed Database. + + - An empty array (`[]`) blocks all public and private connections to the Managed Database. example: - 203.0.113.1/32 - 192.0.1.0/24 @@ -20753,7 +20686,6 @@ paths: file-path: schemas/database-mysql-request.yaml x-example: x-ref: ../examples/post-databases-mysql-instances.json - description: Information about the MySQL Managed Database you are creating or restoring. required: true x-linode-cli-allowed-defaults: - engine @@ -20769,11 +20701,13 @@ paths: properties: allow_list: description: |- - A list of IP addresses that can access the Managed Database. Each item can be a single IP address or a range in CIDR format. + Controls access to the Managed Database. + + - Individually included IP addresses or CIDR ranges can access the Managed Database while all other sources are blocked. - By default, this is an empty array (`[]`), which blocks all public and private connections to the Managed Database. + - A standalone value of `0.0.0.0/0` allows all IP addresses access to the Managed Database. - If `0.0.0.0/0` is a value in this list, then all IP addresses can access the Managed Database. + - An empty array (`[]`) blocks all public and private connections to the Managed Database. example: - 203.0.113.1/32 - 192.0.1.0/24 @@ -20878,6 +20812,12 @@ paths: 45.79.159.239: failover readOnly: true type: object + oldest_restore_time: + description: __Read-only__ The oldest time to which a database can be restored. + example: '2024-10-03 20:48:05' + format: date-time + readOnly: true + type: string platform: description: __Filterable__, __Read-only__ The back-end platform for relational databases used by the service. enum: @@ -20889,6 +20829,7 @@ paths: x-akamai: labels: - Filterable + x-linode-cli-display: 8 x-linode-filterable: true port: description: __Read-only__ The access port for this Managed Database. @@ -21031,10 +20972,10 @@ paths: x-linode-filterable: true type: object x-akamai: - file-path: schemas/database-mysql-response.yaml + file-path: schemas/database-mysql.yaml x-example: x-ref: ../examples/post-databases-mysql-instances-200.json - description: A new MySQL Managed Database is provisioning. + description: A new MySQL Managed Database is deploying. default: content: application/json: @@ -21093,13 +21034,13 @@ paths: /{apiVersion}/databases/mysql/instances/{instanceId}: delete: description: |- - Remove a MySQL Managed Database from your Account. + Remove a MySQL Managed Database from your account. - Requires `read_write` access to the Database. + - The user needs `read_write` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) access to the database. - To perform this operation, the database's status needs to be `active`, `failed`, or `degraded`. + - The database's status can be `active`, `failed`, or `degraded`. - Only unrestricted Users can access this operation, and have access regardless of the acting token's OAuth scopes. + - Only unrestricted users can access this operation. They have access regardless of the acting token's OAuth scopes. <> @@ -21220,11 +21161,13 @@ paths: properties: allow_list: description: |- - A list of IP addresses that can access the Managed Database. Each item can be a single IP address or a range in CIDR format. + Controls access to the Managed Database. - By default, this is an empty array (`[]`), which blocks all public and private connections to the Managed Database. + - Individually included IP addresses or CIDR ranges can access the Managed Database while all other sources are blocked. - If `0.0.0.0/0` is a value in this list, then all IP addresses can access the Managed Database. + - A standalone value of `0.0.0.0/0` allows all IP addresses access to the Managed Database. + + - An empty array (`[]`) blocks all public and private connections to the Managed Database. example: - 203.0.113.1/32 - 192.0.1.0/24 @@ -21346,6 +21289,7 @@ paths: x-akamai: labels: - Filterable + x-linode-cli-display: 8 x-linode-filterable: true port: description: __Read-only__ The access port for this Managed Database. @@ -21557,25 +21501,21 @@ paths: file-path: parameters/instance-id-path.yaml put: description: |- - Update a MySQL Managed Database. Also allows resizing the database cluster to a larger one. Clusters can't be resized to smaller plans. - - Requires `read_write` access to the database. + Make changes to an existing MySQL Managed Database. - To perform this operation, the database's status needs to be `active`. + - The user needs `read_write` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) access to the database. - Updating addresses in the `allow_list` overwrites any existing addresses. + - The database's status needs to be `active`. - - IP addresses and ranges in this list can access the Managed Database. All other sources are blocked. + - New values set in the `allow_list` overwrite existing values. To keep existing values, run the [List MySQL Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-mysql-instances) operation, store the `allow_list` addresses from the response, and include them with any new addresses in this operation. - - If `0.0.0.0/0` is a value in this list, then all IP addresses can access the Managed Database. + - Updates to your `allow_list` may take a short time to complete, making this operation inappropriate for rapid successive updates. - - Entering an empty array (`[]`) blocks all public and private connections to the Managed Database. + - Also allows resizing the database cluster to a larger one. Clusters can't be resized to smaller plans. - - Updates to the `allow_list` may take a short period of time to complete, making this operation inappropriate for rapid successive updates to this property. + - All Managed Databases include automatic updates, which apply security patches to the underlying operating system of the Managed MySQL Database. Use the `updates` object in this operation to modify the maintenance window for these updates. - - All Managed Databases include automatic updates, which apply security patches to the underlying operating system of the Managed MySQL Database. Configure the maintenance window for these updates with the [Update a managed MySQL database](https://techdocs.akamai.com/linode-api/reference/put-databases-mysql-instance) operation. - - - If your database cluster is configured with a single node, downtime occurs during maintenance updates. You should adjust the window to match a time that's the least disruptive to your application and users. Also consider upgrading to a [high availability](https://techdocs.akamai.com/cloud-computing/docs/managed-databases#high-availability) plan to avoid any maintenance downtime. + - If your database cluster is configured with a single node, downtime occurs during maintenance updates. Use the `updates` object to adjust the window to match a time that's the least disruptive to your application and users. Also consider upgrading to a [high availability](https://techdocs.akamai.com/cloud-computing/docs/managed-databases#high-availability) plan to avoid any maintenance downtime. - Major upgrades are optional until the service reaches end of service, and can be done in place. @@ -21621,11 +21561,13 @@ paths: properties: allow_list: description: |- - A list of IP addresses that can access the Managed Database. Each item can be a single IP address or a range in CIDR format. + Controls access to the Managed Database. + + - Individually included IP addresses or CIDR ranges can access the Managed Database while all other sources are blocked. - By default, this is an empty array (`[]`), which blocks all public and private connections to the Managed Database. + - A standalone value of `0.0.0.0/0` allows all IP addresses access to the Managed Database. - If `0.0.0.0/0` is a value in this list, then all IP addresses can access the Managed Database. + - An empty array (`[]`) blocks all public and private connections to the Managed Database. example: - 203.0.113.1/32 - 192.0.1.0/24 @@ -21727,7 +21669,6 @@ paths: file-path: schemas/added-put-databases-mysql-instance.yaml x-example: x-ref: ../examples/put-databases-mysql-instance.json - description: Updated information for the MySQL Managed Database. required: true responses: '200': @@ -21739,11 +21680,13 @@ paths: properties: allow_list: description: |- - A list of IP addresses that can access the Managed Database. Each item can be a single IP address or a range in CIDR format. + Controls access to the Managed Database. - By default, this is an empty array (`[]`), which blocks all public and private connections to the Managed Database. + - Individually included IP addresses or CIDR ranges can access the Managed Database while all other sources are blocked. - If `0.0.0.0/0` is a value in this list, then all IP addresses can access the Managed Database. + - A standalone value of `0.0.0.0/0` allows all IP addresses access to the Managed Database. + + - An empty array (`[]`) blocks all public and private connections to the Managed Database. example: - 203.0.113.1/32 - 192.0.1.0/24 @@ -21865,6 +21808,7 @@ paths: x-akamai: labels: - Filterable + x-linode-cli-display: 8 x-linode-filterable: true port: description: __Read-only__ The access port for this Managed Database. @@ -22069,9 +22013,7 @@ paths: /{apiVersion}/databases/mysql/instances/{instanceId}/credentials: get: description: |- - Display the root username and password for an accessible MySQL Managed Database. - - The Database must have an `active` status to perform this operation. + Display the root username and password for an accessible MySQL Managed Database. The database's status needs to be `active`. <> @@ -22215,15 +22157,13 @@ paths: file-path: parameters/instance-id-path-c09a6713.yaml post: description: |- - Reset the root password for a MySQL Managed Database. - - Requires `read_write` access to the Database. + Reset the root password for a MySQL Managed Database. A new root password is randomly generated and accessible with the [Get MySQL Managed Database credentials](https://techdocs.akamai.com/linode-api/reference/get-databases-mysql-instance-credentials) operation. - A new root password is randomly generated and accessible with the [Get MySQL Managed Database credentials](https://techdocs.akamai.com/linode-api/reference/get-databases-mysql-instance-credentials) operation. + - The database's status needs to be `active`. - Only unrestricted Users can access this operation, and have access regardless of the acting token's OAuth scopes. + - Only unrestricted users can access this operation. These users have access regardless of the acting token's OAuth scopes. - __Note__. It may take several seconds for credentials to reset. + - It may take several seconds for credentials to reset. <> @@ -22333,13 +22273,11 @@ paths: file-path: parameters/instance-id-path.yaml post: description: |- - Apply security patches and updates to the underlying operating system of the MySQL Managed Database. This function runs during regular maintenance windows, which are configurable with the [Update a MySQL Managed Database](https://techdocs.akamai.com/linode-api/reference/put-databases-mysql-instance) operation. + Apply security patches and updates to the underlying operating system of the MySQL Managed Database. This function runs during regular maintenance windows, which you can configure with the [Update a managed MySQL database](https://techdocs.akamai.com/linode-api/reference/put-databases-mysql-instance) operation. - Requires `read_write` access to the database. + - The user needs `read_write` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) access to the database. - The database must have an `active` status to perform this operation. - - __Note__ + - The database's status meeds to be `active`. - If your database cluster is configured with a single node, downtime occurs during maintenance updates. Consider upgrading to a [high availability](https://techdocs.akamai.com/cloud-computing/docs/managed-databases#high-availability) plan to avoid any maintenance downtime. @@ -22454,9 +22392,9 @@ paths: description: |- Resume a suspended MySQL Managed Database from your account. This resumes billing for the cluster. - Requires `read_write` access to the database. + - The user needs `read_write` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) access to the database. - To perform this operation, the database's status needs to be `suspended`. + - The database's status needs to be `suspended`. <> @@ -22534,9 +22472,7 @@ paths: /{apiVersion}/databases/mysql/instances/{instanceId}/ssl: get: description: |- - Display the SSL CA certificate for an accessible MySQL Managed Database. - - The Database must have an `active` status to perform this operation. + Display the SSL CA certificate for an accessible MySQL Managed Database. The database's status needs to be `active`. <> @@ -22675,11 +22611,11 @@ paths: description: |- Suspend a MySQL Managed Database from your account, releasing idle resources and keeping only necessary data. All service data is lost if there are no backups available. This halts billing for the cluster. - Requires `read_write` access to the database. + - The user needs `read_write` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) access to the database. - To perform this operation, the database's status needs to be `active`. + - The database's status needs to be `active`. - Suspended clusters are deleted after 180 days. + - Akamai deletes suspended clusters after 180 days. <> @@ -22883,11 +22819,13 @@ paths: properties: allow_list: description: |- - A list of IP addresses that can access the Managed Database. Each item can be a single IP address or a range in CIDR format. + Controls access to the Managed Database. - By default, this is an empty array (`[]`), which blocks all public and private connections to the Managed Database. + - Individually included IP addresses or CIDR ranges can access the Managed Database while all other sources are blocked. - If `0.0.0.0/0` is a value in this list, then all IP addresses can access the Managed Database. + - A standalone value of `0.0.0.0/0` allows all IP addresses access to the Managed Database. + + - An empty array (`[]`) blocks all public and private connections to the Managed Database. example: - 203.0.113.1/32 - 192.0.1.0/24 @@ -23009,6 +22947,7 @@ paths: x-akamai: labels: - Filterable + x-linode-cli-display: 8 x-linode-filterable: true port: description: __Read-only__ The access port for this Managed Database. @@ -23156,7 +23095,7 @@ paths: type: object x-akamai: file-path: schemas/added-get-databases-postgre-sql-instances-200.yaml - description: Returns a paginated list of all accessible PostgreSQL Managed Databases on your Account. + description: Returns a paginated list of all accessible PostgreSQL Managed Databases on your account. default: content: application/json: @@ -23212,70 +23151,7 @@ paths: x-akamai: file-path: parameters/api-version-path.yaml post: - description: |- - **Provision a PostgreSQL Managed Database** - - Restricted users need the `add_databases` grant to use this operation. - - New instances can take 15 to 30 minutes to provision** - - Use the `allow_list` to control access to the Managed Database. - - - IP addresses and ranges in this list can access the Managed Database. All other sources are blocked. - - - If `0.0.0.0/0` is a value in this list, then all IP addresses can access the Managed Database. - - - Entering an empty array (`[]`) blocks all public and private connections to the Managed Database. - - All Managed Databases include automatic, daily backups. Up to seven backups are automatically stored for each Managed Database, providing restore points for each day of the past week. - - All Managed Databases include automatic updates, which apply security patches to the underlying operating system of the Managed PostgreSQL Database. Configure the maintenance window for these updates with the [Update a managed PostgreSQL database](https://techdocs.akamai.com/linode-api/reference/put-databases-postgresql-instance) operation. - - - If your database cluster is configured with a single node, downtime occurs during maintenance updates. You should adjust the window to match a time that's the least disruptive to your application and users. Also consider upgrading to a [high availability](https://techdocs.akamai.com/cloud-computing/docs/managed-databases#high-availability) plan to avoid any maintenance downtime. - - - Major upgrades are optional until the service reaches end of service, and can be done in place. - - - To update the maintenance window for a database, run the [Update a PostgreSQL Managed Database](https://techdocs.akamai.com/linode-api/reference/put-databases-postgre-sql-instance) operation. - - **Restore a PostgreSQL Managed Database** - - Do this by creating a `fork` from a backup. To perform this operation, a user needs `read_write` access to the database in question and the database needs to be in a status of `active`, `degraded`, or `failed`. - - __Note__ - - - Restoring from a backup results in a second running cluster, which incurs billing. You likely want to delete the first cluster after the restore is complete. - - - This operation is currently only available for Linode DBaaS Beta participants. - - - <> - - --- - - - - __CLI__. - - ``` - linode-cli databases postgresql-create \ - --label example-db \ - --region us-east \ - --type g6-dedicated-2 \ - --cluster_size 3 \ - --engine postgresql/13.2 \ - --ssl_connection true \ - --allow_list 203.0.113.1 \ - --allow_list 192.0.1.0/24 - ``` - - [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) - - - __OAuth scopes__. - - ``` - databases:read_write - ``` - - [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + description: "**Provision a PostgreSQL Managed Database**\n\nUse this operation to create a new PostgreSQL Managed Database.\n\n- Restricted users need the `add_databases` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants).\n\n- New instances can take 10 to 15 minutes to deploy.\n\n- All Managed Databases include automatic, daily backups. Up to seven backups are automatically stored for each Managed Database, providing restore points for each day of the past week.\n\n- All Managed Databases include automatic updates, which apply security patches to the underlying operating system of the PostgreSQL Managed Database. Configure the maintenance window for these updates with the [Update a managed PostgreSQL database](https://techdocs.akamai.com/linode-api/reference/put-databases-postgre-sql-instance) operation.\n\n- If your database cluster is configured with a single node, downtime occurs during maintenance updates. Adjust the window to match a time that's the least disruptive to your application and users. Also consider upgrading to a [high availability](https://techdocs.akamai.com/cloud-computing/docs/managed-databases#high-availability) plan to avoid any maintenance downtime.\n\n- Major upgrades are optional until the service reaches end of service, and can be done in place.\n\n**Restore a PostgreSQL Managed Database**\n\nDo this by creating a `fork` from a backup. A user needs `read_write` access to the database, and its status can be `active`, `degraded`, or `failed`.\n\n> \U0001F4D8\n>\n> Restoring from a backup creates a second running cluster, which incurs billing. Delete the first cluster after the restore is complete, to avoid this billing.\n\n\n<>\n\n---\n\n\n- __CLI__.\n\n ```\n linode-cli databases postgresql-create \\\n --label example-db \\\n --region us-east \\\n --type g6-dedicated-2 \\\n --cluster_size 3 \\\n --engine postgresql/13.2 \\\n --ssl_connection true \\\n --allow_list 203.0.113.1 \\\n --allow_list 192.0.1.0/24\n ```\n\n [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)\n\n- __OAuth scopes__.\n\n ```\n databases:read_write\n ```\n\n [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth)" externalDocs: description: See documentation for this operation in Akamai's Linode API url: https://techdocs.akamai.com/linode-api/reference/post-databases-postgre-sql-instances @@ -23289,11 +23165,13 @@ paths: properties: allow_list: description: |- - A list of IP addresses that can access the Managed Database. Each item can be a single IP address or a range in CIDR format. + Controls access to the Managed Database. - By default, this is an empty array (`[]`), which blocks all public and private connections to the Managed Database. + - Individually included IP addresses or CIDR ranges can access the Managed Database while all other sources are blocked. - If `0.0.0.0/0` is a value in this list, then all IP addresses can access the Managed Database. + - A standalone value of `0.0.0.0/0` allows all IP addresses access to the Managed Database. + + - An empty array (`[]`) blocks all public and private connections to the Managed Database. example: - 203.0.113.1/32 - 192.0.1.0/24 @@ -23388,7 +23266,6 @@ paths: file-path: schemas/database-postgresql-request.yaml x-example: x-ref: ../examples/post-databases-postgre-sql-instances.json - description: Information about the PostgreSQL Managed Database you are creating. required: true x-linode-cli-allowed-defaults: - engine @@ -23404,11 +23281,13 @@ paths: properties: allow_list: description: |- - A list of IP addresses that can access the Managed Database. Each item can be a single IP address or a range in CIDR format. + Controls access to the Managed Database. + + - Individually included IP addresses or CIDR ranges can access the Managed Database while all other sources are blocked. - By default, this is an empty array (`[]`), which blocks all public and private connections to the Managed Database. + - A standalone value of `0.0.0.0/0` allows all IP addresses access to the Managed Database. - If `0.0.0.0/0` is a value in this list, then all IP addresses can access the Managed Database. + - An empty array (`[]`) blocks all public and private connections to the Managed Database. example: - 203.0.113.1/32 - 192.0.1.0/24 @@ -23524,6 +23403,7 @@ paths: x-akamai: labels: - Filterable + x-linode-cli-display: 8 x-linode-filterable: true port: description: __Read-only__ The access port for this Managed Database. @@ -23728,13 +23608,13 @@ paths: /{apiVersion}/databases/postgresql/instances/{instanceId}: delete: description: |- - Remove a PostgreSQL Managed Database from your Account. + Remove a PostgreSQL Managed Database from your account. - Requires `read_write` access to the Database. + - The user needs `read_write` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) access to the database. - To perform this operation, the database's status needs to be `active`, `failed`, or `degraded`. + - The database's status can be `active`, `failed`, or `degraded`. - Only unrestricted Users can access this operation, and have access regardless of the acting token's OAuth scopes. + - Only unrestricted users can access this operation. They have access regardless of the acting token's OAuth scopes. <> @@ -23855,11 +23735,13 @@ paths: properties: allow_list: description: |- - A list of IP addresses that can access the Managed Database. Each item can be a single IP address or a range in CIDR format. + Controls access to the Managed Database. + + - Individually included IP addresses or CIDR ranges can access the Managed Database while all other sources are blocked. - By default, this is an empty array (`[]`), which blocks all public and private connections to the Managed Database. + - A standalone value of `0.0.0.0/0` allows all IP addresses access to the Managed Database. - If `0.0.0.0/0` is a value in this list, then all IP addresses can access the Managed Database. + - An empty array (`[]`) blocks all public and private connections to the Managed Database. example: - 203.0.113.1/32 - 192.0.1.0/24 @@ -23981,6 +23863,7 @@ paths: x-akamai: labels: - Filterable + x-linode-cli-display: 8 x-linode-filterable: true port: description: __Read-only__ The access port for this Managed Database. @@ -24192,25 +24075,21 @@ paths: file-path: parameters/instance-id-path.yaml put: description: |- - Update a PostgreSQL Managed Database. Also allows resizing the database cluster to a larger one. Clusters can't be resized to smaller plans. - - Requires `read_write` access to the Database. + Make changes to an existing PostgreSQL Managed Database. - To perform this operation, the database's status needs to be `active`. + - The user needs `read_write` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) access to the database. - Updating addresses in the `allow_list` overwrites any existing addresses. + - The database's status needs to be `active`. - - IP addresses and ranges in this list can access the Managed Database. All other sources are blocked. + - New values set in the `allow_list` overwrite existing values. To keep existing values, run the [List PostgreSQL Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instances) operation, store the `allow_list` addresses from the response, and include them with any new addresses in this operation. - - If `0.0.0.0/0` is a value in this list, then all IP addresses can access the Managed Database. + - Updates to your `allow_list` may take a short period of time to complete, making this operation inappropriate for rapid successive updates. - - Entering an empty array (`[]`) blocks all public and private connections to the Managed Database. + - Also allows resizing the database cluster to a larger one. Clusters can't be resized to smaller plans. - - Updates to the `allow_list` may take a short period of time to complete, making this operation inappropriate for rapid successive updates to this property. + - All Managed Databases include automatic updates, which apply security patches to the underlying operating system of the Managed PostgreSQL Database. Use the `updates` object in this operation to modify the maintenance window for these updates. - All Managed Databases include automatic patch updates, which apply security patches and updates to the underlying operating system of the Managed PostgreSQL Database. The maintenance window for these updates is configured with the Managed Database's `updates` property. - - - If your database cluster is configured with a single node, downtime occurs during maintenance updates. You should adjust the window to match a time that's the least disruptive to your application and users. Also consider upgrading to a [high availability](https://techdocs.akamai.com/cloud-computing/docs/managed-databases#high-availability) plan to avoid any maintenance downtime. + - If your database cluster is configured with a single node, downtime occurs during maintenance updates. Use the `updates` object to adjust the window to match a time that's the least disruptive to your application and users. Also consider upgrading to a [high availability](https://techdocs.akamai.com/cloud-computing/docs/managed-databases#high-availability) plan to avoid any maintenance downtime. - Major upgrades are optional until the service reaches end of service, and can be done in place. @@ -24256,11 +24135,13 @@ paths: properties: allow_list: description: |- - A list of IP addresses that can access the Managed Database. Each item can be a single IP address or a range in CIDR format. + Controls access to the Managed Database. + + - Individually included IP addresses or CIDR ranges can access the Managed Database while all other sources are blocked. - By default, this is an empty array (`[]`), which blocks all public and private connections to the Managed Database. + - A standalone value of `0.0.0.0/0` allows all IP addresses access to the Managed Database. - If `0.0.0.0/0` is a value in this list, then all IP addresses can access the Managed Database. + - An empty array (`[]`) blocks all public and private connections to the Managed Database. example: - 203.0.113.1/32 - 192.0.1.0/24 @@ -24362,7 +24243,6 @@ paths: file-path: schemas/added-put-databases-postgre-sql-instance.yaml x-example: x-ref: ../examples/put-databases-postgre-sql-instance.json - description: Updated information for the Managed PostgreSQL Database. required: true responses: '200': @@ -24374,11 +24254,13 @@ paths: properties: allow_list: description: |- - A list of IP addresses that can access the Managed Database. Each item can be a single IP address or a range in CIDR format. + Controls access to the Managed Database. - By default, this is an empty array (`[]`), which blocks all public and private connections to the Managed Database. + - Individually included IP addresses or CIDR ranges can access the Managed Database while all other sources are blocked. - If `0.0.0.0/0` is a value in this list, then all IP addresses can access the Managed Database. + - A standalone value of `0.0.0.0/0` allows all IP addresses access to the Managed Database. + + - An empty array (`[]`) blocks all public and private connections to the Managed Database. example: - 203.0.113.1/32 - 192.0.1.0/24 @@ -24500,6 +24382,7 @@ paths: x-akamai: labels: - Filterable + x-linode-cli-display: 8 x-linode-filterable: true port: description: __Read-only__ The access port for this Managed Database. @@ -24704,9 +24587,7 @@ paths: /{apiVersion}/databases/postgresql/instances/{instanceId}/credentials: get: description: |- - Display the root username and password for an accessible PostgreSQL Managed Database. - - The Database must have an `active` status to perform this operation. + Display the root username and password for an accessible PostgreSQL Managed Database. The database's status needs to be `active`. <> @@ -24850,15 +24731,13 @@ paths: file-path: parameters/instance-id-path-9f3ead4a.yaml post: description: |- - Reset the root password for a PostgreSQL Managed Database. - - Requires `read_write` access to the Database. + Reset the root password for a PostgreSQL Managed Database. A new root password is randomly generated and accessible with the [Get PostgreSQL Managed Database credentials](https://techdocs.akamai.com/linode-api/reference/get-databases-postrge-sql-instance-credentials) operation. - A new root password is randomly generated and accessible with the [Get PostgreSQL Managed Database credentials](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instance-credentials) operation. + - The database's status needs to be `active`. - Only unrestricted Users can access this operation, and have access regardless of the acting token's OAuth scopes. + - Only unrestricted users can access this operation. These users have access regardless of the acting token's OAuth scopes. - __Note__. It may take several seconds for credentials to reset. + - It may take several seconds for credentials to reset. <> @@ -24968,13 +24847,11 @@ paths: file-path: parameters/instance-id-path.yaml post: description: |- - Apply security patches and updates to the underlying operating system of the PostgreSQL Managed Database. This function runs during regular maintenance windows, which are configurable with the [Update a PostgreSQL Managed Database](https://techdocs.akamai.com/linode-api/reference/put-databases-postgre-sql-instance) operation. - - Requires `read_write` access to the database. + Apply security patches and updates to the underlying operating system of the PostgreSQL Managed Database. This function runs during regular maintenance windows, which you can configure with the [Update a managed PostgreSQL database](https://techdocs.akamai.com/linode-api/reference/put-databases-postgre-sql-instance) operation. - The database must have an `active` status to perform this operation. + - The user needs `read_write` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) access to the database. - __Note__ + - The database's status needs to be `active`. - If your database cluster is configured with a single node, downtime occurs during maintenance updates. Consider upgrading to a [high availability](https://techdocs.akamai.com/cloud-computing/docs/managed-databases#high-availability) plan to avoid any maintenance downtime. @@ -25089,9 +24966,9 @@ paths: description: |- Resume a suspended PostgreSQL Managed Database from your account. This resumes billing for the cluster. - Requires `read_write` access to the database. + - The user needs `read_write` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) access to the database. - To perform this operation, the database's status needs to be `suspended`. + - The database's status needs to be `suspended`. <> @@ -25169,9 +25046,7 @@ paths: /{apiVersion}/databases/postgresql/instances/{instanceId}/ssl: get: description: |- - Display the SSL CA certificate for an accessible PostgreSQL Managed Database. - - The Database must have an `active` status to perform this operation. + Display the SSL CA certificate for an accessible PostgreSQL Managed Database. The database's status needs to be `active`. <> @@ -25310,11 +25185,11 @@ paths: description: |- Suspend a PostgreSQL Managed Database from your account, releasing idle resources and keeping only necessary data. All service data is lost if there are no backups available. This halts billing for the cluster. - Requires `read_write` access to the database. + - The user needs `read_write` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) access to the database. - To perform this operation, the database's status needs to be `active`. + - The database's status needs to be `active`. - Suspended clusters are deleted after 180 days. + - Akamai deletes suspended clusters after 180 days. <> @@ -25392,11 +25267,7 @@ paths: /{apiVersion}/databases/types: get: description: |- - __This operation is currently only available for customers who already have an active Managed Database.__ - - Display all Managed Database node types. The type and number of nodes determine the resources and price of a Managed Database instance. - - Each Managed Database can have one node type. In the case of a high availability Database, all nodes are provisioned according to the chosen type. + Display all Managed Databases node types. The type and number of nodes determine the resources and price of a Managed Databases instance. Each database can have one node type. With a high availability database, all nodes are deployed according to the chosen type. <> @@ -25623,7 +25494,7 @@ paths: type: object x-akamai: file-path: schemas/database-type-cli.yaml - description: Returns a paginated list of all Managed Database types. + description: Returns a paginated list of all Managed Databases types. default: content: application/json: @@ -25649,10 +25520,7 @@ paths: type: array type: object description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes. - servers: - - url: https://api.linode.com/v4 - - url: https://api.linode.com/v4beta - summary: List managed database types + summary: List Managed Databases types tags: - Databases x-akamai: @@ -25680,9 +25548,7 @@ paths: /{apiVersion}/databases/types/{typeId}: get: description: |- - __This operation is currently only available for customers who already have an active Managed Database.__ - - Display the details of a single Managed Database type. The type and number of nodes determine the resources and price of a Managed Database instance. + Display the details of a single Managed Databases node type. The type and number of nodes determine the resources and price of a Managed Databases instance. Run the [List Managed Databases type](https://techdocs.akamai.com/linode-api/reference/get-databases-types) operation and store the `id` for the applicable database node type. <> @@ -25859,7 +25725,7 @@ paths: type: object x-akamai: file-path: schemas/database-type-cli.yaml - description: Returns a single Managed Database type. + description: Returns a single Managed Databases type. default: content: application/json: @@ -25885,10 +25751,7 @@ paths: type: array type: object description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes. - servers: - - url: https://api.linode.com/v4 - - url: https://api.linode.com/v4beta - summary: Get a managed database type + summary: Get a Managed Databases type tags: - Databases x-akamai: @@ -25910,13 +25773,14 @@ paths: x-akamai: file-path: parameters/api-version-path.yaml - description: The ID of the Managed Database type. + example: g6-nanode-1 in: path name: typeId required: true schema: type: string x-akamai: - file-path: parameters/type-id-path-024e328f.yaml + file-path: parameters/database-node-type-id.yaml x-akamai: file-path: paths/database-type.yaml path-info: /{apiVersion}/databases/types/{typeId} @@ -31339,7 +31203,7 @@ paths: file-path: parameters/image-id-path.yaml post: description: |- - __Limited availability__ Target an existing image and replicate it to another compute region. + Target an existing image and replicate it to another compute region. - This operation is in Limited Availability. Talk to your account team about access to it. @@ -31634,7 +31498,6 @@ paths: tags: - Images x-akamai: - status: LA tabs: - syntax: |- linode-cli images replicate private/12345 \ @@ -34827,10 +34690,11 @@ paths: additionalProperties: false properties: filesystem: - description: The file system of the disk. This can be `raw`, which indicates no file system, just a raw binary stream, `swap` for a Linux swap area, `ext3` or `ext4` for the ext3 of ext4 journaling file systems for Linux, respectively, or `initrd` for uncompressed initrd, ext2 with a maximum size of 32 MB. + description: "The disk's format or file system. A value of `raw` indicates no file system, just a raw binary stream. A value of `swap` indicates a Linux swap area. The values `ext3` or `ext4` represent these Linux journaling file systems. The value `ext2` is the deprecated ext2 Linux file system. Finally, `initrd` indicates the disk is formatted as an uncompressed initial RAM disk.\n\n> \U0001F4D8\n>\n> The `ext2` file system doesn't properly support timestamps and will be removed from Linux support in the near future. Also, `initrd` is a legacy format that no longer applies to most use cases. As a best practice, use the other supported formats or file systems instead." enum: - raw - swap + - ext2 - ext3 - ext4 - initrd @@ -34941,10 +34805,11 @@ paths: additionalProperties: false properties: filesystem: - description: The file system of the disk. This can be `raw`, which indicates no file system, just a raw binary stream, `swap` for a Linux swap area, `ext3` or `ext4` for the ext3 of ext4 journaling file systems for Linux, respectively, or `initrd` for uncompressed initrd, ext2 with a maximum size of 32 MB. + description: "The disk's format or file system. A value of `raw` indicates no file system, just a raw binary stream. A value of `swap` indicates a Linux swap area. The values `ext3` or `ext4` represent these Linux journaling file systems. The value `ext2` is the deprecated ext2 Linux file system. Finally, `initrd` indicates the disk is formatted as an uncompressed initial RAM disk.\n\n> \U0001F4D8\n>\n> The `ext2` file system doesn't properly support timestamps and will be removed from Linux support in the near future. Also, `initrd` is a legacy format that no longer applies to most use cases. As a best practice, use the other supported formats or file systems instead." enum: - raw - swap + - ext2 - ext3 - ext4 - initrd @@ -35047,10 +34912,11 @@ paths: additionalProperties: false properties: filesystem: - description: The file system of the disk. This can be `raw`, which indicates no file system, just a raw binary stream, `swap` for a Linux swap area, `ext3` or `ext4` for the ext3 of ext4 journaling file systems for Linux, respectively, or `initrd` for uncompressed initrd, ext2 with a maximum size of 32 MB. + description: "The disk's format or file system. A value of `raw` indicates no file system, just a raw binary stream. A value of `swap` indicates a Linux swap area. The values `ext3` or `ext4` represent these Linux journaling file systems. The value `ext2` is the deprecated ext2 Linux file system. Finally, `initrd` indicates the disk is formatted as an uncompressed initial RAM disk.\n\n> \U0001F4D8\n>\n> The `ext2` file system doesn't properly support timestamps and will be removed from Linux support in the near future. Also, `initrd` is a legacy format that no longer applies to most use cases. As a best practice, use the other supported formats or file systems instead." enum: - raw - swap + - ext2 - ext3 - ext4 - initrd @@ -35163,10 +35029,11 @@ paths: additionalProperties: false properties: filesystem: - description: The file system of the disk. This can be `raw`, which indicates no file system, just a raw binary stream, `swap` for a Linux swap area, `ext3` or `ext4` for the ext3 of ext4 journaling file systems for Linux, respectively, or `initrd` for uncompressed initrd, ext2 with a maximum size of 32 MB. + description: "The disk's format or file system. A value of `raw` indicates no file system, just a raw binary stream. A value of `swap` indicates a Linux swap area. The values `ext3` or `ext4` represent these Linux journaling file systems. The value `ext2` is the deprecated ext2 Linux file system. Finally, `initrd` indicates the disk is formatted as an uncompressed initial RAM disk.\n\n> \U0001F4D8\n>\n> The `ext2` file system doesn't properly support timestamps and will be removed from Linux support in the near future. Also, `initrd` is a legacy format that no longer applies to most use cases. As a best practice, use the other supported formats or file systems instead." enum: - raw - swap + - ext2 - ext3 - ext4 - initrd @@ -35390,10 +35257,11 @@ paths: additionalProperties: false properties: filesystem: - description: The file system of the disk. This can be `raw`, which indicates no file system, just a raw binary stream, `swap` for a Linux swap area, `ext3` or `ext4` for the ext3 of ext4 journaling file systems for Linux, respectively, or `initrd` for uncompressed initrd, ext2 with a maximum size of 32 MB. + description: "The disk's format or file system. A value of `raw` indicates no file system, just a raw binary stream. A value of `swap` indicates a Linux swap area. The values `ext3` or `ext4` represent these Linux journaling file systems. The value `ext2` is the deprecated ext2 Linux file system. Finally, `initrd` indicates the disk is formatted as an uncompressed initial RAM disk.\n\n> \U0001F4D8\n>\n> The `ext2` file system doesn't properly support timestamps and will be removed from Linux support in the near future. Also, `initrd` is a legacy format that no longer applies to most use cases. As a best practice, use the other supported formats or file systems instead." enum: - raw - swap + - ext2 - ext3 - ext4 - initrd @@ -35801,10 +35669,11 @@ paths: additionalProperties: false properties: filesystem: - description: The file system of the disk. This can be `raw`, which indicates no file system, just a raw binary stream, `swap` for a Linux swap area, `ext3` or `ext4` for the ext3 of ext4 journaling file systems for Linux, respectively, or `initrd` for uncompressed initrd, ext2 with a maximum size of 32 MB. + description: "The disk's format or file system. A value of `raw` indicates no file system, just a raw binary stream. A value of `swap` indicates a Linux swap area. The values `ext3` or `ext4` represent these Linux journaling file systems. The value `ext2` is the deprecated ext2 Linux file system. Finally, `initrd` indicates the disk is formatted as an uncompressed initial RAM disk.\n\n> \U0001F4D8\n>\n> The `ext2` file system doesn't properly support timestamps and will be removed from Linux support in the near future. Also, `initrd` is a legacy format that no longer applies to most use cases. As a best practice, use the other supported formats or file systems instead." enum: - raw - swap + - ext2 - ext3 - ext4 - initrd @@ -41234,11 +41103,13 @@ paths: /{apiVersion}/linode/instances/{linodeId}/configs/{configId}/interfaces/{interfaceId}: delete: description: |- - Deletes an Interface from the Configuration Profile. + Deletes an interface from the configuration profile. + + - To access this operation, your user needs `read_only` grants to the Linode. - - The User accessing this operation must have `read_write` grants to the Linode. - A successful request triggers a `linode_config_update` event. - - Active Interfaces cannot be deleted. The associated Linode must first be shut down (or restarted using another Configuration Profile) before such Interfaces can be deleted from a Configuration Profile. + + - You can't delete an active interface. You need to shut down the Linode before deleting interfaces from a configuration profile. <> @@ -41324,9 +41195,7 @@ paths: x-linode-grant: read_write get: description: |- - Returns a single Configuration Profile Interface. - - - The User accessing this operation must have at least `read_only` grants to the Linode. + Returns a single configuration profile interface. To access this operation, your user needs `read_only` grants to the Linode. <> @@ -41622,14 +41491,19 @@ paths: file-path: parameters/interface-id-path.yaml put: description: |- - Updates a `vpc` or `public` purpose Interface for this Configuration Profile. + Updates a `vpc` or `public` purpose interface for this configuration profile. + + - To access this operation, your user needs `read_only` grants to the Linode. - - The User accessing this operation must have `read_write` grants to the Linode. - A successful request triggers a `linode_config_update` event. - - The Interface `purpose` cannot be updated with this operation. - - VPC Subnets cannot be updated on an Interface. A new `vpc` purpose Interface must be created to assign a different Subnet to a Configuration Profile. - - Only `primary` can be updated for `public` purpose Interfaces. - - This operation not currently allowed for `vlan` purpose Interfaces. + + - You can't update an interface's `purpose` with this operation. + + - VPC subnets can't be updated on an interface. You need to create a new `vpc` purpose interface to assign a different subnet to a configuration profile. + + - Only `primary` can be updated for `public` purpose interfaces. + + - Currently, this operation isn't allowed for `vlan` purpose interfaces. <> @@ -41730,7 +41604,7 @@ paths: file-path: schemas/added-put-linode-config-interface.yaml x-example: x-ref: ../examples/put-linode-config-interface.json - description: The updated Interface. + description: The updated interface. required: true responses: '200': @@ -42032,7 +41906,7 @@ paths: additionalProperties: false properties: created: - description: __Read-only__ When this Disk was created. + description: __Read-only__ When this disk was created. example: '2018-01-01T00:01:01' format: date-time readOnly: true @@ -42047,10 +41921,11 @@ paths: status: LA x-linode-cli-display: 6 filesystem: - description: The file system of the disk. This can be `raw`, which indicates no file system, just a raw binary stream, `swap` for a Linux swap area, `ext3` or `ext4` for the ext3 of ext4 journaling file systems for Linux, respectively, or `initrd` for uncompressed initrd, ext2 with a maximum size of 32 MB. + description: "The disk's format or file system. A value of `raw` indicates no file system, just a raw binary stream. A value of `swap` indicates a Linux swap area. The values `ext3` or `ext4` represent these Linux journaling file systems. The value `ext2` is the deprecated ext2 Linux file system. Finally, `initrd` indicates the disk is formatted as an uncompressed initial RAM disk.\n\n> \U0001F4D8\n>\n> The `ext2` file system doesn't properly support timestamps and will be removed from Linux support in the near future. Also, `initrd` is a legacy format that no longer applies to most use cases. As a best practice, use the other supported formats or file systems instead." enum: - raw - swap + - ext2 - ext3 - ext4 - initrd @@ -42272,10 +42147,11 @@ paths: type: array writeOnly: true filesystem: - description: The file system of the disk. This can be `raw`, which indicates no file system, just a raw binary stream, `swap` for a Linux swap area, `ext3` or `ext4` for the ext3 of ext4 journaling file systems for Linux, respectively, or `initrd` for uncompressed initrd, ext2 with a maximum size of 32 MB. + description: "The disk's format or file system. A value of `raw` indicates no file system, just a raw binary stream. A value of `swap` indicates a Linux swap area. The values `ext3` or `ext4` represent these Linux journaling file systems. The value `ext2` is the deprecated ext2 Linux file system. Finally, `initrd` indicates the disk is formatted as an uncompressed initial RAM disk.\n\n> \U0001F4D8\n>\n> The `ext2` file system doesn't properly support timestamps and will be removed from Linux support in the near future. Also, `initrd` is a legacy format that no longer applies to most use cases. As a best practice, use the other supported formats or file systems instead." enum: - raw - swap + - ext2 - ext3 - ext4 - initrd @@ -42358,7 +42234,7 @@ paths: additionalProperties: false properties: created: - description: __Read-only__ When this Disk was created. + description: __Read-only__ When this disk was created. example: '2018-01-01T00:01:01' format: date-time readOnly: true @@ -42373,10 +42249,11 @@ paths: status: LA x-linode-cli-display: 6 filesystem: - description: The file system of the disk. This can be `raw`, which indicates no file system, just a raw binary stream, `swap` for a Linux swap area, `ext3` or `ext4` for the ext3 of ext4 journaling file systems for Linux, respectively, or `initrd` for uncompressed initrd, ext2 with a maximum size of 32 MB. + description: "The disk's format or file system. A value of `raw` indicates no file system, just a raw binary stream. A value of `swap` indicates a Linux swap area. The values `ext3` or `ext4` represent these Linux journaling file systems. The value `ext2` is the deprecated ext2 Linux file system. Finally, `initrd` indicates the disk is formatted as an uncompressed initial RAM disk.\n\n> \U0001F4D8\n>\n> The `ext2` file system doesn't properly support timestamps and will be removed from Linux support in the near future. Also, `initrd` is a legacy format that no longer applies to most use cases. As a best practice, use the other supported formats or file systems instead." enum: - raw - swap + - ext2 - ext3 - ext4 - initrd @@ -42613,7 +42490,7 @@ paths: additionalProperties: false properties: created: - description: __Read-only__ When this Disk was created. + description: __Read-only__ When this disk was created. example: '2018-01-01T00:01:01' format: date-time readOnly: true @@ -42628,10 +42505,11 @@ paths: status: LA x-linode-cli-display: 6 filesystem: - description: The file system of the disk. This can be `raw`, which indicates no file system, just a raw binary stream, `swap` for a Linux swap area, `ext3` or `ext4` for the ext3 of ext4 journaling file systems for Linux, respectively, or `initrd` for uncompressed initrd, ext2 with a maximum size of 32 MB. + description: "The disk's format or file system. A value of `raw` indicates no file system, just a raw binary stream. A value of `swap` indicates a Linux swap area. The values `ext3` or `ext4` represent these Linux journaling file systems. The value `ext2` is the deprecated ext2 Linux file system. Finally, `initrd` indicates the disk is formatted as an uncompressed initial RAM disk.\n\n> \U0001F4D8\n>\n> The `ext2` file system doesn't properly support timestamps and will be removed from Linux support in the near future. Also, `initrd` is a legacy format that no longer applies to most use cases. As a best practice, use the other supported formats or file systems instead." enum: - raw - swap + - ext2 - ext3 - ext4 - initrd @@ -42824,7 +42702,7 @@ paths: additionalProperties: false properties: created: - description: __Read-only__ When this Disk was created. + description: __Read-only__ When this disk was created. example: '2018-01-01T00:01:01' format: date-time readOnly: true @@ -42839,10 +42717,11 @@ paths: status: LA x-linode-cli-display: 6 filesystem: - description: The file system of the disk. This can be `raw`, which indicates no file system, just a raw binary stream, `swap` for a Linux swap area, `ext3` or `ext4` for the ext3 of ext4 journaling file systems for Linux, respectively, or `initrd` for uncompressed initrd, ext2 with a maximum size of 32 MB. + description: "The disk's format or file system. A value of `raw` indicates no file system, just a raw binary stream. A value of `swap` indicates a Linux swap area. The values `ext3` or `ext4` represent these Linux journaling file systems. The value `ext2` is the deprecated ext2 Linux file system. Finally, `initrd` indicates the disk is formatted as an uncompressed initial RAM disk.\n\n> \U0001F4D8\n>\n> The `ext2` file system doesn't properly support timestamps and will be removed from Linux support in the near future. Also, `initrd` is a legacy format that no longer applies to most use cases. As a best practice, use the other supported formats or file systems instead." enum: - raw - swap + - ext2 - ext3 - ext4 - initrd @@ -43017,7 +42896,7 @@ paths: additionalProperties: false properties: created: - description: __Read-only__ When this Disk was created. + description: __Read-only__ When this disk was created. example: '2018-01-01T00:01:01' format: date-time readOnly: true @@ -43032,10 +42911,11 @@ paths: status: LA x-linode-cli-display: 6 filesystem: - description: The file system of the disk. This can be `raw`, which indicates no file system, just a raw binary stream, `swap` for a Linux swap area, `ext3` or `ext4` for the ext3 of ext4 journaling file systems for Linux, respectively, or `initrd` for uncompressed initrd, ext2 with a maximum size of 32 MB. + description: "The disk's format or file system. A value of `raw` indicates no file system, just a raw binary stream. A value of `swap` indicates a Linux swap area. The values `ext3` or `ext4` represent these Linux journaling file systems. The value `ext2` is the deprecated ext2 Linux file system. Finally, `initrd` indicates the disk is formatted as an uncompressed initial RAM disk.\n\n> \U0001F4D8\n>\n> The `ext2` file system doesn't properly support timestamps and will be removed from Linux support in the near future. Also, `initrd` is a legacy format that no longer applies to most use cases. As a best practice, use the other supported formats or file systems instead." enum: - raw - swap + - ext2 - ext3 - ext4 - initrd @@ -45757,15 +45637,15 @@ paths: data: items: additionalProperties: false - description: Linode's load balancing solution. Can handle multiple ports, SSL termination, and any number of backends. NodeBalancer ports are configured with NodeBalancer Configs, and each config is given one or more NodeBalancer Node that accepts traffic. The traffic should be routed to the NodeBalancer's ip address, the NodeBalancer will handle routing individual requests to backends. + description: Linode's load balancing solution. Can handle multiple ports, SSL termination, and any number of backends. NodeBalancer ports are configured with NodeBalancer configs, and each config is given one or more NodeBalancer nodes that accepts traffic. The traffic should be routed to the NodeBalancer's IP address, for the NodeBalancer to handle routing individual requests to backends. properties: client_conn_throttle: - description: Throttle connections per second. Set to 0 (zero) to disable throttling. - example: 0 + description: Throttle TCP connections per second for TCP, HTTP, and HTTPS configurations. Set to `0` (zero) to disable throttling. + example: 10 maximum: 20 minimum: 0 type: integer - x-linode-cli-display: 6 + x-linode-cli-display: 7 created: description: __Read-only__ When this NodeBalancer was created. example: '2018-01-01T00:01:01' @@ -50287,29 +50167,26 @@ paths: description: The Linode types. items: additionalProperties: false - description: Returns collection of Linode types, including pricing and specifications for each type. These are used when [creating](https://techdocs.akamai.com/linode-api/reference/post-linode-instance) or [resizing](https://techdocs.akamai.com/linode-api/reference/post-resize-linode-instance) Linodes. + description: The available Linode types, including pricing and specifications for each. Use them when [creating](https://techdocs.akamai.com/linode-api/reference/post-linode-instance) or [resizing](https://techdocs.akamai.com/linode-api/reference/post-resize-linode-instance) Linodes. properties: addons: additionalProperties: false - description: __Read-only__ A list of optional add-on services for Linodes and their associated costs. + description: __Read-only__ Optional add-on services for Linodes and their associated cost. properties: backups: additionalProperties: false - description: __Read-only__ Information about the optional Backup service offered for Linodes. + description: __Read-only__ Details on the optional backup service available with a Linode. properties: price: additionalProperties: false - description: |- - The default cost of enabling Backups for this Linode Type. Prices are in US dollars, broken down into hourly and monthly charges. - - Certain regions have different prices from the default. For region-specific prices, see `region_prices`. + description: The default cost to enable the Backups service for this Linode type. Prices are in U.S. dollars, broken down into hourly and monthly charges. Different prices apply in different regions. For region-specific prices, see `region_prices`. properties: hourly: - description: The cost (in US dollars) per hour to add Backups service. + description: The hourly cost for the Backups service, in U.S. dollars. example: 0.008 type: number monthly: - description: The cost (in US dollars) per month to add Backups service. + description: The monthly cost for the Backups service, in U.S. dollars. example: 5 type: number type: object @@ -50318,15 +50195,15 @@ paths: additionalProperties: false properties: hourly: - description: Cost (in US dollars) per hour to add Backups service in this Region. + description: The hourly cost for the Backups service in this region, in U.S. dollars. example: 0.0096 type: number id: - description: The Region ID for these prices. + description: The unique identifier for the region. example: us-east type: string monthly: - description: Cost (in US dollars) per month to add Backups service in this Region. + description: The monthly cost for the Backups service in this region, in U.S. dollars. example: 6 type: number type: object @@ -50336,23 +50213,14 @@ paths: readOnly: true type: object class: - description: |- - __Filterable__, __Read-only__ 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` (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](https://techdocs.akamai.com/linode-api/reference/get-regions) 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](https://techdocs.akamai.com/linode-api/reference/get-regions) 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. + description: "__Filterable__, __Read-only__ The class of the Linode type.\n\n- `nanode`. These instances are good for low-duty workloads, where performance isn't critical.\n\n- `standard`. These instances are good for medium-duty workloads, and offer a good mix of performance, resources, and price.\n\n- `dedicated`. These instances are good for full-duty workloads where consistent performance is important.\n\n- `premium` (limited regions). This includes the features of a `dedicated` instance as well as the latest AMD EPYC™ CPUs. This ensures your applications are running on the latest hardware with consistently high performance. Only available in [regions](https://techdocs.akamai.com/linode-api/reference/get-regions) with \"Premium Plans\" in their `capabilities`.\n\n- `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](https://techdocs.akamai.com/linode-api/reference/get-regions) with `GPU Linodes` in their `capabilities`.\n\n- `accelerated` (limited regions - **Beta**). These leverage the power of dedicated, application-specific integrated circuits (ASIC), starting with NETINT Video Processing Units (VPUs). They're ideal for video transcoding, media processing, and other compute-heavy workloads. Designed to offload specialized tasks, these instances deliver faster processing times and greater efficiency than traditional CPU-based solutions.\n\n- `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.\n\n> \U0001F4D8\n>\n> - A `nanode` class is listed as a 1 GB Linode in Cloud Manager. The API, the CLI, and billing continue to refer to these as a Nanode.\n>\n> - A `standard` class is listed as a Shared Linode in Cloud Manager. The API, the CLI, and billing still refer to these as Standard.\n>\n> - The `accelerated` Linode type is in **Beta**. Talk to your account team or [open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)." enum: - nanode - standard - dedicated - premium - gpu + - accelerated - highmem example: standard readOnly: true @@ -50363,7 +50231,7 @@ paths: x-linode-cli-display: 3 x-linode-filterable: true disk: - description: __Filterable__, __Read-only__ The Disk size, in MB, of the Linode Type. + description: __Filterable__, __Read-only__ The Linode type's disk size in MB. example: 81920 readOnly: true type: integer @@ -50373,7 +50241,7 @@ paths: x-linode-cli-display: 4 x-linode-filterable: true gpus: - description: __Filterable__, __Read-only__ The number of GPUs this Linode Type offers. + description: __Filterable__, __Read-only__ The number of GPUs this Linode type offers. example: 0 readOnly: true type: integer @@ -50383,13 +50251,13 @@ paths: x-linode-cli-display: 6.5 x-linode-filterable: true id: - description: __Read-only__ The ID representing the Linode Type. + description: __Read-only__ The ID representing the Linode type. example: g6-standard-2 readOnly: true type: string x-linode-cli-display: 1 label: - description: __Filterable__, __Read-only__ The Linode Type's label is for display purposes only. + description: __Filterable__, __Read-only__ The display name for the Linode type. example: Linode 4GB readOnly: true type: string @@ -50399,7 +50267,7 @@ paths: x-linode-cli-display: 2 x-linode-filterable: true memory: - description: __Filterable__, __Read-only__ Amount of RAM included in this Linode Type. + description: __Filterable__, __Read-only__ Amount of RAM included in this Linode type. example: 4096 readOnly: true type: integer @@ -50420,18 +50288,15 @@ paths: x-linode-filterable: true price: additionalProperties: false - description: |- - __Read-only__ The default cost of provisioning this Linode Type. Prices are in US dollars, broken down into hourly and monthly charges. - - Certain regions have different prices from the default. For region-specific prices, see `region_prices`. + description: __Read-only__ The default cost of provisioning this Linode type. Prices are in U.S. dollars, broken down into hourly and monthly charges. Certain regions have different prices. For region-specific pricing, see `region_prices`. properties: hourly: - description: Cost (in US dollars) per hour. + description: The cost per hour in U.S. dollars. example: 0.03 type: number x-linode-cli-display: 9 monthly: - description: Cost per month, in US dollars. + description: The cost per month in U.S. dollars. example: 20 type: number x-linode-cli-display: 10 @@ -50442,27 +50307,27 @@ paths: additionalProperties: false properties: hourly: - description: Cost per hour for this region, in US dollars. + description: The cost per hour for this region in U.S. dollars. example: 0.036 type: number id: - description: The Region ID for these prices. + description: The unique identifier for the region. example: us-east type: string monthly: - description: Cost per month for this region, in US dollars. + description: The cost per month for this region in U.S. dollars. example: 24 type: number type: object type: array successor: - description: __Read-only__ The Linode Type that a [mutate](https://techdocs.akamai.com/linode-api/reference/post-mutate-linode-instance) will upgrade to for a Linode of this type. If `null`, a Linode of this type may not mutate. + description: __Read-only__ After a [mutate](https://techdocs.akamai.com/linode-api/reference/post-mutate-linode-instance), the Linode is upgraded to this Linode type. If `null`, this Linode type can't be mutated. example: null nullable: true readOnly: true type: string transfer: - description: __Filterable__, __Read-only__ The monthly outbound transfer amount, in MB. + description: __Filterable__, __Read-only__ The monthly outbound transfer amount in MB. example: 4000 readOnly: true type: integer @@ -50472,7 +50337,7 @@ paths: x-linode-cli-display: 8 x-linode-filterable: true vcpus: - description: __Filterable__, __Read-only__ The number of VCPU cores this Linode Type offers. + description: __Filterable__, __Read-only__ The number of VCPU cores this Linode type offers. example: 2 readOnly: true type: integer @@ -50585,29 +50450,26 @@ paths: application/json: schema: additionalProperties: false - description: Returns collection of Linode types, including pricing and specifications for each type. These are used when [creating](https://techdocs.akamai.com/linode-api/reference/post-linode-instance) or [resizing](https://techdocs.akamai.com/linode-api/reference/post-resize-linode-instance) Linodes. + description: The available Linode types, including pricing and specifications for each. Use them when [creating](https://techdocs.akamai.com/linode-api/reference/post-linode-instance) or [resizing](https://techdocs.akamai.com/linode-api/reference/post-resize-linode-instance) Linodes. properties: addons: additionalProperties: false - description: __Read-only__ A list of optional add-on services for Linodes and their associated costs. + description: __Read-only__ Optional add-on services for Linodes and their associated cost. properties: backups: additionalProperties: false - description: __Read-only__ Information about the optional Backup service offered for Linodes. + description: __Read-only__ Details on the optional backup service available with a Linode. properties: price: additionalProperties: false - description: |- - The default cost of enabling Backups for this Linode Type. Prices are in US dollars, broken down into hourly and monthly charges. - - Certain regions have different prices from the default. For region-specific prices, see `region_prices`. + description: The default cost to enable the Backups service for this Linode type. Prices are in U.S. dollars, broken down into hourly and monthly charges. Different prices apply in different regions. For region-specific prices, see `region_prices`. properties: hourly: - description: The cost (in US dollars) per hour to add Backups service. + description: The hourly cost for the Backups service, in U.S. dollars. example: 0.008 type: number monthly: - description: The cost (in US dollars) per month to add Backups service. + description: The monthly cost for the Backups service, in U.S. dollars. example: 5 type: number type: object @@ -50616,15 +50478,15 @@ paths: additionalProperties: false properties: hourly: - description: Cost (in US dollars) per hour to add Backups service in this Region. + description: The hourly cost for the Backups service in this region, in U.S. dollars. example: 0.0096 type: number id: - description: The Region ID for these prices. + description: The unique identifier for the region. example: us-east type: string monthly: - description: Cost (in US dollars) per month to add Backups service in this Region. + description: The monthly cost for the Backups service in this region, in U.S. dollars. example: 6 type: number type: object @@ -50634,23 +50496,14 @@ paths: readOnly: true type: object class: - description: |- - __Filterable__, __Read-only__ 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` (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](https://techdocs.akamai.com/linode-api/reference/get-regions) 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](https://techdocs.akamai.com/linode-api/reference/get-regions) 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. + description: "__Filterable__, __Read-only__ The class of the Linode type.\n\n- `nanode`. These instances are good for low-duty workloads, where performance isn't critical.\n\n- `standard`. These instances are good for medium-duty workloads, and offer a good mix of performance, resources, and price.\n\n- `dedicated`. These instances are good for full-duty workloads where consistent performance is important.\n\n- `premium` (limited regions). This includes the features of a `dedicated` instance as well as the latest AMD EPYC™ CPUs. This ensures your applications are running on the latest hardware with consistently high performance. Only available in [regions](https://techdocs.akamai.com/linode-api/reference/get-regions) with \"Premium Plans\" in their `capabilities`.\n\n- `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](https://techdocs.akamai.com/linode-api/reference/get-regions) with `GPU Linodes` in their `capabilities`.\n\n- `accelerated` (limited regions - **Beta**). These leverage the power of dedicated, application-specific integrated circuits (ASIC), starting with NETINT Video Processing Units (VPUs). They're ideal for video transcoding, media processing, and other compute-heavy workloads. Designed to offload specialized tasks, these instances deliver faster processing times and greater efficiency than traditional CPU-based solutions.\n\n- `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.\n\n> \U0001F4D8\n>\n> - A `nanode` class is listed as a 1 GB Linode in Cloud Manager. The API, the CLI, and billing continue to refer to these as a Nanode.\n>\n> - A `standard` class is listed as a Shared Linode in Cloud Manager. The API, the CLI, and billing still refer to these as Standard.\n>\n> - The `accelerated` Linode type is in **Beta**. Talk to your account team or [open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket)." enum: - nanode - standard - dedicated - premium - gpu + - accelerated - highmem example: standard readOnly: true @@ -50661,7 +50514,7 @@ paths: x-linode-cli-display: 3 x-linode-filterable: true disk: - description: __Filterable__, __Read-only__ The Disk size, in MB, of the Linode Type. + description: __Filterable__, __Read-only__ The Linode type's disk size in MB. example: 81920 readOnly: true type: integer @@ -50671,7 +50524,7 @@ paths: x-linode-cli-display: 4 x-linode-filterable: true gpus: - description: __Filterable__, __Read-only__ The number of GPUs this Linode Type offers. + description: __Filterable__, __Read-only__ The number of GPUs this Linode type offers. example: 0 readOnly: true type: integer @@ -50681,13 +50534,13 @@ paths: x-linode-cli-display: 6.5 x-linode-filterable: true id: - description: __Read-only__ The ID representing the Linode Type. + description: __Read-only__ The ID representing the Linode type. example: g6-standard-2 readOnly: true type: string x-linode-cli-display: 1 label: - description: __Filterable__, __Read-only__ The Linode Type's label is for display purposes only. + description: __Filterable__, __Read-only__ The display name for the Linode type. example: Linode 4GB readOnly: true type: string @@ -50697,7 +50550,7 @@ paths: x-linode-cli-display: 2 x-linode-filterable: true memory: - description: __Filterable__, __Read-only__ Amount of RAM included in this Linode Type. + description: __Filterable__, __Read-only__ Amount of RAM included in this Linode type. example: 4096 readOnly: true type: integer @@ -50718,18 +50571,15 @@ paths: x-linode-filterable: true price: additionalProperties: false - description: |- - __Read-only__ The default cost of provisioning this Linode Type. Prices are in US dollars, broken down into hourly and monthly charges. - - Certain regions have different prices from the default. For region-specific prices, see `region_prices`. + description: __Read-only__ The default cost of provisioning this Linode type. Prices are in U.S. dollars, broken down into hourly and monthly charges. Certain regions have different prices. For region-specific pricing, see `region_prices`. properties: hourly: - description: Cost (in US dollars) per hour. + description: The cost per hour in U.S. dollars. example: 0.03 type: number x-linode-cli-display: 9 monthly: - description: Cost per month, in US dollars. + description: The cost per month in U.S. dollars. example: 20 type: number x-linode-cli-display: 10 @@ -50740,27 +50590,27 @@ paths: additionalProperties: false properties: hourly: - description: Cost per hour for this region, in US dollars. + description: The cost per hour for this region in U.S. dollars. example: 0.036 type: number id: - description: The Region ID for these prices. + description: The unique identifier for the region. example: us-east type: string monthly: - description: Cost per month for this region, in US dollars. + description: The cost per month for this region in U.S. dollars. example: 24 type: number type: object type: array successor: - description: __Read-only__ The Linode Type that a [mutate](https://techdocs.akamai.com/linode-api/reference/post-mutate-linode-instance) will upgrade to for a Linode of this type. If `null`, a Linode of this type may not mutate. + description: __Read-only__ After a [mutate](https://techdocs.akamai.com/linode-api/reference/post-mutate-linode-instance), the Linode is upgraded to this Linode type. If `null`, this Linode type can't be mutated. example: null nullable: true readOnly: true type: string transfer: - description: __Filterable__, __Read-only__ The monthly outbound transfer amount, in MB. + description: __Filterable__, __Read-only__ The monthly outbound transfer amount in MB. example: 4000 readOnly: true type: integer @@ -50770,7 +50620,7 @@ paths: x-linode-cli-display: 8 x-linode-filterable: true vcpus: - description: __Filterable__, __Read-only__ The number of VCPU cores this Linode Type offers. + description: __Filterable__, __Read-only__ The number of VCPU cores this Linode type offers. example: 2 readOnly: true type: integer @@ -51214,44 +51064,32 @@ paths: type: array x-linode-cli-format: json labels: - additionalProperties: false + additionalProperties: + maxLength: 63 + minLength: 0 + pattern: ^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])? + type: string + x-additionalPropertiesName: value description: |- Key-value pairs added as labels to nodes in the node pool. Labels help classify your nodes and easily select subsets of objects. To learn more, review [Add Labels and Taints to your LKE node pools](https://www.linode.com/docs/products/compute/kubernetes/guides/deploy-and-manage-cluster-with-the-linode-api/#add-labels-and-taints-to-your-lke-node-pools). - Specifying an empty dictionary value will remove all previously set labels. - example: - example.com/my-app: teams - items: - required: - - key - - value - properties: - key: - description: |- - The Kubernetes label key. + **Label key:** - - A key can contain alphanumeric characters, dashes (`-`), underscores (`_`), or dots (`.`). Start and end it with an alphanumeric character. + - A key can contain alphanumeric characters, dashes (`-`), underscores (`_`), or dots (`.`). Start and end it with an alphanumeric character. - - If the key begins with a DNS subdomain prefix followed by a single slash, for example `example.com/my-app`, the maximum total length of the label key is 128 characters. Domain labels can be up to 62 characters after the '/'. The prefix needs to adhere to [RFC 1123](https://datatracker.ietf.org/doc/html/rfc1123) DNS subdomain restrictions. + - If the key begins with a DNS subdomain prefix followed by a single slash, for example `example.com/my-app`, the maximum total length of the label key is 128 characters. Domain labels can be up to 62 characters after the '/'. The prefix needs to adhere to [RFC 1123](https://datatracker.ietf.org/doc/html/rfc1123) DNS subdomain restrictions. - - If the key doesn't begin with a DNS subdomain prefix, the maximum key length is 63 characters. - example: example.com/my-app - maxLength: 128 - minLength: 1 - pattern: ^([A-Za-z0-9][-A-Za-z0-9_.]*){0,62}?(\/)?([A-Za-z0-9][-A-Za-z0-9_.]{0,62})?$ - type: string - value: - description: |- - The Kubernetes label value. + - If the key doesn't begin with a DNS subdomain prefix, the maximum key length is 63 characters. - - A key can contain alphanumeric characters, dashes (`-`), underscores (`_`), or dots (`.`). Start and end it with an alphanumeric character. + Specifying an empty object removes all previously set labels. - - Can be specified as an empty string value with `""`. - example: teams - maxLength: 63 - minLength: 0 - pattern: ^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])? - type: string + **Label value:** + + - The label's value can contain alphanumeric characters, dashes (`-`), underscores (`_`), or dots (`.`). Start and end it with an alphanumeric character. + + - Can be specified as an empty string value with `""`. + example: + example.com/my-app: teams type: object tags: description: __Filterable__ An array of tags applied to this object. Tags are for organizational purposes only. @@ -51317,7 +51155,7 @@ paths: - value - effect type: object - minItems: 1 + minItems: 0 type: array type: description: The Linode Type for all of the nodes in the Node Pool. @@ -53169,15 +53007,16 @@ paths: application/json: schema: additionalProperties: false + description: __Read-only__ Status information for a Node which is a member of a Kubernetes cluster. properties: id: - description: __Read-only__ The Node's ID. + description: The Node's ID. example: 12345-6aa78910bc - readOnly: true type: string instance_id: - description: The Linode's ID. If no Linode is currently provisioned for this Node, this is `null`. - example: 123456 + description: The Linode's ID. When no Linode is currently provisioned for this Node, this will be `null`. + example: 123458 + nullable: true type: integer status: description: |- @@ -53191,9 +53030,10 @@ paths: - not_ready example: ready type: string + readOnly: true type: object x-akamai: - file-path: schemas/added-get-lke-cluster-node-200.yaml + file-path: schemas/lke-node-status.yaml x-example: x-ref: ../examples/get-lke-cluster-node-200.json description: Returns the values of a node object in the form that it appears currently in the node pool array. @@ -53494,25 +53334,15 @@ paths: - Filterable x-linode-filterable: true labels: - additionalProperties: false - description: Key-value pairs added as labels to nodes in the node pool. Labels help classify your nodes and to easily select subsets of objects. + additionalProperties: + maxLength: 63 + minLength: 0 + pattern: ^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])? + type: string + x-additionalPropertiesName: value + description: Key-value pairs added as labels to nodes in the node pool. Labels help classify your nodes and easily select subsets of objects. To learn more, review [Add Labels and Taints to your LKE node pools](https://www.linode.com/docs/products/compute/kubernetes/guides/deploy-and-manage-cluster-with-the-linode-api/#add-labels-and-taints-to-your-lke-node-pools). example: - example.com/my-app: teamUSA - properties: - key: - description: The Kubernetes label key. - example: example.com/my-app - maxLength: 128 - minLength: 1 - pattern: ^([A-Za-z0-9][-A-Za-z0-9_.]*){0,62}?(\/)?([A-Za-z0-9][-A-Za-z0-9_.]{0,62})?$ - type: string - value: - description: The Kubernetes label value. - example: teamUSA - maxLength: 63 - minLength: 0 - pattern: ^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])? - type: string + example.com/my-app: teams type: object nodes: description: Status information for the Nodes which are members of this Node Pool. If a Linode has not been provisioned for a given Node slot, the `instance_id` will be returned as `null`. @@ -53522,14 +53352,20 @@ paths: properties: id: description: The Node's ID. - example: '123456' + example: 12345-6aa78910bc type: string instance_id: description: The Linode's ID. When no Linode is currently provisioned for this Node, this will be `null`. example: 123458 - type: string + nullable: true + type: integer status: - description: The Node's status as it pertains to being a Kubernetes node. + description: |- + The creation status of this Node. This status is distinct from this Node's readiness as a Kubernetes Node Object as determined by the command `kubectl get nodes`. + + `not_ready` indicates that the Linode is still being created. + + `ready` indicates that the Linode has successfully been created and is running Kubernetes software. enum: - ready - not_ready @@ -53719,8 +53555,7 @@ paths: --autoscaler.enabled true \ --autoscaler.max 12 \ --autoscaler.min 3 \ - --labels.key "example.com/my-app" \ - --labels.value "teams" \ + --labels '{ "example.com/my-app":"team1" }' \ --taints.effect "NoSchedule" \ --taints.key "example.com/my-app" \ --taints.value "teamA" @@ -53795,44 +53630,32 @@ paths: type: array x-linode-cli-format: json labels: - additionalProperties: false + additionalProperties: + maxLength: 63 + minLength: 0 + pattern: ^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])? + type: string + x-additionalPropertiesName: value description: |- Key-value pairs added as labels to nodes in the node pool. Labels help classify your nodes and easily select subsets of objects. To learn more, review [Add Labels and Taints to your LKE node pools](https://www.linode.com/docs/products/compute/kubernetes/guides/deploy-and-manage-cluster-with-the-linode-api/#add-labels-and-taints-to-your-lke-node-pools). - Specifying an empty dictionary value will remove all previously set labels. - example: - example.com/my-app: teams - items: - required: - - key - - value - properties: - key: - description: |- - The Kubernetes label key. + **Label key:** - - A key can contain alphanumeric characters, dashes (`-`), underscores (`_`), or dots (`.`). Start and end it with an alphanumeric character. + - A key can contain alphanumeric characters, dashes (`-`), underscores (`_`), or dots (`.`). Start and end it with an alphanumeric character. - - If the key begins with a DNS subdomain prefix followed by a single slash, for example `example.com/my-app`, the maximum total length of the label key is 128 characters. Domain labels can be up to 62 characters after the '/'. The prefix needs to adhere to [RFC 1123](https://datatracker.ietf.org/doc/html/rfc1123) DNS subdomain restrictions. + - If the key begins with a DNS subdomain prefix followed by a single slash, for example `example.com/my-app`, the maximum total length of the label key is 128 characters. Domain labels can be up to 62 characters after the '/'. The prefix needs to adhere to [RFC 1123](https://datatracker.ietf.org/doc/html/rfc1123) DNS subdomain restrictions. - - If the key doesn't begin with a DNS subdomain prefix, the maximum key length is 63 characters. - example: example.com/my-app - maxLength: 128 - minLength: 1 - pattern: ^([A-Za-z0-9][-A-Za-z0-9_.]*){0,62}?(\/)?([A-Za-z0-9][-A-Za-z0-9_.]{0,62})?$ - type: string - value: - description: |- - The Kubernetes label value. + - If the key doesn't begin with a DNS subdomain prefix, the maximum key length is 63 characters. - - A key can contain alphanumeric characters, dashes (`-`), underscores (`_`), or dots (`.`). Start and end it with an alphanumeric character. + Specifying an empty object removes all previously set labels. - - Can be specified as an empty string value with `""`. - example: teams - maxLength: 63 - minLength: 0 - pattern: ^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])? - type: string + **Label value:** + + - The label's value can contain alphanumeric characters, dashes (`-`), underscores (`_`), or dots (`.`). Start and end it with an alphanumeric character. + + - Can be specified as an empty string value with `""`. + example: + example.com/my-app: teams type: object tags: description: __Filterable__ An array of tags applied to this object. Tags are for organizational purposes only. @@ -53898,7 +53721,7 @@ paths: - value - effect type: object - minItems: 1 + minItems: 0 type: array type: description: The Linode Type for all of the nodes in the Node Pool. @@ -53992,25 +53815,15 @@ paths: - Filterable x-linode-filterable: true labels: - additionalProperties: false - description: Key-value pairs added as labels to nodes in the node pool. Labels help classify your nodes and to easily select subsets of objects. + additionalProperties: + maxLength: 63 + minLength: 0 + pattern: ^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])? + type: string + x-additionalPropertiesName: value + description: Key-value pairs added as labels to nodes in the node pool. Labels help classify your nodes and easily select subsets of objects. To learn more, review [Add Labels and Taints to your LKE node pools](https://www.linode.com/docs/products/compute/kubernetes/guides/deploy-and-manage-cluster-with-the-linode-api/#add-labels-and-taints-to-your-lke-node-pools). example: - example.com/my-app: teamUSA - properties: - key: - description: The Kubernetes label key. - example: example.com/my-app - maxLength: 128 - minLength: 1 - pattern: ^([A-Za-z0-9][-A-Za-z0-9_.]*){0,62}?(\/)?([A-Za-z0-9][-A-Za-z0-9_.]{0,62})?$ - type: string - value: - description: The Kubernetes label value. - example: teamUSA - maxLength: 63 - minLength: 0 - pattern: ^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])? - type: string + example.com/my-app: teams type: object nodes: description: Status information for the Nodes which are members of this Node Pool. If a Linode has not been provisioned for a given Node slot, the `instance_id` will be returned as `null`. @@ -54020,14 +53833,20 @@ paths: properties: id: description: The Node's ID. - example: '123456' + example: 12345-6aa78910bc type: string instance_id: description: The Linode's ID. When no Linode is currently provisioned for this Node, this will be `null`. example: 123458 - type: string + nullable: true + type: integer status: - description: The Node's status as it pertains to being a Kubernetes node. + description: |- + The creation status of this Node. This status is distinct from this Node's readiness as a Kubernetes Node Object as determined by the command `kubectl get nodes`. + + `not_ready` indicates that the Linode is still being created. + + `ready` indicates that the Linode has successfully been created and is running Kubernetes software. enum: - ready - not_ready @@ -54137,8 +53956,7 @@ paths: --autoscaler.enabled true \ --autoscaler.max 12 \ --autoscaler.min 3 \ - --labels.key "example.com/my-app" \ - --labels.value "teams" \ + --labels '{ "example.com/my-app":"team1" }' \ --taints.effect "NoSchedule" \ --taints.key "example.com/my-app" \ --taints.value "teamA" @@ -54341,25 +54159,15 @@ paths: - Filterable x-linode-filterable: true labels: - additionalProperties: false - description: Key-value pairs added as labels to nodes in the node pool. Labels help classify your nodes and to easily select subsets of objects. + additionalProperties: + maxLength: 63 + minLength: 0 + pattern: ^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])? + type: string + x-additionalPropertiesName: value + description: Key-value pairs added as labels to nodes in the node pool. Labels help classify your nodes and easily select subsets of objects. To learn more, review [Add Labels and Taints to your LKE node pools](https://www.linode.com/docs/products/compute/kubernetes/guides/deploy-and-manage-cluster-with-the-linode-api/#add-labels-and-taints-to-your-lke-node-pools). example: - example.com/my-app: teamUSA - properties: - key: - description: The Kubernetes label key. - example: example.com/my-app - maxLength: 128 - minLength: 1 - pattern: ^([A-Za-z0-9][-A-Za-z0-9_.]*){0,62}?(\/)?([A-Za-z0-9][-A-Za-z0-9_.]{0,62})?$ - type: string - value: - description: The Kubernetes label value. - example: teamUSA - maxLength: 63 - minLength: 0 - pattern: ^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])? - type: string + example.com/my-app: teams type: object nodes: description: Status information for the Nodes which are members of this Node Pool. If a Linode has not been provisioned for a given Node slot, the `instance_id` will be returned as `null`. @@ -54369,14 +54177,20 @@ paths: properties: id: description: The Node's ID. - example: '123456' + example: 12345-6aa78910bc type: string instance_id: description: The Linode's ID. When no Linode is currently provisioned for this Node, this will be `null`. example: 123458 - type: string + nullable: true + type: integer status: - description: The Node's status as it pertains to being a Kubernetes node. + description: |- + The creation status of this Node. This status is distinct from this Node's readiness as a Kubernetes Node Object as determined by the command `kubectl get nodes`. + + `not_ready` indicates that the Linode is still being created. + + `ready` indicates that the Linode has successfully been created and is running Kubernetes software. enum: - ready - not_ready @@ -54513,8 +54327,7 @@ paths: --autoscaler.enabled true \ --autoscaler.max 12 \ --autoscaler.min 3 \ - --labels.key "example.com/my-app" \ - --labels.value "teams" \ + --labels '{ "example.com/my-app":"team1", "env":"staging" }' \ --taints.effect "NoSchedule" \ --taints.key "example.com/my-app" \ --taints.value "teamA" @@ -54567,44 +54380,32 @@ paths: minimum: 1 type: integer labels: - additionalProperties: false + additionalProperties: + maxLength: 63 + minLength: 0 + pattern: ^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])? + type: string + x-additionalPropertiesName: value description: |- Key-value pairs added as labels to nodes in the node pool. Labels help classify your nodes and easily select subsets of objects. To learn more, review [Add Labels and Taints to your LKE node pools](https://www.linode.com/docs/products/compute/kubernetes/guides/deploy-and-manage-cluster-with-the-linode-api/#add-labels-and-taints-to-your-lke-node-pools). - Specifying an empty dictionary value will remove all previously set labels. - example: - example.com/my-app: teams - items: - required: - - key - - value - properties: - key: - description: |- - The Kubernetes label key. + **Label key:** - - A key can contain alphanumeric characters, dashes (`-`), underscores (`_`), or dots (`.`). Start and end it with an alphanumeric character. + - A key can contain alphanumeric characters, dashes (`-`), underscores (`_`), or dots (`.`). Start and end it with an alphanumeric character. - - If the key begins with a DNS subdomain prefix followed by a single slash, for example `example.com/my-app`, the maximum total length of the label key is 128 characters. Domain labels can be up to 62 characters after the '/'. The prefix needs to adhere to [RFC 1123](https://datatracker.ietf.org/doc/html/rfc1123) DNS subdomain restrictions. + - If the key begins with a DNS subdomain prefix followed by a single slash, for example `example.com/my-app`, the maximum total length of the label key is 128 characters. Domain labels can be up to 62 characters after the '/'. The prefix needs to adhere to [RFC 1123](https://datatracker.ietf.org/doc/html/rfc1123) DNS subdomain restrictions. - - If the key doesn't begin with a DNS subdomain prefix, the maximum key length is 63 characters. - example: example.com/my-app - maxLength: 128 - minLength: 1 - pattern: ^([A-Za-z0-9][-A-Za-z0-9_.]*){0,62}?(\/)?([A-Za-z0-9][-A-Za-z0-9_.]{0,62})?$ - type: string - value: - description: |- - The Kubernetes label value. + - If the key doesn't begin with a DNS subdomain prefix, the maximum key length is 63 characters. - - A key can contain alphanumeric characters, dashes (`-`), underscores (`_`), or dots (`.`). Start and end it with an alphanumeric character. + Specifying an empty object removes all previously set labels. - - Can be specified as an empty string value with `""`. - example: teams - maxLength: 63 - minLength: 0 - pattern: ^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])? - type: string + **Label value:** + + - The label's value can contain alphanumeric characters, dashes (`-`), underscores (`_`), or dots (`.`). Start and end it with an alphanumeric character. + + - Can be specified as an empty string value with `""`. + example: + example.com/my-app: teams type: object taints: description: |- @@ -54658,7 +54459,7 @@ paths: - value - effect type: object - minItems: 1 + minItems: 0 type: array type: object x-akamai: @@ -54738,25 +54539,15 @@ paths: - Filterable x-linode-filterable: true labels: - additionalProperties: false - description: Key-value pairs added as labels to nodes in the node pool. Labels help classify your nodes and to easily select subsets of objects. + additionalProperties: + maxLength: 63 + minLength: 0 + pattern: ^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])? + type: string + x-additionalPropertiesName: value + description: Key-value pairs added as labels to nodes in the node pool. Labels help classify your nodes and easily select subsets of objects. To learn more, review [Add Labels and Taints to your LKE node pools](https://www.linode.com/docs/products/compute/kubernetes/guides/deploy-and-manage-cluster-with-the-linode-api/#add-labels-and-taints-to-your-lke-node-pools). example: - example.com/my-app: teamUSA - properties: - key: - description: The Kubernetes label key. - example: example.com/my-app - maxLength: 128 - minLength: 1 - pattern: ^([A-Za-z0-9][-A-Za-z0-9_.]*){0,62}?(\/)?([A-Za-z0-9][-A-Za-z0-9_.]{0,62})?$ - type: string - value: - description: The Kubernetes label value. - example: teamUSA - maxLength: 63 - minLength: 0 - pattern: ^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])? - type: string + example.com/my-app: teams type: object nodes: description: Status information for the Nodes which are members of this Node Pool. If a Linode has not been provisioned for a given Node slot, the `instance_id` will be returned as `null`. @@ -54766,14 +54557,20 @@ paths: properties: id: description: The Node's ID. - example: '123456' + example: 12345-6aa78910bc type: string instance_id: description: The Linode's ID. When no Linode is currently provisioned for this Node, this will be `null`. example: 123458 - type: string + nullable: true + type: integer status: - description: The Node's status as it pertains to being a Kubernetes node. + description: |- + The creation status of this Node. This status is distinct from this Node's readiness as a Kubernetes Node Object as determined by the command `kubectl get nodes`. + + `not_ready` indicates that the Linode is still being created. + + `ready` indicates that the Linode has successfully been created and is running Kubernetes software. enum: - ready - not_ready @@ -54856,8 +54653,7 @@ paths: --autoscaler.enabled true \ --autoscaler.max 12 \ --autoscaler.min 3 \ - --labels.key "example.com/my-app" \ - --labels.value "teams" \ + --labels '{ "example.com/my-app":"team1", "env":"staging" }' \ --taints.effect "NoSchedule" \ --taints.key "example.com/my-app" \ --taints.value "teamA" @@ -69348,15 +69144,15 @@ paths: data: items: additionalProperties: false - description: Linode's load balancing solution. Can handle multiple ports, SSL termination, and any number of backends. NodeBalancer ports are configured with NodeBalancer Configs, and each config is given one or more NodeBalancer Node that accepts traffic. The traffic should be routed to the NodeBalancer's ip address, the NodeBalancer will handle routing individual requests to backends. + description: Linode's load balancing solution. Can handle multiple ports, SSL termination, and any number of backends. NodeBalancer ports are configured with NodeBalancer configs, and each config is given one or more NodeBalancer nodes that accepts traffic. The traffic should be routed to the NodeBalancer's IP address, for the NodeBalancer to handle routing individual requests to backends. properties: client_conn_throttle: - description: Throttle connections per second. Set to 0 (zero) to disable throttling. - example: 0 + description: Throttle TCP connections per second for TCP, HTTP, and HTTPS configurations. Set to `0` (zero) to disable throttling. + example: 10 maximum: 20 minimum: 0 type: integer - x-linode-cli-display: 6 + x-linode-cli-display: 7 created: description: __Read-only__ When this NodeBalancer was created. example: '2018-01-01T00:01:01' @@ -69544,9 +69340,9 @@ paths: description: |- Creates a NodeBalancer in the requested Region. Only available in [regions](https://techdocs.akamai.com/linode-api/reference/get-regions) with "NodeBalancers" in their `capabilities`. - NodeBalancers require a port Config with at least one backend Node to start serving requests. + NodeBalancers require a port config with at least one backend node to start serving requests. - When using the Linode CLI to create a NodeBalancer, first create a NodeBalancer without any Configs. Then, create Configs and Nodes for that NodeBalancer with the respective [Create a config](https://techdocs.akamai.com/linode-api/reference/post-node-balancer-config) and [Create a node](https://techdocs.akamai.com/linode-api/reference/post-node-balancer-node) operations. + When using the Linode CLI to create a NodeBalancer, first create a NodeBalancer without any configs. Then, create configs and nodes for that NodeBalancer with the respective [Create a config](https://techdocs.akamai.com/linode-api/reference/post-node-balancer-config) and [Create a node](https://techdocs.akamai.com/linode-api/reference/post-node-balancer-node) operations. <> @@ -69583,327 +69379,875 @@ paths: additionalProperties: false properties: client_conn_throttle: - description: Throttle connections per second. Set to 0 (zero) to disable throttling. - example: 0 + description: Throttle TCP connections per second for TCP, HTTP, and HTTPS configurations. Set to `0` (zero) to disable throttling. + example: 10 maximum: 20 minimum: 0 type: integer - x-linode-cli-display: 6 + x-linode-cli-display: 7 configs: - description: |- - The port Configs to create for this NodeBalancer. - - Each Config must have a unique port and at least one Node. + description: The port configs to create for this NodeBalancer. Each config needs a unique port and at least one node. items: - additionalProperties: false - description: A request object representing a NodeBalancer Config, including Nodes. - properties: - algorithm: - default: roundrobin - description: What algorithm this NodeBalancer should use for routing traffic to backends. - enum: - - roundrobin - - leastconn - - source - example: roundrobin - type: string - x-linode-cli-display: 4 - check: - default: none - description: |- - The type of check to perform against backends to ensure they are serving requests. This is used to determine if backends are up or down. + oneOf: + - additionalProperties: false + description: A NodeBalancer configuration defines the protocol and settings for a specific port on the NodeBalancer. These fields apply to TCP configurations. + properties: + algorithm: + default: roundrobin + description: The algorithm this TCP NodeBalancer uses to route traffic to backends. + enum: + - roundrobin + - leastconn + - source + example: leastconn + type: string + x-linode-cli-display: 4 + check: + default: none + description: |- + The type of check to perform against backends to ensure they are serving requests. This is used to determine if backends are up or down. - - If `none` no check is performed. - - `connection` requires only a connection to the backend to succeed. - - `http` and `http_body` rely on the backend serving HTTP, and that the response returned matches what is expected. - enum: - - none - - connection - - http - - http_body - example: http_body - type: string - check_attempts: - default: 3 - description: How many times to attempt a check before considering a backend to be down. - example: 3 - maximum: 30 - minimum: 1 - type: integer - check_body: - description: This value must be present in the response body of the check in order for it to pass. If this value is not present in the response body of a check request, the backend is considered to be down. - example: it works - type: string - check_interval: - default: 31 - description: |- - How often, in seconds, to check that backends are up and serving requests. + - If `none`, no check is performed. + - `connection` requires only a connection to the backend to succeed. + - `http` and `http_body` rely on the backend serving HTTP, and that the response returned matches what is expected. + enum: + - none + - connection + - http + - http_body + example: http_body + type: string + check_attempts: + default: 3 + description: How many times to attempt a check before considering a backend to be down. + example: 3 + maximum: 30 + minimum: 1 + type: integer + check_body: + description: This value must be present in the response body of the check in order for it to pass. If this value is not present in the response body of a check request, the backend is considered to be down. + example: it works + type: string + check_interval: + default: 5 + description: |- + How often, in seconds, to check that backends are up and serving requests. - Must be greater than `check_timeout`. - example: 90 - type: integer - check_passive: - default: true - description: If `true`, any response from this backend with a `5xx` status code will be enough for it to be considered unhealthy and taken out of rotation. - example: true - type: boolean - x-linode-cli-display: 6 - check_path: - description: The URL path to check on each backend. If the backend does not respond to this request it is considered to be down. - example: /test - pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ - type: string - check_timeout: - default: 30 - description: |- - How long, in seconds, to wait for a check attempt before considering it failed. + Must be greater than `check_timeout`. + example: 90 + maximum: 3600 + minimum: 2 + type: integer + check_passive: + default: true + description: If `true`, any response from this backend with a `5xx` status code will be enough for it to be considered unhealthy and taken out of rotation. + example: true + type: boolean + x-linode-cli-display: 6 + check_path: + description: The URL path to check on each backend. If the backend does not respond to this request it is considered to be down. + example: /test + pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ + type: string + check_timeout: + default: 30 + description: |- + How long, in seconds, to wait for a check attempt before considering it failed. - Must be less than `check_interval`. - example: 10 - maximum: 30 - minimum: 1 - type: integer - cipher_suite: - default: recommended - description: |- - What ciphers to use for SSL connections served by this NodeBalancer. + Must be less than `check_interval`. + example: 10 + maximum: 30 + minimum: 1 + type: integer + cipher_suite: + description: __Read-only__ Not applicable for HTTP configs. + example: recommended + readOnly: true + type: string + x-linode-cli-color: + default_: white + legacy: red + x-linode-cli-display: 7 + id: + description: __Read-only__ This config's unique ID. + example: 6000 + readOnly: true + type: integer + x-linode-cli-display: 1 + nodebalancer_id: + description: __Read-only__ The ID for the NodeBalancer this config belongs to. + example: 12345 + readOnly: true + type: integer + nodes: + description: The NodeBalancer nodes that serve this configuration. + items: + additionalProperties: false + description: A NodeBalancer node represents a single backend serving requests for a single port of a NodeBalancer. Nodes are specific to NodeBalancer configs, and serve traffic over their private IP. If the same Linode is serving traffic for more than one port on the same NodeBalancer, one NodeBalancer node is required for each config (port) it should serve requests on. For example, if you have four backends, and each should respond to both HTTP and HTTPS requests, you will need two NodeBalancer configs (port 80 and port 443) and four backends each, one for each of the Linodes serving requests for that port. + properties: + address: + description: The private IP Address where this backend can be reached. This _must_ be a private IP address. + example: 192.168.210.120:80 + format: ip + type: string + x-linode-cli-display: 3 + config_id: + description: __Read-only__ The NodeBalancer Config ID that this Node belongs to. + example: 4567 + readOnly: true + type: integer + id: + description: __Read-only__ This node's unique ID. + example: 54321 + readOnly: true + type: integer + x-linode-cli-display: 1 + label: + description: The label for this node. This is for display purposes only. + example: node54321 + maxLength: 32 + minLength: 3 + pattern: '[a-zA-Z0-9-_.]{3,32}' + type: string + x-linode-cli-display: 2 + mode: + description: |- + The mode this NodeBalancer should use when sending traffic to this backend. - - `legacy` is considered insecure and should only be used if necessary. - enum: - - recommended - - legacy - example: recommended - type: string - x-linode-cli-color: - default_: white - legacy: red - x-linode-cli-display: 7 - nodes: - description: The NodeBalancer Nodes that serve this Config. - items: + - If set to `accept` this backend is accepting traffic. + - If set to `reject` this backend will not receive traffic. + - If set to `drain` this backend will not receive _new_ traffic, but connections already pinned to it will continue to be routed to it. + - If set to `backup`, this backend will only receive traffic if all `accept` nodes are down. + enum: + - accept + - reject + - drain + - backup + example: accept + type: string + x-linode-cli-display: 6 + nodebalancer_id: + description: __Read-only__ The NodeBalancer ID that this Node belongs to. + example: 12345 + readOnly: true + type: integer + status: + description: __Read-only__ The current status of this node, based on the configured checks of its NodeBalancer Config. + enum: + - unknown + - UP + - DOWN + example: UP + readOnly: true + type: string + x-linode-cli-color: + DOWN: red + UP: green + default_: white + unknown: yellow + x-linode-cli-display: 4 + weight: + description: Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. + example: 50 + maximum: 255 + minimum: 1 + type: integer + x-linode-cli-display: 5 + title: TCP, HTTP, or HTTPS config + x-akamai: + file-path: schemas/node-balancer-node-tcp-http-https.yaml + type: array + nodes_status: additionalProperties: false - description: A NodeBalancerNode represents a single backend serving requests for a single port of a NodeBalancer. Nodes are specific to NodeBalancer Configs, and serve traffic over their private IP. If the same Linode is serving traffic for more than one port on the same NodeBalancer, one NodeBalancer Node is required for each config (port) it should serve requests on. For example, if you have four backends, and each should response to both HTTP and HTTPS requests, you will need two NodeBalancerConfigs (port 80 and port 443) and four backends each - one for each of the Linodes serving requests for that port. + description: __Read-only__ Describes the health of the backends for this port. This data updates periodically as checks are performed against backends. properties: - address: - description: The private IP Address where this backend can be reached. This _must_ be a private IP address. - example: 192.168.210.120:80 - format: ip - type: string - x-linode-cli-display: 3 - config_id: - description: __Read-only__ The NodeBalancer Config ID that this Node belongs to. - example: 4567 - readOnly: true - type: integer - id: - description: __Read-only__ This node's unique ID. - example: 54321 - readOnly: true - type: integer - x-linode-cli-display: 1 - label: - description: The label for this node. This is for display purposes only. - example: node54321 - maxLength: 32 - minLength: 3 - pattern: '[a-zA-Z0-9-_.]{3,32}' - type: string - x-linode-cli-display: 2 - mode: - description: |- - The mode this NodeBalancer should use when sending traffic to this backend. - - - If set to `accept` this backend is accepting traffic. - - If set to `reject` this backend will not receive traffic. - - If set to `drain` this backend will not receive _new_ traffic, but connections already pinned to it will continue to be routed to it. - - If set to `backup`, this backend will only receive traffic if all `accept` nodes are down. - enum: - - accept - - reject - - drain - - backup - example: accept - type: string - x-linode-cli-display: 6 - nodebalancer_id: - description: __Read-only__ The NodeBalancer ID that this Node belongs to. - example: 12345 + down: + description: __Read-only__ The number of backends considered to be `DOWN` and unhealthy. These are not in rotation, and not serving requests. + example: 0 readOnly: true type: integer - status: - description: __Read-only__ The current status of this node, based on the configured checks of its NodeBalancer Config. - enum: - - unknown - - UP - - DOWN - example: UP + up: + description: __Read-only__ The number of backends considered to be `UP` and healthy, and that are serving requests. + example: 4 readOnly: true - type: string - x-linode-cli-color: - DOWN: red - UP: green - default_: white - unknown: yellow - x-linode-cli-display: 4 - weight: - description: Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. - example: 50 - maximum: 255 - minimum: 1 type: integer - x-linode-cli-display: 5 + readOnly: true type: object - x-akamai: - file-path: schemas/node-balancer-node.yaml - type: array - port: - default: 80 - description: The port this Config is for. These values must be unique across configs on a single NodeBalancer (you can't have two configs for port 80, for example). While some ports imply some protocols, no enforcement is done and you may configure your NodeBalancer however is useful to you. For example, while port 443 is generally used for HTTPS, you do not need SSL configured to have a NodeBalancer listening on port 443. - example: 80 - maximum: 65535 - minimum: 1 - type: integer - x-linode-cli-display: 2 - protocol: - default: http - description: |- - The protocol this port is configured to serve. - - - The `http` and `tcp` protocols do not support `ssl_cert` and `ssl_key`. - - - The `https` protocol is mutually required with `ssl_cert` and `ssl_key`. - - Review our guide on [Available Protocols](https://www.linode.com/docs/products/networking/nodebalancers/guides/protocols/) for information on protocol features. - enum: - - http - - https - - tcp - example: http - type: string - x-linode-cli-display: 3 - proxy_protocol: - default: none - description: |- - 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. - - - If omitted, or set to `none`, the NodeBalancer doesn't send any auxiliary data over TCP connections. This is the default. - - If set to `v1`, the human-readable header format (Version 1) is used. Requires `tcp` protocol. - - If set to `v2`, the binary header format (Version 2) is used. Requires `tcp` protocol. - enum: - - none - - v1 - - v2 - example: none - type: string - ssl_cert: - description: |2- - - The PEM-formatted public SSL certificate (or the combined PEM-formatted SSL certificate and Certificate Authority chain) that should be served on this NodeBalancerConfig's port. - - Line breaks must be represented as `\n` in the string for requests (but not when using the Linode CLI). - - [Diffie-Hellman Parameters](https://www.linode.com/docs/products/networking/nodebalancers/guides/ssl-termination/#diffie-hellman-parameters) can be included in this value to enable forward secrecy. + x-linode-cli-display: 10 + port: + default: 80 + description: This is the port the NodeBalancer listens on for this configuration. Port numbers must be unique across TCP, HTTP, and HTTPS configurations on a single NodeBalancer. However, ports assigned to TCP, HTTP, or HTTPS configurations can also be reused for UDP configurations. For example, Port 80 can simultaneously serve a TCP and a UDP configuration on the same NodeBalancer, but it can't be shared by both a TCP and an HTTP configuration. Although certain ports are traditionally associated with specific protocols, this isn't strictly enforced, and you may configure your NodeBalancer however you find useful. + example: 22 + maximum: 65535 + minimum: 1 + type: integer + x-linode-cli-display: 2 + protocol: + default: http + description: |- + The protocol the port is configured to serve, `tcp` in this case. - The contents of this field will not be shown in any responses that display the NodeBalancerConfig. Instead, `` will be printed where the field appears. + Review our guide on [Available protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols) for information on protocol features. + enum: + - tcp + example: tcp + type: string + x-linode-cli-display: 3 + proxy_protocol: + default: none + description: |- + Proxy protocol is a TCP extension that sends initial TCP connection information such as source or destination IPs and ports to backend devices. Proxy protocol preserves initial TCP information that would be lost otherwise. Backend devices must be configured to work with `proxy_protocol` if enabled. - The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancerConfig response are automatically derived from your certificate. Please refer to these fields to verify that the appropriate certificate was assigned to your NodeBalancerConfig. - example: - format: ssl-cert - nullable: true - type: string - ssl_key: - description: |- - The PEM-formatted private key for the SSL certificate set in the `ssl_cert` field. + - If omitted, or set to `none`, the NodeBalancer doesn't send any auxiliary data over TCP connections. This is the default. + - If set to `v1`, the human-readable header format (Version 1) is used. Requires `tcp` protocol. + - If set to `v2`, the binary header format (Version 2) is used. Requires `tcp` protocol. + enum: + - none + - v1 + - v2 + example: none + type: string + ssl_cert: + description: __Read-only__ Not applicable for TCP configs. + example: null + nullable: true + readOnly: true + type: string + ssl_commonname: + description: __Read-only__ Not applicable for TCP configs. + example: '' + readOnly: true + type: string + x-linode-cli-display: 8 + ssl_fingerprint: + description: __Read-only__ Not applicable for TCP configs. + example: '' + readOnly: true + type: string + x-linode-cli-display: 9 + ssl_key: + description: __Read-only__ Not applicable for HTTP configs. + example: null + nullable: true + readOnly: true + type: string + stickiness: + default: none + description: |- + __Read-only__ Controls how session stickiness is handled on this port. - Line breaks must be represented as `\n` in the string for requests (but not when using the Linode CLI). + Not applicable to TCP configurations. + enum: + - none + - table + - http_cookie + example: none + readOnly: true + type: string + x-linode-cli-display: 5 + required: + - nodes + title: TCP + type: object + x-akamai: + file-path: schemas/node-balancer-config-tcp.yaml + - additionalProperties: false + description: A NodeBalancer configuration defines the protocol and settings for a specific port on the NodeBalancer. These fields apply to HTTP configurations. + properties: + algorithm: + default: roundrobin + description: The algorithm this HTTP NodeBalancer uses for routing traffic to backends. + enum: + - roundrobin + - leastconn + - source + example: roundrobin + type: string + x-linode-cli-display: 4 + check: + default: none + description: |- + The type of check to perform against backends to ensure they are serving requests. This determines if backends are up or down. - The contents of this field will not be shown in any responses that display - the NodeBalancerConfig. Instead, `` will be printed where the field - appears. + - If `none`, no check is performed. + - `connection` requires only a connection to the backend to succeed. + - `http` and `http_body` rely on the backend serving HTTP, and that the response returned matches what is expected. + enum: + - none + - connection + - http + - http_body + example: http_body + type: string + check_attempts: + default: 3 + description: How many times to attempt a check before considering a backend to be down. + example: 3 + maximum: 30 + minimum: 1 + type: integer + check_body: + description: Use when the active health `check` type is `http_body`. This value must be present in the response body of the check in order for it to pass. If this value is not present in the response body of a check request, the backend is considered to be down. + example: it works + type: string + check_interval: + default: 5 + description: |- + How often, in seconds, to check that backends are up and serving requests. - The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancerConfig - response are automatically derived from your certificate. Please refer to these fields to - verify that the appropriate certificate was assigned to your NodeBalancerConfig. - example: - format: ssl-key - nullable: true - type: string - stickiness: - default: none - description: |- - Controls how session stickiness is handled on this port. + Must be greater than `check_timeout`. + example: 90 + maximum: 3600 + minimum: 2 + type: integer + check_passive: + default: true + description: If `true`, any response from this backend with a `5xx` status code will be enough for it to be considered unhealthy and taken out of rotation. + example: true + type: boolean + x-linode-cli-display: 6 + check_path: + description: The URL path to check on each backend. Use when the active health `check` type is `http`. If the backend doesn't respond to this request, it's considered to be down. + example: /test + pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ + type: string + check_timeout: + default: 3 + description: |- + How long, in seconds, to wait for a check attempt before considering it failed. - - If set to `none` connections will always be assigned a backend based on the algorithm configured. - - If set to `table` sessions from the same remote address will be routed to the same backend. - - For HTTP or HTTPS clients, `http_cookie` allows sessions to be routed to the same backend based on a cookie set by the NodeBalancer. - enum: - - none - - table - - http_cookie - example: http_cookie - type: string - x-linode-cli-display: 5 - required: - - nodes - type: object - type: array - firewall_id: - description: |- - The ID of the Firewall to assign to the NodeBalancer. + Must be less than `check_interval`. + example: 10 + maximum: 30 + minimum: 1 + type: integer + cipher_suite: + description: __Read-only__ Not applicable for HTTP configs. + example: recommended + readOnly: true + type: string + x-linode-cli-color: + default_: white + legacy: red + x-linode-cli-display: 7 + id: + description: __Read-only__ This config's unique ID. + example: 4000 + readOnly: true + type: integer + x-linode-cli-display: 1 + nodebalancer_id: + description: __Read-only__ Identifies the NodeBalancer this config belongs to. + example: 12345 + readOnly: true + type: integer + nodes: + description: The NodeBalancer nodes that serve this configuration. + items: + additionalProperties: false + description: A NodeBalancer node represents a single backend serving requests for a single port of a NodeBalancer. Nodes are specific to NodeBalancer configs, and serve traffic over their private IP. If the same Linode is serving traffic for more than one port on the same NodeBalancer, one NodeBalancer node is required for each config (port) it should serve requests on. For example, if you have four backends, and each should respond to both HTTP and HTTPS requests, you will need two NodeBalancer configs (port 80 and port 443) and four backends each, one for each of the Linodes serving requests for that port. + properties: + address: + description: The private IP Address where this backend can be reached. This _must_ be a private IP address. + example: 192.168.210.120:80 + format: ip + type: string + x-linode-cli-display: 3 + config_id: + description: __Read-only__ The NodeBalancer Config ID that this Node belongs to. + example: 4567 + readOnly: true + type: integer + id: + description: __Read-only__ This node's unique ID. + example: 54321 + readOnly: true + type: integer + x-linode-cli-display: 1 + label: + description: The label for this node. This is for display purposes only. + example: node54321 + maxLength: 32 + minLength: 3 + pattern: '[a-zA-Z0-9-_.]{3,32}' + type: string + x-linode-cli-display: 2 + mode: + description: |- + The mode this NodeBalancer should use when sending traffic to this backend. - - A NodeBalancer can have only one Firewall assigned to it. - - Firewalls only apply to inbound TCP traffic to NodeBalancers. - type: integer - label: - description: __Filterable__ This NodeBalancer's label. These must be unique on your Account. - example: balancer12345 - maxLength: 32 - minLength: 3 - pattern: '[a-zA-Z0-9-_]{3,32}' - type: string - x-akamai: - labels: - - Filterable - x-linode-cli-display: 2 - x-linode-filterable: true - region: - description: The ID of the Region to create this NodeBalancer in. - example: us-east - type: string - tags: - description: An array of Tags applied to this object. Tags are for organizational purposes only. - example: - - test - - web-dev-team - items: - type: string - type: array - required: - - region - type: object - x-akamai: - file-path: schemas/added-post-node-balancer.yaml - x-example: - x-ref: ../examples/post-node-balancer.json - description: Information about the NodeBalancer to create. - required: true - x-linode-cli-allowed-defaults: - - region - responses: - '200': - content: + - If set to `accept` this backend is accepting traffic. + - If set to `reject` this backend will not receive traffic. + - If set to `drain` this backend will not receive _new_ traffic, but connections already pinned to it will continue to be routed to it. + - If set to `backup`, this backend will only receive traffic if all `accept` nodes are down. + enum: + - accept + - reject + - drain + - backup + example: accept + type: string + x-linode-cli-display: 6 + nodebalancer_id: + description: __Read-only__ The NodeBalancer ID that this Node belongs to. + example: 12345 + readOnly: true + type: integer + status: + description: __Read-only__ The current status of this node, based on the configured checks of its NodeBalancer Config. + enum: + - unknown + - UP + - DOWN + example: UP + readOnly: true + type: string + x-linode-cli-color: + DOWN: red + UP: green + default_: white + unknown: yellow + x-linode-cli-display: 4 + weight: + description: Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. + example: 50 + maximum: 255 + minimum: 1 + type: integer + x-linode-cli-display: 5 + title: TCP, HTTP, or HTTPS config + x-akamai: + file-path: schemas/node-balancer-node-tcp-http-https.yaml + type: array + nodes_status: + additionalProperties: false + description: __Read-only__ Describes the health of the backends for this port. This data updates periodically as checks are performed against backends. + properties: + down: + description: __Read-only__ The number of backends considered to be `DOWN` and unhealthy. These are not in rotation, and not serving requests. + example: 0 + readOnly: true + type: integer + up: + description: __Read-only__ The number of backends considered to be `UP` and healthy, and that are serving requests. + example: 4 + readOnly: true + type: integer + readOnly: true + type: object + x-linode-cli-display: 10 + port: + default: 80 + description: This is the port the NodeBalancer listens on for this configuration. Port numbers need to be unique across TCP, HTTP, and HTTPS configurations on a single NodeBalancer. However, ports assigned to TCP, HTTP, or HTTPS configurations can also be reused for UDP configurations. For example, Port 80 can simultaneously serve a TCP and a UDP configuration on the same NodeBalancer, but it can't be shared by both a TCP and an HTTP configuration. Although certain ports are traditionally associated with specific protocols, this is not strictly enforced. You may configure your NodeBalancer however is useful to you. + example: 80 + maximum: 65535 + minimum: 1 + type: integer + x-linode-cli-display: 2 + protocol: + default: http + description: |- + The protocol the port is configured to serve, `http` in this case. + Review our guide on [Available protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols) for information on protocol features. + enum: + - http + example: http + type: string + x-linode-cli-display: 3 + proxy_protocol: + default: none + description: __Read-only__ Not applicable for HTTP configs. + example: none + readOnly: true + type: string + ssl_cert: + description: __Read-only__ Not applicable for HTTP configs. + example: null + nullable: true + readOnly: true + type: string + ssl_commonname: + description: __Read-only__ Not applicable for HTTP configs. + example: '' + readOnly: true + type: string + x-linode-cli-display: 8 + ssl_fingerprint: + description: __Read-only__ Not applicable for HTTP configs. + example: '' + readOnly: true + type: string + x-linode-cli-display: 9 + ssl_key: + description: __Read-only__ Not applicable for HTTP configs. + example: null + nullable: true + readOnly: true + type: string + stickiness: + default: table + description: |- + Controls how session stickiness is handled on this port. + + - If set to `none`, connections will always be assigned a backend based on the algorithm configured. + - If set to `table`, sessions from the same remote address will be routed to the same backend. + - If set to `http_cookie`, sessions are routed to the same backend based on a cookie set by the NodeBalancer. + enum: + - none + - table + - http_cookie + example: http_cookie + type: string + x-linode-cli-display: 5 + required: + - nodes + title: HTTP + type: object + x-akamai: + file-path: schemas/node-balancer-config-http.yaml + - additionalProperties: false + description: A NodeBalancer configuration defines the protocol and settings for a specific port on the NodeBalancer. These fields apply to HTTPS configurations. + properties: + algorithm: + default: roundrobin + description: The algorithm this HTTPS NodeBalancer uses for routing traffic to backends. + enum: + - roundrobin + - leastconn + - source + example: roundrobin + type: string + x-linode-cli-display: 4 + check: + default: none + description: |- + The type of check to perform against backends to ensure they are serving requests. This is used to determine if backends are up or down. + + - If `none` no check is performed. + - `connection` requires only a connection to the backend to succeed. + - `http` and `http_body` rely on the backend serving HTTP, and that the response returned matches what is expected. + enum: + - none + - connection + - http + - http_body + example: http_body + type: string + check_attempts: + default: 3 + description: How many times to attempt a check before considering a backend to be down. + example: 3 + maximum: 30 + minimum: 1 + type: integer + check_body: + description: Use when the active health `check` type is `http_body`. This value must be present in the response body of the check in order for it to pass. If this value is not present in the response body of a check request, the backend is considered to be down. + example: it works + type: string + check_interval: + default: 5 + description: |- + How often, in seconds, to check that backends are up and serving requests. + + Must be greater than `check_timeout`. + example: 90 + maximum: 3600 + minimum: 2 + type: integer + check_passive: + default: true + description: If `true`, any response from this backend with a `5xx` status code will be enough for it to be considered unhealthy and taken out of rotation. + example: true + type: boolean + x-linode-cli-display: 6 + check_path: + description: The URL path to check on each backend. Use when the active health `check` type is `http`. If the backend doesn't respond to this request, it's considered to be down. + example: /test + pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ + type: string + check_timeout: + default: 3 + description: |- + How long, in seconds, to wait for a check attempt before considering it failed. + + Must be less than `check_interval`. + example: 10 + maximum: 30 + minimum: 1 + type: integer + cipher_suite: + default: recommended + description: |- + What ciphers to use for SSL connections served by this NodeBalancer. + + - `legacy` is considered insecure and should only be used if necessary. + enum: + - recommended + - legacy + example: recommended + type: string + x-linode-cli-color: + default_: white + legacy: red + x-linode-cli-display: 7 + id: + description: __Read-only__ This config's unique ID. + example: 5000 + readOnly: true + type: integer + x-linode-cli-display: 1 + nodebalancer_id: + description: __Read-only__ The ID for the NodeBalancer this config belongs to. + example: 12345 + readOnly: true + type: integer + nodes: + description: The NodeBalancer nodes that serve this configuration. + items: + additionalProperties: false + description: A NodeBalancer node represents a single backend serving requests for a single port of a NodeBalancer. Nodes are specific to NodeBalancer configs, and serve traffic over their private IP. If the same Linode is serving traffic for more than one port on the same NodeBalancer, one NodeBalancer node is required for each config (port) it should serve requests on. For example, if you have four backends, and each should respond to both HTTP and HTTPS requests, you will need two NodeBalancer configs (port 80 and port 443) and four backends each, one for each of the Linodes serving requests for that port. + properties: + address: + description: The private IP Address where this backend can be reached. This _must_ be a private IP address. + example: 192.168.210.120:80 + format: ip + type: string + x-linode-cli-display: 3 + config_id: + description: __Read-only__ The NodeBalancer Config ID that this Node belongs to. + example: 4567 + readOnly: true + type: integer + id: + description: __Read-only__ This node's unique ID. + example: 54321 + readOnly: true + type: integer + x-linode-cli-display: 1 + label: + description: The label for this node. This is for display purposes only. + example: node54321 + maxLength: 32 + minLength: 3 + pattern: '[a-zA-Z0-9-_.]{3,32}' + type: string + x-linode-cli-display: 2 + mode: + description: |- + The mode this NodeBalancer should use when sending traffic to this backend. + + - If set to `accept` this backend is accepting traffic. + - If set to `reject` this backend will not receive traffic. + - If set to `drain` this backend will not receive _new_ traffic, but connections already pinned to it will continue to be routed to it. + - If set to `backup`, this backend will only receive traffic if all `accept` nodes are down. + enum: + - accept + - reject + - drain + - backup + example: accept + type: string + x-linode-cli-display: 6 + nodebalancer_id: + description: __Read-only__ The NodeBalancer ID that this Node belongs to. + example: 12345 + readOnly: true + type: integer + status: + description: __Read-only__ The current status of this node, based on the configured checks of its NodeBalancer Config. + enum: + - unknown + - UP + - DOWN + example: UP + readOnly: true + type: string + x-linode-cli-color: + DOWN: red + UP: green + default_: white + unknown: yellow + x-linode-cli-display: 4 + weight: + description: Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. + example: 50 + maximum: 255 + minimum: 1 + type: integer + x-linode-cli-display: 5 + title: TCP, HTTP, or HTTPS config + x-akamai: + file-path: schemas/node-balancer-node-tcp-http-https.yaml + type: array + nodes_status: + additionalProperties: false + description: __Read-only__ Describes the health of the backends for this port. This data updates periodically as checks are performed against backends. + properties: + down: + description: __Read-only__ The number of backends considered to be `DOWN` and unhealthy. These are not in rotation, and not serving requests. + example: 0 + readOnly: true + type: integer + up: + description: __Read-only__ The number of backends considered to be `UP` and healthy, and that are serving requests. + example: 4 + readOnly: true + type: integer + readOnly: true + type: object + x-linode-cli-display: 10 + port: + default: 80 + description: This is the port the NodeBalancer listens on for this configuration. Port numbers must be unique across TCP, HTTP, and HTTPS configurations on a single NodeBalancer. However, ports assigned to TCP, HTTP, or HTTPS configurations can also be reused for UDP configurations. For example, Port 80 can simultaneously serve a TCP and a UDP configuration on the same NodeBalancer, but it can't be shared by both a TCP and an HTTP configuration. Although certain ports are traditionally associated with specific protocols, this isn't strictly enforced, and you may configure your NodeBalancer however you find useful. + example: 443 + maximum: 65535 + minimum: 1 + type: integer + x-linode-cli-display: 2 + protocol: + default: http + description: |- + The protocol the port is configured to serve, `https` in this case. + + - The `https` protocol is mutually required with `ssl_cert` and `ssl_key`. + + Review our guide on [Available protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols) for information on protocol features. + enum: + - https + example: https + type: string + x-linode-cli-display: 3 + proxy_protocol: + default: none + description: __Read-only__ Not applicable for HTTPS configs. + example: none + readOnly: true + type: string + ssl_cert: + description: |2- + + The PEM-formatted public SSL certificate (or the combined PEM-formatted SSL certificate and Certificate Authority chain) that should be served on this NodeBalancerConfig's port. + + Line breaks must be represented as `\n` in the string for requests (but not when using the Linode CLI). + + [Diffie-Hellman Parameters](https://www.linode.com/docs/products/networking/nodebalancers/guides/ssl-termination/#diffie-hellman-parameters) can be included in this value to enable forward secrecy. + + The contents of this field will not be shown in any responses that display the NodeBalancerConfig. Instead, `` will be printed where the field appears. + + The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancerConfig response are automatically derived from your certificate. Please refer to these fields to verify that the appropriate certificate was assigned to your NodeBalancerConfig. + example: + format: ssl-cert + nullable: true + type: string + ssl_commonname: + description: __Read-only__ The read-only common name automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig. + example: www.example.com + readOnly: true + type: string + x-linode-cli-display: 8 + ssl_fingerprint: + description: __Read-only__ The read-only SHA1-encoded fingerprint automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig. + example: 00:01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12:13 + readOnly: true + type: string + x-linode-cli-display: 9 + ssl_key: + description: |- + The PEM-formatted private key for the SSL certificate set in the `ssl_cert` field. + + Line breaks must be represented as `\n` in the string for requests (but not when using the Linode CLI). + + The contents of this field will not be shown in any responses that display + the NodeBalancerConfig. Instead, `` will be printed where the field + appears. + + The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancerConfig + response are automatically derived from your certificate. Please refer to these fields to + verify that the appropriate certificate was assigned to your NodeBalancerConfig. + example: + format: ssl-key + nullable: true + type: string + stickiness: + default: table + description: |- + Controls how session stickiness is handled on this port. + + - If set to `none`, connections will always be assigned a backend based on the algorithm configured. + - If set to `table`, sessions from the same remote address will be routed to the same backend. + - For HTTP or HTTPS clients, `http_cookie` allows sessions to be routed to the same backend based on a cookie set by the NodeBalancer. + enum: + - none + - table + - http_cookie + example: http_cookie + type: string + x-linode-cli-display: 5 + required: + - nodes + title: HTTPS + type: object + x-akamai: + file-path: schemas/node-balancer-config-https.yaml + type: object + type: array + firewall_id: + description: |- + The ID of the Firewall to assign to the NodeBalancer. + + - A NodeBalancer can have only one Firewall assigned to it. + - Firewalls control inbound network traffic to NodeBalancers. + type: integer + label: + description: __Filterable__ This NodeBalancer's label. These must be unique on your Account. + example: balancer12345 + maxLength: 32 + minLength: 3 + pattern: '[a-zA-Z0-9-_]{3,32}' + type: string + x-akamai: + labels: + - Filterable + x-linode-cli-display: 2 + x-linode-filterable: true + region: + description: The ID of the Region to create this NodeBalancer in. + example: us-east + type: string + tags: + description: An array of Tags applied to this object. Tags are for organizational purposes only. + example: + - test + - web-dev-team + items: + type: string + type: array + required: + - region + type: object + x-akamai: + file-path: schemas/added-post-node-balancer.yaml + x-example: + x-ref: ../examples/post-node-balancer.json + description: Information about the NodeBalancer to create. + required: true + x-linode-cli-allowed-defaults: + - region + responses: + '200': + content: application/json: schema: additionalProperties: false - description: Linode's load balancing solution. Can handle multiple ports, SSL termination, and any number of backends. NodeBalancer ports are configured with NodeBalancer Configs, and each config is given one or more NodeBalancer Node that accepts traffic. The traffic should be routed to the NodeBalancer's ip address, the NodeBalancer will handle routing individual requests to backends. + description: Linode's load balancing solution. Can handle multiple ports, SSL termination, and any number of backends. NodeBalancer ports are configured with NodeBalancer configs, and each config is given one or more NodeBalancer nodes that accepts traffic. The traffic should be routed to the NodeBalancer's IP address, for the NodeBalancer to handle routing individual requests to backends. properties: client_conn_throttle: - description: Throttle connections per second. Set to 0 (zero) to disable throttling. - example: 0 + description: Throttle TCP connections per second for TCP, HTTP, and HTTPS configurations. Set to `0` (zero) to disable throttling. + example: 10 maximum: 20 minimum: 0 type: integer - x-linode-cli-display: 6 + x-linode-cli-display: 7 created: description: __Read-only__ When this NodeBalancer was created. example: '2018-01-01T00:01:01' @@ -70376,15 +70720,15 @@ paths: application/json: schema: additionalProperties: false - description: Linode's load balancing solution. Can handle multiple ports, SSL termination, and any number of backends. NodeBalancer ports are configured with NodeBalancer Configs, and each config is given one or more NodeBalancer Node that accepts traffic. The traffic should be routed to the NodeBalancer's ip address, the NodeBalancer will handle routing individual requests to backends. + description: Linode's load balancing solution. Can handle multiple ports, SSL termination, and any number of backends. NodeBalancer ports are configured with NodeBalancer configs, and each config is given one or more NodeBalancer nodes that accepts traffic. The traffic should be routed to the NodeBalancer's IP address, for the NodeBalancer to handle routing individual requests to backends. properties: client_conn_throttle: - description: Throttle connections per second. Set to 0 (zero) to disable throttling. - example: 0 + description: Throttle TCP connections per second for TCP, HTTP, and HTTPS configurations. Set to `0` (zero) to disable throttling. + example: 10 maximum: 20 minimum: 0 type: integer - x-linode-cli-display: 6 + x-linode-cli-display: 7 created: description: __Read-only__ When this NodeBalancer was created. example: '2018-01-01T00:01:01' @@ -70591,15 +70935,15 @@ paths: application/json: schema: additionalProperties: false - description: Linode's load balancing solution. Can handle multiple ports, SSL termination, and any number of backends. NodeBalancer ports are configured with NodeBalancer Configs, and each config is given one or more NodeBalancer Node that accepts traffic. The traffic should be routed to the NodeBalancer's ip address, the NodeBalancer will handle routing individual requests to backends. + description: Linode's load balancing solution. Can handle multiple ports, SSL termination, and any number of backends. NodeBalancer ports are configured with NodeBalancer configs, and each config is given one or more NodeBalancer nodes that accepts traffic. The traffic should be routed to the NodeBalancer's IP address, for the NodeBalancer to handle routing individual requests to backends. properties: client_conn_throttle: - description: Throttle connections per second. Set to 0 (zero) to disable throttling. - example: 0 + description: Throttle TCP connections per second for TCP, HTTP, and HTTPS configurations. Set to `0` (zero) to disable throttling. + example: 10 maximum: 20 minimum: 0 type: integer - x-linode-cli-display: 6 + x-linode-cli-display: 7 created: description: __Read-only__ When this NodeBalancer was created. example: '2018-01-01T00:01:01' @@ -70715,15 +71059,15 @@ paths: application/json: schema: additionalProperties: false - description: Linode's load balancing solution. Can handle multiple ports, SSL termination, and any number of backends. NodeBalancer ports are configured with NodeBalancer Configs, and each config is given one or more NodeBalancer Node that accepts traffic. The traffic should be routed to the NodeBalancer's ip address, the NodeBalancer will handle routing individual requests to backends. + description: Linode's load balancing solution. Can handle multiple ports, SSL termination, and any number of backends. NodeBalancer ports are configured with NodeBalancer configs, and each config is given one or more NodeBalancer nodes that accepts traffic. The traffic should be routed to the NodeBalancer's IP address, for the NodeBalancer to handle routing individual requests to backends. properties: client_conn_throttle: - description: Throttle connections per second. Set to 0 (zero) to disable throttling. - example: 0 + description: Throttle TCP connections per second for TCP, HTTP, and HTTPS configurations. Set to `0` (zero) to disable throttling. + example: 10 maximum: 20 minimum: 0 type: integer - x-linode-cli-display: 6 + x-linode-cli-display: 7 created: description: __Read-only__ When this NodeBalancer was created. example: '2018-01-01T00:01:01' @@ -70945,217 +71289,808 @@ paths: properties: data: items: - additionalProperties: false - description: A NodeBalancer config represents the configuration of this NodeBalancer on a single port. For example, a NodeBalancer Config on port 80 would typically represent how this NodeBalancer response to HTTP requests. NodeBalancer configs have a list of backends, called "nodes," that they forward requests between based on their configuration. - properties: - algorithm: - default: roundrobin - description: What algorithm this NodeBalancer should use for routing traffic to backends. - enum: - - roundrobin - - leastconn - - source - example: roundrobin - type: string - x-linode-cli-display: 4 - check: - default: none - description: |- - The type of check to perform against backends to ensure they are serving requests. This is used to determine if backends are up or down. + description: NodeBalancer `config` options for each protocol. + oneOf: + - additionalProperties: false + description: A NodeBalancer configuration defines the protocol and settings for a specific port on the NodeBalancer. These fields apply to TCP configurations. + properties: + algorithm: + default: roundrobin + description: The algorithm this TCP NodeBalancer uses to route traffic to backends. + enum: + - roundrobin + - leastconn + - source + example: leastconn + type: string + x-linode-cli-display: 4 + check: + default: none + description: |- + The type of check to perform against backends to ensure they are serving requests. This is used to determine if backends are up or down. - - If `none` no check is performed. - - `connection` requires only a connection to the backend to succeed. - - `http` and `http_body` rely on the backend serving HTTP, and that the response returned matches what is expected. - enum: - - none - - connection - - http - - http_body - example: http_body - type: string - check_attempts: - default: 3 - description: How many times to attempt a check before considering a backend to be down. - example: 3 - maximum: 30 - minimum: 1 - type: integer - check_body: - description: This value must be present in the response body of the check in order for it to pass. If this value is not present in the response body of a check request, the backend is considered to be down. - example: it works - type: string - check_interval: - default: 31 - description: |- - How often, in seconds, to check that backends are up and serving requests. + - If `none`, no check is performed. + - `connection` requires only a connection to the backend to succeed. + - `http` and `http_body` rely on the backend serving HTTP, and that the response returned matches what is expected. + enum: + - none + - connection + - http + - http_body + example: http_body + type: string + check_attempts: + default: 3 + description: How many times to attempt a check before considering a backend to be down. + example: 3 + maximum: 30 + minimum: 1 + type: integer + check_body: + description: This value must be present in the response body of the check in order for it to pass. If this value is not present in the response body of a check request, the backend is considered to be down. + example: it works + type: string + check_interval: + default: 5 + description: |- + How often, in seconds, to check that backends are up and serving requests. - Must be greater than `check_timeout`. - example: 90 - type: integer - check_passive: - default: true - description: If `true`, any response from this backend with a `5xx` status code will be enough for it to be considered unhealthy and taken out of rotation. - example: true - type: boolean - x-linode-cli-display: 6 - check_path: - description: The URL path to check on each backend. If the backend does not respond to this request it is considered to be down. - example: /test - pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ - type: string - check_timeout: - default: 30 - description: |- - How long, in seconds, to wait for a check attempt before considering it failed. + Must be greater than `check_timeout`. + example: 90 + maximum: 3600 + minimum: 2 + type: integer + check_passive: + default: true + description: If `true`, any response from this backend with a `5xx` status code will be enough for it to be considered unhealthy and taken out of rotation. + example: true + type: boolean + x-linode-cli-display: 6 + check_path: + description: The URL path to check on each backend. If the backend does not respond to this request it is considered to be down. + example: /test + pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ + type: string + check_timeout: + default: 30 + description: |- + How long, in seconds, to wait for a check attempt before considering it failed. - Must be less than `check_interval`. - example: 10 - maximum: 30 - minimum: 1 - type: integer - cipher_suite: - default: recommended - description: |- - What ciphers to use for SSL connections served by this NodeBalancer. + Must be less than `check_interval`. + example: 10 + maximum: 30 + minimum: 1 + type: integer + cipher_suite: + description: __Read-only__ Not applicable for HTTP configs. + example: recommended + readOnly: true + type: string + x-linode-cli-color: + default_: white + legacy: red + x-linode-cli-display: 7 + id: + description: __Read-only__ This config's unique ID. + example: 6000 + readOnly: true + type: integer + x-linode-cli-display: 1 + nodebalancer_id: + description: __Read-only__ The ID for the NodeBalancer this config belongs to. + example: 12345 + readOnly: true + type: integer + nodes: + description: The NodeBalancer nodes that serve this configuration. + items: + additionalProperties: false + description: A NodeBalancer node represents a single backend serving requests for a single port of a NodeBalancer. Nodes are specific to NodeBalancer configs, and serve traffic over their private IP. If the same Linode is serving traffic for more than one port on the same NodeBalancer, one NodeBalancer node is required for each config (port) it should serve requests on. For example, if you have four backends, and each should respond to both HTTP and HTTPS requests, you will need two NodeBalancer configs (port 80 and port 443) and four backends each, one for each of the Linodes serving requests for that port. + properties: + address: + description: The private IP Address where this backend can be reached. This _must_ be a private IP address. + example: 192.168.210.120:80 + format: ip + type: string + x-linode-cli-display: 3 + config_id: + description: __Read-only__ The NodeBalancer Config ID that this Node belongs to. + example: 4567 + readOnly: true + type: integer + id: + description: __Read-only__ This node's unique ID. + example: 54321 + readOnly: true + type: integer + x-linode-cli-display: 1 + label: + description: The label for this node. This is for display purposes only. + example: node54321 + maxLength: 32 + minLength: 3 + pattern: '[a-zA-Z0-9-_.]{3,32}' + type: string + x-linode-cli-display: 2 + mode: + description: |- + The mode this NodeBalancer should use when sending traffic to this backend. - - `legacy` is considered insecure and should only be used if necessary. - enum: - - recommended - - legacy - example: recommended - type: string - x-linode-cli-color: - default_: white - legacy: red - x-linode-cli-display: 7 - id: - description: __Read-only__ This config's unique ID. - example: 4567 - readOnly: true - type: integer - x-linode-cli-display: 1 - nodebalancer_id: - description: __Read-only__ The ID for the NodeBalancer this config belongs to. - example: 12345 - readOnly: true - type: integer - nodes_status: - additionalProperties: false - description: __Read-only__ A structure containing information about the health of the backends for this port. This information is updated periodically as checks are performed against backends. - properties: - down: - description: __Read-only__ The number of backends considered to be "DOWN" and unhealthy. These are not in rotation, and not serving requests. - example: 0 - readOnly: true - type: integer - up: - description: __Read-only__ The number of backends considered to be "UP" and healthy, and that are serving requests. - example: 4 - readOnly: true - type: integer - readOnly: true - type: object - x-linode-cli-display: 10 - port: - default: 80 - description: The port this Config is for. These values must be unique across configs on a single NodeBalancer (you can't have two configs for port 80, for example). While some ports imply some protocols, no enforcement is done and you may configure your NodeBalancer however is useful to you. For example, while port 443 is generally used for HTTPS, you do not need SSL configured to have a NodeBalancer listening on port 443. - example: 80 - maximum: 65535 - minimum: 1 - type: integer - x-linode-cli-display: 2 - protocol: - default: http - description: |- - The protocol this port is configured to serve. + - If set to `accept` this backend is accepting traffic. + - If set to `reject` this backend will not receive traffic. + - If set to `drain` this backend will not receive _new_ traffic, but connections already pinned to it will continue to be routed to it. + - If set to `backup`, this backend will only receive traffic if all `accept` nodes are down. + enum: + - accept + - reject + - drain + - backup + example: accept + type: string + x-linode-cli-display: 6 + nodebalancer_id: + description: __Read-only__ The NodeBalancer ID that this Node belongs to. + example: 12345 + readOnly: true + type: integer + status: + description: __Read-only__ The current status of this node, based on the configured checks of its NodeBalancer Config. + enum: + - unknown + - UP + - DOWN + example: UP + readOnly: true + type: string + x-linode-cli-color: + DOWN: red + UP: green + default_: white + unknown: yellow + x-linode-cli-display: 4 + weight: + description: Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. + example: 50 + maximum: 255 + minimum: 1 + type: integer + x-linode-cli-display: 5 + title: TCP, HTTP, or HTTPS config + x-akamai: + file-path: schemas/node-balancer-node-tcp-http-https.yaml + type: array + nodes_status: + additionalProperties: false + description: __Read-only__ Describes the health of the backends for this port. This data updates periodically as checks are performed against backends. + properties: + down: + description: __Read-only__ The number of backends considered to be `DOWN` and unhealthy. These are not in rotation, and not serving requests. + example: 0 + readOnly: true + type: integer + up: + description: __Read-only__ The number of backends considered to be `UP` and healthy, and that are serving requests. + example: 4 + readOnly: true + type: integer + readOnly: true + type: object + x-linode-cli-display: 10 + port: + default: 80 + description: This is the port the NodeBalancer listens on for this configuration. Port numbers must be unique across TCP, HTTP, and HTTPS configurations on a single NodeBalancer. However, ports assigned to TCP, HTTP, or HTTPS configurations can also be reused for UDP configurations. For example, Port 80 can simultaneously serve a TCP and a UDP configuration on the same NodeBalancer, but it can't be shared by both a TCP and an HTTP configuration. Although certain ports are traditionally associated with specific protocols, this isn't strictly enforced, and you may configure your NodeBalancer however you find useful. + example: 22 + maximum: 65535 + minimum: 1 + type: integer + x-linode-cli-display: 2 + protocol: + default: http + description: |- + The protocol the port is configured to serve, `tcp` in this case. - - The `http` and `tcp` protocols do not support `ssl_cert` and `ssl_key`. + Review our guide on [Available protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols) for information on protocol features. + enum: + - tcp + example: tcp + type: string + x-linode-cli-display: 3 + proxy_protocol: + default: none + description: |- + Proxy protocol is a TCP extension that sends initial TCP connection information such as source or destination IPs and ports to backend devices. Proxy protocol preserves initial TCP information that would be lost otherwise. Backend devices must be configured to work with `proxy_protocol` if enabled. - - The `https` protocol is mutually required with `ssl_cert` and `ssl_key`. + - If omitted, or set to `none`, the NodeBalancer doesn't send any auxiliary data over TCP connections. This is the default. + - If set to `v1`, the human-readable header format (Version 1) is used. Requires `tcp` protocol. + - If set to `v2`, the binary header format (Version 2) is used. Requires `tcp` protocol. + enum: + - none + - v1 + - v2 + example: none + type: string + ssl_cert: + description: __Read-only__ Not applicable for TCP configs. + example: null + nullable: true + readOnly: true + type: string + ssl_commonname: + description: __Read-only__ Not applicable for TCP configs. + example: '' + readOnly: true + type: string + x-linode-cli-display: 8 + ssl_fingerprint: + description: __Read-only__ Not applicable for TCP configs. + example: '' + readOnly: true + type: string + x-linode-cli-display: 9 + ssl_key: + description: __Read-only__ Not applicable for HTTP configs. + example: null + nullable: true + readOnly: true + type: string + stickiness: + default: none + description: |- + __Read-only__ Controls how session stickiness is handled on this port. - Review our guide on [Available Protocols](https://www.linode.com/docs/products/networking/nodebalancers/guides/protocols/) for information on protocol features. - enum: - - http - - https - - tcp - example: http - type: string - x-linode-cli-display: 3 - proxy_protocol: - default: none - description: |- - 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. + Not applicable to TCP configurations. + enum: + - none + - table + - http_cookie + example: none + readOnly: true + type: string + x-linode-cli-display: 5 + required: + - nodes + title: TCP + type: object + x-akamai: + file-path: schemas/node-balancer-config-tcp.yaml + - additionalProperties: false + description: A NodeBalancer configuration defines the protocol and settings for a specific port on the NodeBalancer. These fields apply to HTTP configurations. + properties: + algorithm: + default: roundrobin + description: The algorithm this HTTP NodeBalancer uses for routing traffic to backends. + enum: + - roundrobin + - leastconn + - source + example: roundrobin + type: string + x-linode-cli-display: 4 + check: + default: none + description: |- + The type of check to perform against backends to ensure they are serving requests. This determines if backends are up or down. - - If omitted, or set to `none`, the NodeBalancer doesn't send any auxiliary data over TCP connections. This is the default. - - If set to `v1`, the human-readable header format (Version 1) is used. Requires `tcp` protocol. - - If set to `v2`, the binary header format (Version 2) is used. Requires `tcp` protocol. - enum: - - none - - v1 - - v2 - example: none - type: string - ssl_cert: - description: |2- + - If `none`, no check is performed. + - `connection` requires only a connection to the backend to succeed. + - `http` and `http_body` rely on the backend serving HTTP, and that the response returned matches what is expected. + enum: + - none + - connection + - http + - http_body + example: http_body + type: string + check_attempts: + default: 3 + description: How many times to attempt a check before considering a backend to be down. + example: 3 + maximum: 30 + minimum: 1 + type: integer + check_body: + description: Use when the active health `check` type is `http_body`. This value must be present in the response body of the check in order for it to pass. If this value is not present in the response body of a check request, the backend is considered to be down. + example: it works + type: string + check_interval: + default: 5 + description: |- + How often, in seconds, to check that backends are up and serving requests. - The PEM-formatted public SSL certificate (or the combined PEM-formatted SSL certificate and Certificate Authority chain) that should be served on this NodeBalancerConfig's port. + Must be greater than `check_timeout`. + example: 90 + maximum: 3600 + minimum: 2 + type: integer + check_passive: + default: true + description: If `true`, any response from this backend with a `5xx` status code will be enough for it to be considered unhealthy and taken out of rotation. + example: true + type: boolean + x-linode-cli-display: 6 + check_path: + description: The URL path to check on each backend. Use when the active health `check` type is `http`. If the backend doesn't respond to this request, it's considered to be down. + example: /test + pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ + type: string + check_timeout: + default: 3 + description: |- + How long, in seconds, to wait for a check attempt before considering it failed. - Line breaks must be represented as `\n` in the string for requests (but not when using the Linode CLI). + Must be less than `check_interval`. + example: 10 + maximum: 30 + minimum: 1 + type: integer + cipher_suite: + description: __Read-only__ Not applicable for HTTP configs. + example: recommended + readOnly: true + type: string + x-linode-cli-color: + default_: white + legacy: red + x-linode-cli-display: 7 + id: + description: __Read-only__ This config's unique ID. + example: 4000 + readOnly: true + type: integer + x-linode-cli-display: 1 + nodebalancer_id: + description: __Read-only__ Identifies the NodeBalancer this config belongs to. + example: 12345 + readOnly: true + type: integer + nodes: + description: The NodeBalancer nodes that serve this configuration. + items: + additionalProperties: false + description: A NodeBalancer node represents a single backend serving requests for a single port of a NodeBalancer. Nodes are specific to NodeBalancer configs, and serve traffic over their private IP. If the same Linode is serving traffic for more than one port on the same NodeBalancer, one NodeBalancer node is required for each config (port) it should serve requests on. For example, if you have four backends, and each should respond to both HTTP and HTTPS requests, you will need two NodeBalancer configs (port 80 and port 443) and four backends each, one for each of the Linodes serving requests for that port. + properties: + address: + description: The private IP Address where this backend can be reached. This _must_ be a private IP address. + example: 192.168.210.120:80 + format: ip + type: string + x-linode-cli-display: 3 + config_id: + description: __Read-only__ The NodeBalancer Config ID that this Node belongs to. + example: 4567 + readOnly: true + type: integer + id: + description: __Read-only__ This node's unique ID. + example: 54321 + readOnly: true + type: integer + x-linode-cli-display: 1 + label: + description: The label for this node. This is for display purposes only. + example: node54321 + maxLength: 32 + minLength: 3 + pattern: '[a-zA-Z0-9-_.]{3,32}' + type: string + x-linode-cli-display: 2 + mode: + description: |- + The mode this NodeBalancer should use when sending traffic to this backend. - [Diffie-Hellman Parameters](https://www.linode.com/docs/products/networking/nodebalancers/guides/ssl-termination/#diffie-hellman-parameters) can be included in this value to enable forward secrecy. + - If set to `accept` this backend is accepting traffic. + - If set to `reject` this backend will not receive traffic. + - If set to `drain` this backend will not receive _new_ traffic, but connections already pinned to it will continue to be routed to it. + - If set to `backup`, this backend will only receive traffic if all `accept` nodes are down. + enum: + - accept + - reject + - drain + - backup + example: accept + type: string + x-linode-cli-display: 6 + nodebalancer_id: + description: __Read-only__ The NodeBalancer ID that this Node belongs to. + example: 12345 + readOnly: true + type: integer + status: + description: __Read-only__ The current status of this node, based on the configured checks of its NodeBalancer Config. + enum: + - unknown + - UP + - DOWN + example: UP + readOnly: true + type: string + x-linode-cli-color: + DOWN: red + UP: green + default_: white + unknown: yellow + x-linode-cli-display: 4 + weight: + description: Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. + example: 50 + maximum: 255 + minimum: 1 + type: integer + x-linode-cli-display: 5 + title: TCP, HTTP, or HTTPS config + x-akamai: + file-path: schemas/node-balancer-node-tcp-http-https.yaml + type: array + nodes_status: + additionalProperties: false + description: __Read-only__ Describes the health of the backends for this port. This data updates periodically as checks are performed against backends. + properties: + down: + description: __Read-only__ The number of backends considered to be `DOWN` and unhealthy. These are not in rotation, and not serving requests. + example: 0 + readOnly: true + type: integer + up: + description: __Read-only__ The number of backends considered to be `UP` and healthy, and that are serving requests. + example: 4 + readOnly: true + type: integer + readOnly: true + type: object + x-linode-cli-display: 10 + port: + default: 80 + description: This is the port the NodeBalancer listens on for this configuration. Port numbers need to be unique across TCP, HTTP, and HTTPS configurations on a single NodeBalancer. However, ports assigned to TCP, HTTP, or HTTPS configurations can also be reused for UDP configurations. For example, Port 80 can simultaneously serve a TCP and a UDP configuration on the same NodeBalancer, but it can't be shared by both a TCP and an HTTP configuration. Although certain ports are traditionally associated with specific protocols, this is not strictly enforced. You may configure your NodeBalancer however is useful to you. + example: 80 + maximum: 65535 + minimum: 1 + type: integer + x-linode-cli-display: 2 + protocol: + default: http + description: |- + The protocol the port is configured to serve, `http` in this case. + Review our guide on [Available protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols) for information on protocol features. + enum: + - http + example: http + type: string + x-linode-cli-display: 3 + proxy_protocol: + default: none + description: __Read-only__ Not applicable for HTTP configs. + example: none + readOnly: true + type: string + ssl_cert: + description: __Read-only__ Not applicable for HTTP configs. + example: null + nullable: true + readOnly: true + type: string + ssl_commonname: + description: __Read-only__ Not applicable for HTTP configs. + example: '' + readOnly: true + type: string + x-linode-cli-display: 8 + ssl_fingerprint: + description: __Read-only__ Not applicable for HTTP configs. + example: '' + readOnly: true + type: string + x-linode-cli-display: 9 + ssl_key: + description: __Read-only__ Not applicable for HTTP configs. + example: null + nullable: true + readOnly: true + type: string + stickiness: + default: table + description: |- + Controls how session stickiness is handled on this port. - The contents of this field will not be shown in any responses that display the NodeBalancerConfig. Instead, `` will be printed where the field appears. + - If set to `none`, connections will always be assigned a backend based on the algorithm configured. + - If set to `table`, sessions from the same remote address will be routed to the same backend. + - If set to `http_cookie`, sessions are routed to the same backend based on a cookie set by the NodeBalancer. + enum: + - none + - table + - http_cookie + example: http_cookie + type: string + x-linode-cli-display: 5 + required: + - nodes + title: HTTP + type: object + x-akamai: + file-path: schemas/node-balancer-config-http.yaml + - additionalProperties: false + description: A NodeBalancer configuration defines the protocol and settings for a specific port on the NodeBalancer. These fields apply to HTTPS configurations. + properties: + algorithm: + default: roundrobin + description: The algorithm this HTTPS NodeBalancer uses for routing traffic to backends. + enum: + - roundrobin + - leastconn + - source + example: roundrobin + type: string + x-linode-cli-display: 4 + check: + default: none + description: |- + The type of check to perform against backends to ensure they are serving requests. This is used to determine if backends are up or down. - The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancerConfig response are automatically derived from your certificate. Please refer to these fields to verify that the appropriate certificate was assigned to your NodeBalancerConfig. - example: - format: ssl-cert - nullable: true - type: string - ssl_commonname: - description: __Read-only__ The read-only common name automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig. - example: www.example.com - readOnly: true - type: string - x-linode-cli-display: 8 - ssl_fingerprint: - description: __Read-only__ The read-only SHA1-encoded fingerprint automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig. - example: 00:01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12:13 - readOnly: true - type: string - x-linode-cli-display: 9 - ssl_key: - description: |- - The PEM-formatted private key for the SSL certificate set in the `ssl_cert` field. + - If `none` no check is performed. + - `connection` requires only a connection to the backend to succeed. + - `http` and `http_body` rely on the backend serving HTTP, and that the response returned matches what is expected. + enum: + - none + - connection + - http + - http_body + example: http_body + type: string + check_attempts: + default: 3 + description: How many times to attempt a check before considering a backend to be down. + example: 3 + maximum: 30 + minimum: 1 + type: integer + check_body: + description: Use when the active health `check` type is `http_body`. This value must be present in the response body of the check in order for it to pass. If this value is not present in the response body of a check request, the backend is considered to be down. + example: it works + type: string + check_interval: + default: 5 + description: |- + How often, in seconds, to check that backends are up and serving requests. - Line breaks must be represented as `\n` in the string for requests (but not when using the Linode CLI). + Must be greater than `check_timeout`. + example: 90 + maximum: 3600 + minimum: 2 + type: integer + check_passive: + default: true + description: If `true`, any response from this backend with a `5xx` status code will be enough for it to be considered unhealthy and taken out of rotation. + example: true + type: boolean + x-linode-cli-display: 6 + check_path: + description: The URL path to check on each backend. Use when the active health `check` type is `http`. If the backend doesn't respond to this request, it's considered to be down. + example: /test + pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ + type: string + check_timeout: + default: 3 + description: |- + How long, in seconds, to wait for a check attempt before considering it failed. - The contents of this field will not be shown in any responses that display - the NodeBalancerConfig. Instead, `` will be printed where the field - appears. + Must be less than `check_interval`. + example: 10 + maximum: 30 + minimum: 1 + type: integer + cipher_suite: + default: recommended + description: |- + What ciphers to use for SSL connections served by this NodeBalancer. - The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancerConfig - response are automatically derived from your certificate. Please refer to these fields to - verify that the appropriate certificate was assigned to your NodeBalancerConfig. - example: - format: ssl-key - nullable: true - type: string - stickiness: - default: none - description: |- - Controls how session stickiness is handled on this port. + - `legacy` is considered insecure and should only be used if necessary. + enum: + - recommended + - legacy + example: recommended + type: string + x-linode-cli-color: + default_: white + legacy: red + x-linode-cli-display: 7 + id: + description: __Read-only__ This config's unique ID. + example: 5000 + readOnly: true + type: integer + x-linode-cli-display: 1 + nodebalancer_id: + description: __Read-only__ The ID for the NodeBalancer this config belongs to. + example: 12345 + readOnly: true + type: integer + nodes: + description: The NodeBalancer nodes that serve this configuration. + items: + additionalProperties: false + description: A NodeBalancer node represents a single backend serving requests for a single port of a NodeBalancer. Nodes are specific to NodeBalancer configs, and serve traffic over their private IP. If the same Linode is serving traffic for more than one port on the same NodeBalancer, one NodeBalancer node is required for each config (port) it should serve requests on. For example, if you have four backends, and each should respond to both HTTP and HTTPS requests, you will need two NodeBalancer configs (port 80 and port 443) and four backends each, one for each of the Linodes serving requests for that port. + properties: + address: + description: The private IP Address where this backend can be reached. This _must_ be a private IP address. + example: 192.168.210.120:80 + format: ip + type: string + x-linode-cli-display: 3 + config_id: + description: __Read-only__ The NodeBalancer Config ID that this Node belongs to. + example: 4567 + readOnly: true + type: integer + id: + description: __Read-only__ This node's unique ID. + example: 54321 + readOnly: true + type: integer + x-linode-cli-display: 1 + label: + description: The label for this node. This is for display purposes only. + example: node54321 + maxLength: 32 + minLength: 3 + pattern: '[a-zA-Z0-9-_.]{3,32}' + type: string + x-linode-cli-display: 2 + mode: + description: |- + The mode this NodeBalancer should use when sending traffic to this backend. - - If set to `none` connections will always be assigned a backend based on the algorithm configured. - - If set to `table` sessions from the same remote address will be routed to the same backend. - - For HTTP or HTTPS clients, `http_cookie` allows sessions to be routed to the same backend based on a cookie set by the NodeBalancer. - enum: - - none - - table - - http_cookie - example: http_cookie - type: string - x-linode-cli-display: 5 - type: object + - If set to `accept` this backend is accepting traffic. + - If set to `reject` this backend will not receive traffic. + - If set to `drain` this backend will not receive _new_ traffic, but connections already pinned to it will continue to be routed to it. + - If set to `backup`, this backend will only receive traffic if all `accept` nodes are down. + enum: + - accept + - reject + - drain + - backup + example: accept + type: string + x-linode-cli-display: 6 + nodebalancer_id: + description: __Read-only__ The NodeBalancer ID that this Node belongs to. + example: 12345 + readOnly: true + type: integer + status: + description: __Read-only__ The current status of this node, based on the configured checks of its NodeBalancer Config. + enum: + - unknown + - UP + - DOWN + example: UP + readOnly: true + type: string + x-linode-cli-color: + DOWN: red + UP: green + default_: white + unknown: yellow + x-linode-cli-display: 4 + weight: + description: Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. + example: 50 + maximum: 255 + minimum: 1 + type: integer + x-linode-cli-display: 5 + title: TCP, HTTP, or HTTPS config + x-akamai: + file-path: schemas/node-balancer-node-tcp-http-https.yaml + type: array + nodes_status: + additionalProperties: false + description: __Read-only__ Describes the health of the backends for this port. This data updates periodically as checks are performed against backends. + properties: + down: + description: __Read-only__ The number of backends considered to be `DOWN` and unhealthy. These are not in rotation, and not serving requests. + example: 0 + readOnly: true + type: integer + up: + description: __Read-only__ The number of backends considered to be `UP` and healthy, and that are serving requests. + example: 4 + readOnly: true + type: integer + readOnly: true + type: object + x-linode-cli-display: 10 + port: + default: 80 + description: This is the port the NodeBalancer listens on for this configuration. Port numbers must be unique across TCP, HTTP, and HTTPS configurations on a single NodeBalancer. However, ports assigned to TCP, HTTP, or HTTPS configurations can also be reused for UDP configurations. For example, Port 80 can simultaneously serve a TCP and a UDP configuration on the same NodeBalancer, but it can't be shared by both a TCP and an HTTP configuration. Although certain ports are traditionally associated with specific protocols, this isn't strictly enforced, and you may configure your NodeBalancer however you find useful. + example: 443 + maximum: 65535 + minimum: 1 + type: integer + x-linode-cli-display: 2 + protocol: + default: http + description: |- + The protocol the port is configured to serve, `https` in this case. + + - The `https` protocol is mutually required with `ssl_cert` and `ssl_key`. + + Review our guide on [Available protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols) for information on protocol features. + enum: + - https + example: https + type: string + x-linode-cli-display: 3 + proxy_protocol: + default: none + description: __Read-only__ Not applicable for HTTPS configs. + example: none + readOnly: true + type: string + ssl_cert: + description: |2- + + The PEM-formatted public SSL certificate (or the combined PEM-formatted SSL certificate and Certificate Authority chain) that should be served on this NodeBalancerConfig's port. + + Line breaks must be represented as `\n` in the string for requests (but not when using the Linode CLI). + + [Diffie-Hellman Parameters](https://www.linode.com/docs/products/networking/nodebalancers/guides/ssl-termination/#diffie-hellman-parameters) can be included in this value to enable forward secrecy. + + The contents of this field will not be shown in any responses that display the NodeBalancerConfig. Instead, `` will be printed where the field appears. + + The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancerConfig response are automatically derived from your certificate. Please refer to these fields to verify that the appropriate certificate was assigned to your NodeBalancerConfig. + example: + format: ssl-cert + nullable: true + type: string + ssl_commonname: + description: __Read-only__ The read-only common name automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig. + example: www.example.com + readOnly: true + type: string + x-linode-cli-display: 8 + ssl_fingerprint: + description: __Read-only__ The read-only SHA1-encoded fingerprint automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig. + example: 00:01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12:13 + readOnly: true + type: string + x-linode-cli-display: 9 + ssl_key: + description: |- + The PEM-formatted private key for the SSL certificate set in the `ssl_cert` field. + + Line breaks must be represented as `\n` in the string for requests (but not when using the Linode CLI). + + The contents of this field will not be shown in any responses that display + the NodeBalancerConfig. Instead, `` will be printed where the field + appears. + + The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancerConfig + response are automatically derived from your certificate. Please refer to these fields to + verify that the appropriate certificate was assigned to your NodeBalancerConfig. + example: + format: ssl-key + nullable: true + type: string + stickiness: + default: table + description: |- + Controls how session stickiness is handled on this port. + + - If set to `none`, connections will always be assigned a backend based on the algorithm configured. + - If set to `table`, sessions from the same remote address will be routed to the same backend. + - For HTTP or HTTPS clients, `http_cookie` allows sessions to be routed to the same backend based on a cookie set by the NodeBalancer. + enum: + - none + - table + - http_cookie + example: http_cookie + type: string + x-linode-cli-display: 5 + required: + - nodes + title: HTTPS + type: object + x-akamai: + file-path: schemas/node-balancer-config-https.yaml x-akamai: file-path: schemas/node-balancer-config.yaml type: array @@ -71179,348 +72114,16 @@ paths: file-path: schemas/added-get-node-balancer-configs-200.yaml x-example: x-ref: ../examples/get-node-balancer-configs-200.json - description: A paginated list of NodeBalancer Configs. - default: - content: - application/json: - schema: + x-linode-cli-use-schema: additionalProperties: false - properties: - errors: - items: - additionalProperties: false - description: An object for describing a single error that occurred during the processing of a request. - properties: - field: - description: The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request. - example: fieldname - type: string - reason: - description: What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully. - example: fieldname must be a valid value - type: string - type: object - x-akamai: - file-path: schemas/error-object.yaml - type: array - type: object - description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes. - security: - - personalAccessToken: [] - - oauth: - - nodebalancers:read_only - summary: List configs - tags: - - NodeBalancers - x-akamai: - tabs: - - syntax: linode-cli nodebalancers configs-list 12345 - title: CLI - url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli - - syntax: nodebalancers:read_only - title: OAuth scopes - url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth - x-linode-cli-action: configs-list - x-linode-grant: read_only - parameters: - - description: __Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta. - in: path - name: apiVersion - required: true - schema: - enum: - - v4 - - v4beta - type: string - x-akamai: - file-path: parameters/api-version-path.yaml - - description: The ID of the NodeBalancer to access. - in: path - name: nodeBalancerId - required: true - schema: - type: integer - x-akamai: - file-path: parameters/node-balancer-id.yaml - post: - description: |- - Creates a NodeBalancer Config, which allows the NodeBalancer to accept traffic on a new port. You will need to add NodeBalancer Nodes to the new Config before it can actually serve requests. - - - <> - - --- - - - - __CLI__. - - ``` - linode-cli nodebalancers config-create 12345 \ - --port 443 \ - --protocol https \ - --algorithm roundrobin \ - --stickiness http_cookie \ - --check http_body \ - --check_interval 90 \ - --check_timeout 10 \ - --check_attempts 3 \ - --check_path "/test" \ - --check_body "it works" \ - --check_passive true \ - --proxy_protocol "none" \ - --ssl_cert "-----BEGIN CERTIFICATE----- - CERTIFICATE_INFORMATION - -----END CERTIFICATE-----" \ - --ssl_key "-----BEGIN PRIVATE KEY----- - PRIVATE_KEY_INFORMATION - -----END PRIVATE KEY-----" \ - --cipher_suite recommended - ``` - - [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) - - - __OAuth scopes__. - - ``` - nodebalancers:read_write - ``` - - [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - externalDocs: - description: See documentation for this operation in Akamai's Linode API - url: https://techdocs.akamai.com/linode-api/reference/post-node-balancer-config - operationId: post-node-balancer-config - requestBody: - content: - application/json: - schema: - additionalProperties: false - description: A NodeBalancer config represents the configuration of this NodeBalancer on a single port. For example, a NodeBalancer Config on port 80 would typically represent how this NodeBalancer response to HTTP requests. NodeBalancer configs have a list of backends, called "nodes," that they forward requests between based on their configuration. - properties: - algorithm: - default: roundrobin - description: What algorithm this NodeBalancer should use for routing traffic to backends. - enum: - - roundrobin - - leastconn - - source - example: roundrobin - type: string - x-linode-cli-display: 4 - check: - default: none - description: |- - The type of check to perform against backends to ensure they are serving requests. This is used to determine if backends are up or down. - - - If `none` no check is performed. - - `connection` requires only a connection to the backend to succeed. - - `http` and `http_body` rely on the backend serving HTTP, and that the response returned matches what is expected. - enum: - - none - - connection - - http - - http_body - example: http_body - type: string - check_attempts: - default: 3 - description: How many times to attempt a check before considering a backend to be down. - example: 3 - maximum: 30 - minimum: 1 - type: integer - check_body: - description: This value must be present in the response body of the check in order for it to pass. If this value is not present in the response body of a check request, the backend is considered to be down. - example: it works - type: string - check_interval: - default: 31 - description: |- - How often, in seconds, to check that backends are up and serving requests. - - Must be greater than `check_timeout`. - example: 90 - type: integer - check_passive: - default: true - description: If `true`, any response from this backend with a `5xx` status code will be enough for it to be considered unhealthy and taken out of rotation. - example: true - type: boolean - x-linode-cli-display: 6 - check_path: - description: The URL path to check on each backend. If the backend does not respond to this request it is considered to be down. - example: /test - pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ - type: string - check_timeout: - default: 30 - description: |- - How long, in seconds, to wait for a check attempt before considering it failed. - - Must be less than `check_interval`. - example: 10 - maximum: 30 - minimum: 1 - type: integer - cipher_suite: - default: recommended - description: |- - What ciphers to use for SSL connections served by this NodeBalancer. - - - `legacy` is considered insecure and should only be used if necessary. - enum: - - recommended - - legacy - example: recommended - type: string - x-linode-cli-color: - default_: white - legacy: red - x-linode-cli-display: 7 - id: - description: __Read-only__ This config's unique ID. - example: 4567 - readOnly: true - type: integer - x-linode-cli-display: 1 - nodebalancer_id: - description: __Read-only__ The ID for the NodeBalancer this config belongs to. - example: 12345 - readOnly: true - type: integer - nodes_status: - additionalProperties: false - description: __Read-only__ A structure containing information about the health of the backends for this port. This information is updated periodically as checks are performed against backends. - properties: - down: - description: __Read-only__ The number of backends considered to be "DOWN" and unhealthy. These are not in rotation, and not serving requests. - example: 0 - readOnly: true - type: integer - up: - description: __Read-only__ The number of backends considered to be "UP" and healthy, and that are serving requests. - example: 4 - readOnly: true - type: integer - readOnly: true - type: object - x-linode-cli-display: 10 - port: - default: 80 - description: The port this Config is for. These values must be unique across configs on a single NodeBalancer (you can't have two configs for port 80, for example). While some ports imply some protocols, no enforcement is done and you may configure your NodeBalancer however is useful to you. For example, while port 443 is generally used for HTTPS, you do not need SSL configured to have a NodeBalancer listening on port 443. - example: 80 - maximum: 65535 - minimum: 1 - type: integer - x-linode-cli-display: 2 - protocol: - default: http - description: |- - The protocol this port is configured to serve. - - - The `http` and `tcp` protocols do not support `ssl_cert` and `ssl_key`. - - - The `https` protocol is mutually required with `ssl_cert` and `ssl_key`. - - Review our guide on [Available Protocols](https://www.linode.com/docs/products/networking/nodebalancers/guides/protocols/) for information on protocol features. - enum: - - http - - https - - tcp - example: http - type: string - x-linode-cli-display: 3 - proxy_protocol: - default: none - description: |- - 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. - - - If omitted, or set to `none`, the NodeBalancer doesn't send any auxiliary data over TCP connections. This is the default. - - If set to `v1`, the human-readable header format (Version 1) is used. Requires `tcp` protocol. - - If set to `v2`, the binary header format (Version 2) is used. Requires `tcp` protocol. - enum: - - none - - v1 - - v2 - example: none - type: string - ssl_cert: - description: |2- - - The PEM-formatted public SSL certificate (or the combined PEM-formatted SSL certificate and Certificate Authority chain) that should be served on this NodeBalancerConfig's port. - - Line breaks must be represented as `\n` in the string for requests (but not when using the Linode CLI). - - [Diffie-Hellman Parameters](https://www.linode.com/docs/products/networking/nodebalancers/guides/ssl-termination/#diffie-hellman-parameters) can be included in this value to enable forward secrecy. - - The contents of this field will not be shown in any responses that display the NodeBalancerConfig. Instead, `` will be printed where the field appears. - - The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancerConfig response are automatically derived from your certificate. Please refer to these fields to verify that the appropriate certificate was assigned to your NodeBalancerConfig. - example: - format: ssl-cert - nullable: true - type: string - ssl_commonname: - description: __Read-only__ The read-only common name automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig. - example: www.example.com - readOnly: true - type: string - x-linode-cli-display: 8 - ssl_fingerprint: - description: __Read-only__ The read-only SHA1-encoded fingerprint automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig. - example: 00:01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12:13 - readOnly: true - type: string - x-linode-cli-display: 9 - ssl_key: - description: |- - The PEM-formatted private key for the SSL certificate set in the `ssl_cert` field. - - Line breaks must be represented as `\n` in the string for requests (but not when using the Linode CLI). - - The contents of this field will not be shown in any responses that display - the NodeBalancerConfig. Instead, `` will be printed where the field - appears. - - The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancerConfig - response are automatically derived from your certificate. Please refer to these fields to - verify that the appropriate certificate was assigned to your NodeBalancerConfig. - example: - format: ssl-key - nullable: true - type: string - stickiness: - default: none - description: |- - Controls how session stickiness is handled on this port. - - - If set to `none` connections will always be assigned a backend based on the algorithm configured. - - If set to `table` sessions from the same remote address will be routed to the same backend. - - For HTTP or HTTPS clients, `http_cookie` allows sessions to be routed to the same backend based on a cookie set by the NodeBalancer. - enum: - - none - - table - - http_cookie - example: http_cookie - type: string - x-linode-cli-display: 5 - type: object - x-akamai: - file-path: schemas/node-balancer-config.yaml - x-example: - x-ref: ../examples/post-node-balancer-config.json - description: Information about the port to configure. - responses: - '200': - content: - application/json: - schema: - additionalProperties: false - description: A NodeBalancer config represents the configuration of this NodeBalancer on a single port. For example, a NodeBalancer Config on port 80 would typically represent how this NodeBalancer response to HTTP requests. NodeBalancer configs have a list of backends, called "nodes," that they forward requests between based on their configuration. properties: algorithm: default: roundrobin - description: What algorithm this NodeBalancer should use for routing traffic to backends. + description: |- + The algorithm this NodeBalancer should use to route traffic to backends. + - If set to `roundrobin`, connections are allocated in a weighted circular order across the backends. + - If set to `leastconn`, allocates new connections to the backend with the least connections. + - If set to `source`, allocates the client's IP to the same backend on subsequent requests. Session `stickiness` affects this algorithm. enum: - roundrobin - leastconn @@ -71531,11 +72134,11 @@ paths: check: default: none description: |- - The type of check to perform against backends to ensure they are serving requests. This is used to determine if backends are up or down. - - - If `none` no check is performed. - - `connection` requires only a connection to the backend to succeed. - - `http` and `http_body` rely on the backend serving HTTP, and that the response returned matches what is expected. + The type of check to perform against backends to ensure they're serving requests. This determines if backends are up or down. + - If `none`, no check is performed. + - If `connection`, requires a successful TCP handshake with a backend node. + - If `http`, requires a 2xx or 3xx response from the backend node. + - If `http_body`, requires the provided regular expression matches against the request's result body. enum: - none - connection @@ -71551,7 +72154,7 @@ paths: minimum: 1 type: integer check_body: - description: This value must be present in the response body of the check in order for it to pass. If this value is not present in the response body of a check request, the backend is considered to be down. + description: The check's response body needs to include this value for it to pass. Otherwise the backend is identified as being down. example: it works type: string check_interval: @@ -71569,26 +72172,20 @@ paths: type: boolean x-linode-cli-display: 6 check_path: - description: The URL path to check on each backend. If the backend does not respond to this request it is considered to be down. + description: The URL path to check on each backend. If the backend doesn't respond to this request it's considered to be down. example: /test pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ type: string check_timeout: default: 30 - description: |- - How long, in seconds, to wait for a check attempt before considering it failed. - - Must be less than `check_interval`. + description: How long, in seconds, to wait for a check attempt before considering it failed. Must be less than `check_interval`. example: 10 maximum: 30 minimum: 1 type: integer cipher_suite: default: recommended - description: |- - What ciphers to use for SSL connections served by this NodeBalancer. - - - `legacy` is considered insecure and should only be used if necessary. + description: What ciphers to use for SSL connections served by this NodeBalancer. The `legacy` cipher is considered insecure and should only be used if necessary. For information on recommended and legacy ciphers, see [TLS cipher suites](https://techdocs.akamai.com/cloud-computing/docs/tls-ssl-termination-on-nodebalancers#tls-cipher-suites). enum: - recommended - legacy @@ -71605,21 +72202,21 @@ paths: type: integer x-linode-cli-display: 1 nodebalancer_id: - description: __Read-only__ The ID for the NodeBalancer this config belongs to. + description: __Read-only__ Identifies the NodeBalancer this config belongs to. example: 12345 readOnly: true type: integer nodes_status: additionalProperties: false - description: __Read-only__ A structure containing information about the health of the backends for this port. This information is updated periodically as checks are performed against backends. + description: __Read-only__ Information about the health of the backends for this port. It's updated periodically as checks are performed against backends. properties: down: - description: __Read-only__ The number of backends considered to be "DOWN" and unhealthy. These are not in rotation, and not serving requests. + description: __Read-only__ The number of backends considered to be `DOWN` and unhealthy. These are not in rotation, and not serving requests. example: 0 readOnly: true type: integer up: - description: __Read-only__ The number of backends considered to be "UP" and healthy, and that are serving requests. + description: __Read-only__ The number of backends considered to be `UP` and healthy, and that are serving requests. example: 4 readOnly: true type: integer @@ -71628,7 +72225,7 @@ paths: x-linode-cli-display: 10 port: default: 80 - description: The port this Config is for. These values must be unique across configs on a single NodeBalancer (you can't have two configs for port 80, for example). While some ports imply some protocols, no enforcement is done and you may configure your NodeBalancer however is useful to you. For example, while port 443 is generally used for HTTPS, you do not need SSL configured to have a NodeBalancer listening on port 443. + description: The port for this config. Ports need to be unique across configs for each NodeBalancer. For example, you can't have two configs for port 80. While some protocols are typically assigned specific ports, there's no enforcement, and you can configure your NodeBalancer however you find useful. For example, while port 443 is generally used for HTTPS, you don't need SSL configured to have a NodeBalancer listening on port 443. example: 80 maximum: 65535 minimum: 1 @@ -71639,9 +72236,9 @@ paths: description: |- The protocol this port is configured to serve. - - The `http` and `tcp` protocols do not support `ssl_cert` and `ssl_key`. + - The `http` and `tcp` protocols don't support `ssl_cert` and `ssl_key`. - - The `https` protocol is mutually required with `ssl_cert` and `ssl_key`. + - For the `https` protocol, you need `ssl_cert` and `ssl_key`. Review our guide on [Available Protocols](https://www.linode.com/docs/products/networking/nodebalancers/guides/protocols/) for information on protocol features. enum: @@ -71654,9 +72251,9 @@ paths: proxy_protocol: default: none description: |- - 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. + ProxyProtocol is a TCP extension that sends initial TCP connection information such as source IPs, destination IPs, and ports to backend devices. This information would be lost otherwise. Backend devices must be configured to work with ProxyProtocol if enabled. - - If omitted, or set to `none`, the NodeBalancer doesn't send any auxiliary data over TCP connections. This is the default. + - If omitted or set to `none`, the NodeBalancer doesn't send any auxiliary data over TCP connections. The default is `none`. - If set to `v1`, the human-readable header format (Version 1) is used. Requires `tcp` protocol. - If set to `v2`, the binary header format (Version 2) is used. Requires `tcp` protocol. enum: @@ -71666,29 +72263,28 @@ paths: example: none type: string ssl_cert: - description: |2- - - The PEM-formatted public SSL certificate (or the combined PEM-formatted SSL certificate and Certificate Authority chain) that should be served on this NodeBalancerConfig's port. + description: |- + The PEM-formatted public SSL certificate (or the combined PEM-formatted SSL certificate and Certificate Authority chain) that should be served on this NodeBalancer config's port. - Line breaks must be represented as `\n` in the string for requests (but not when using the Linode CLI). + Line breaks must be represented as `\n` in the string for API requests, but not when using the Linode CLI. - [Diffie-Hellman Parameters](https://www.linode.com/docs/products/networking/nodebalancers/guides/ssl-termination/#diffie-hellman-parameters) can be included in this value to enable forward secrecy. + You can include [Diffie-Hellman parameters](https://www.linode.com/docs/products/networking/nodebalancers/guides/ssl-termination/#diffie-hellman-parameters) in this value to enable forward secrecy. - The contents of this field will not be shown in any responses that display the NodeBalancerConfig. Instead, `` will be printed where the field appears. + The provided field don't appear in any responses that display the NodeBalancer config. It's replaced with ``. - The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancerConfig response are automatically derived from your certificate. Please refer to these fields to verify that the appropriate certificate was assigned to your NodeBalancerConfig. + The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancer config response are automatically derived from your certificate. Please refer to these fields to verify that the appropriate certificate was assigned to your config. example: format: ssl-cert nullable: true type: string ssl_commonname: - description: __Read-only__ The read-only common name automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig. + description: __Read-only__ The read-only common name automatically derived from the SSL certificate assigned to this NodeBalancer config. Please refer to this field to verify that the appropriate certificate is assigned to your config. example: www.example.com readOnly: true type: string x-linode-cli-display: 8 ssl_fingerprint: - description: __Read-only__ The read-only SHA1-encoded fingerprint automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig. + description: __Read-only__ The read-only SHA1-encoded fingerprint automatically derived from the SSL certificate assigned to this NodeBalancer config. Please refer to this field to verify that the appropriate certificate is assigned to your config. example: 00:01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12:13 readOnly: true type: string @@ -71697,7 +72293,7 @@ paths: description: |- The PEM-formatted private key for the SSL certificate set in the `ssl_cert` field. - Line breaks must be represented as `\n` in the string for requests (but not when using the Linode CLI). + Line breaks must be represented as `\n` in the string for API requests, but not when using the Linode CLI. The contents of this field will not be shown in any responses that display the NodeBalancerConfig. Instead, `` will be printed where the field @@ -71714,9 +72310,8 @@ paths: default: none description: |- Controls how session stickiness is handled on this port. - - - If set to `none` connections will always be assigned a backend based on the algorithm configured. - - If set to `table` sessions from the same remote address will be routed to the same backend. + - If set to `none`, connections are always assigned a backend based on the algorithm configured. + - If set to `table`, sessions from the same remote address are routed to the same backend. - For HTTP or HTTPS clients, `http_cookie` allows sessions to be routed to the same backend based on a cookie set by the NodeBalancer. enum: - none @@ -71727,10 +72322,8 @@ paths: x-linode-cli-display: 5 type: object x-akamai: - file-path: schemas/node-balancer-config.yaml - x-example: - x-ref: ../examples/post-node-balancer-config-200.json - description: Config created successfully. + file-path: schemas/node-balancer-config-cli.yaml + description: A paginated list of NodeBalancer Configs. default: content: application/json: @@ -71759,52 +72352,43 @@ paths: security: - personalAccessToken: [] - oauth: - - nodebalancers:read_write - summary: Create a config + - nodebalancers:read_only + summary: List configs tags: - NodeBalancers x-akamai: tabs: - - syntax: |- - linode-cli nodebalancers config-create 12345 \ - --port 443 \ - --protocol https \ - --algorithm roundrobin \ - --stickiness http_cookie \ - --check http_body \ - --check_interval 90 \ - --check_timeout 10 \ - --check_attempts 3 \ - --check_path "/test" \ - --check_body "it works" \ - --check_passive true \ - --proxy_protocol "none" \ - --ssl_cert "-----BEGIN CERTIFICATE----- - CERTIFICATE_INFORMATION - -----END CERTIFICATE-----" \ - --ssl_key "-----BEGIN PRIVATE KEY----- - PRIVATE_KEY_INFORMATION - -----END PRIVATE KEY-----" \ - --cipher_suite recommended + - syntax: linode-cli nodebalancers configs-list 12345 title: CLI url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli - - syntax: nodebalancers:read_write + - syntax: nodebalancers:read_only title: OAuth scopes url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth - x-linode-cli-action: config-create - x-linode-grant: read_write - x-akamai: - file-path: paths/node-balancer-configs.yaml - path-info: /{apiVersion}/nodebalancers/{nodeBalancerId}/configs - x-linode-cli-command: nodebalancers - /{apiVersion}/nodebalancers/{nodeBalancerId}/configs/{configId}: - delete: + x-linode-cli-action: configs-list + x-linode-grant: read_only + parameters: + - description: __Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta. + in: path + name: apiVersion + required: true + schema: + enum: + - v4 + - v4beta + type: string + x-akamai: + file-path: parameters/api-version-path.yaml + - description: The ID of the NodeBalancer to access. + in: path + name: nodeBalancerId + required: true + schema: + type: integer + x-akamai: + file-path: parameters/node-balancer-id.yaml + post: description: |- - Deletes the Config for a port of this NodeBalancer. - - __This cannot be undone.__ - - Once completed, this NodeBalancer will no longer respond to requests on the given port. This also deletes all associated NodeBalancerNodes, but the Linodes they were routing traffic to will be unchanged and will not be removed. + Creates a NodeBalancer configuration, which allows the NodeBalancer to accept traffic on a new port. You will need to add NodeBalancer nodes to the new configuration before it can actually serve requests. <> @@ -71812,11 +72396,66 @@ paths: --- - - __CLI__. + - __CLI: HTTPS__. ``` - linode-cli nodebalancers config-delete \ - 12345 4567 + linode-cli nodebalancers config-create 12345 \ + --port 443 \ + --protocol https \ + --algorithm roundrobin \ + --stickiness http_cookie \ + --check http_body \ + --check_interval 90 \ + --check_timeout 10 \ + --check_attempts 3 \ + --check_path "/test" \ + --check_body "it works" \ + --check_passive true \ + --proxy_protocol "none" \ + --ssl_cert "-----BEGIN CERTIFICATE----- + CERTIFICATE_INFORMATION + -----END CERTIFICATE-----" \ + --ssl_key "-----BEGIN PRIVATE KEY----- + PRIVATE_KEY_INFORMATION + -----END PRIVATE KEY-----" \ + --cipher_suite recommended \ + ``` + + [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) + + - __CLI: TCP__. + + ``` + linode-cli nodebalancers config-create 12345 \ + --port 80 \ + --protocol tcp \ + --algorithm roundrobin \ + --stickiness none \ + --check http_body \ + --check_interval 90 \ + --check_timeout 10 \ + --check_attempts 3 \ + --check_path "/test" \ + --check_body "it works" \ + --proxy_protocol "v2" + ``` + + [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) + + - __CLI: HTTP__. + + ``` + linode-cli nodebalancers config-create 12345 \ + --port 440 \ + --protocol http \ + --algorithm roundrobin \ + --stickiness http_cookie \ + --check http_body \ + --check_interval 90 \ + --check_timeout 10 \ + --check_attempts 3 \ + --check_path "/test" \ + --check_body "it works" \ ``` [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) @@ -71830,111 +72469,25 @@ paths: [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) externalDocs: description: See documentation for this operation in Akamai's Linode API - url: https://techdocs.akamai.com/linode-api/reference/delete-node-balancer-config - operationId: delete-node-balancer-config - responses: - '200': - content: - application/json: - schema: - description: The API responds with an empty object. - maxProperties: 0 - type: object - x-akamai: - file-path: schemas/added-empty-obj.yaml - x-example: - x-ref: ../examples/delete-node-balancer-config-200.json - description: NodeBalancer Config deleted successfully. - default: - content: - application/json: - schema: - additionalProperties: false - properties: - errors: - items: - additionalProperties: false - description: An object for describing a single error that occurred during the processing of a request. - properties: - field: - description: The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request. - example: fieldname - type: string - reason: - description: What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully. - example: fieldname must be a valid value - type: string - type: object - x-akamai: - file-path: schemas/error-object.yaml - type: array - type: object - description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes. - security: - - personalAccessToken: [] - - oauth: - - nodebalancers:read_write - summary: Delete a config - tags: - - NodeBalancers - x-akamai: - tabs: - - syntax: |- - linode-cli nodebalancers config-delete \ - 12345 4567 - title: CLI - url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli - - syntax: nodebalancers:read_write - title: OAuth scopes - url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth - x-linode-cli-action: config-delete - x-linode-grant: read_write - get: - description: |- - Returns configuration information for a single port of this NodeBalancer. - - - <> - - --- - - - - __CLI__. - - ``` - linode-cli nodebalancers config-view \ - 12345 4567 - ``` - - [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) - - - __OAuth scopes__. - - ``` - nodebalancers:read_only - ``` - - [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - externalDocs: - description: See documentation for this operation in Akamai's Linode API - url: https://techdocs.akamai.com/linode-api/reference/get-node-balancer-config - operationId: get-node-balancer-config - responses: - '200': - content: - application/json: - schema: - additionalProperties: false - description: A NodeBalancer config represents the configuration of this NodeBalancer on a single port. For example, a NodeBalancer Config on port 80 would typically represent how this NodeBalancer response to HTTP requests. NodeBalancer configs have a list of backends, called "nodes," that they forward requests between based on their configuration. + url: https://techdocs.akamai.com/linode-api/reference/post-node-balancer-config + operationId: post-node-balancer-config + requestBody: + content: + application/json: + schema: + description: NodeBalancer `config` options for each protocol. + oneOf: + - additionalProperties: false + description: A NodeBalancer configuration defines the protocol and settings for a specific port on the NodeBalancer. These fields apply to TCP configurations. properties: algorithm: default: roundrobin - description: What algorithm this NodeBalancer should use for routing traffic to backends. + description: The algorithm this TCP NodeBalancer uses to route traffic to backends. enum: - roundrobin - leastconn - source - example: roundrobin + example: leastconn type: string x-linode-cli-display: 4 check: @@ -71942,7 +72495,7 @@ paths: description: |- The type of check to perform against backends to ensure they are serving requests. This is used to determine if backends are up or down. - - If `none` no check is performed. + - If `none`, no check is performed. - `connection` requires only a connection to the backend to succeed. - `http` and `http_body` rely on the backend serving HTTP, and that the response returned matches what is expected. enum: @@ -71964,12 +72517,14 @@ paths: example: it works type: string check_interval: - default: 31 + default: 5 description: |- How often, in seconds, to check that backends are up and serving requests. Must be greater than `check_timeout`. example: 90 + maximum: 3600 + minimum: 2 type: integer check_passive: default: true @@ -71993,15 +72548,9 @@ paths: minimum: 1 type: integer cipher_suite: - default: recommended - description: |- - What ciphers to use for SSL connections served by this NodeBalancer. - - - `legacy` is considered insecure and should only be used if necessary. - enum: - - recommended - - legacy + description: __Read-only__ Not applicable for HTTP configs. example: recommended + readOnly: true type: string x-linode-cli-color: default_: white @@ -72009,7 +72558,7 @@ paths: x-linode-cli-display: 7 id: description: __Read-only__ This config's unique ID. - example: 4567 + example: 6000 readOnly: true type: integer x-linode-cli-display: 1 @@ -72018,17 +72567,95 @@ paths: example: 12345 readOnly: true type: integer + nodes: + description: The NodeBalancer nodes that serve this configuration. + items: + additionalProperties: false + description: A NodeBalancer node represents a single backend serving requests for a single port of a NodeBalancer. Nodes are specific to NodeBalancer configs, and serve traffic over their private IP. If the same Linode is serving traffic for more than one port on the same NodeBalancer, one NodeBalancer node is required for each config (port) it should serve requests on. For example, if you have four backends, and each should respond to both HTTP and HTTPS requests, you will need two NodeBalancer configs (port 80 and port 443) and four backends each, one for each of the Linodes serving requests for that port. + properties: + address: + description: The private IP Address where this backend can be reached. This _must_ be a private IP address. + example: 192.168.210.120:80 + format: ip + type: string + x-linode-cli-display: 3 + config_id: + description: __Read-only__ The NodeBalancer Config ID that this Node belongs to. + example: 4567 + readOnly: true + type: integer + id: + description: __Read-only__ This node's unique ID. + example: 54321 + readOnly: true + type: integer + x-linode-cli-display: 1 + label: + description: The label for this node. This is for display purposes only. + example: node54321 + maxLength: 32 + minLength: 3 + pattern: '[a-zA-Z0-9-_.]{3,32}' + type: string + x-linode-cli-display: 2 + mode: + description: |- + The mode this NodeBalancer should use when sending traffic to this backend. + + - If set to `accept` this backend is accepting traffic. + - If set to `reject` this backend will not receive traffic. + - If set to `drain` this backend will not receive _new_ traffic, but connections already pinned to it will continue to be routed to it. + - If set to `backup`, this backend will only receive traffic if all `accept` nodes are down. + enum: + - accept + - reject + - drain + - backup + example: accept + type: string + x-linode-cli-display: 6 + nodebalancer_id: + description: __Read-only__ The NodeBalancer ID that this Node belongs to. + example: 12345 + readOnly: true + type: integer + status: + description: __Read-only__ The current status of this node, based on the configured checks of its NodeBalancer Config. + enum: + - unknown + - UP + - DOWN + example: UP + readOnly: true + type: string + x-linode-cli-color: + DOWN: red + UP: green + default_: white + unknown: yellow + x-linode-cli-display: 4 + weight: + description: Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. + example: 50 + maximum: 255 + minimum: 1 + type: integer + x-linode-cli-display: 5 + title: TCP, HTTP, or HTTPS config + x-akamai: + file-path: schemas/node-balancer-node-tcp-http-https.yaml + type: array nodes_status: additionalProperties: false - description: __Read-only__ A structure containing information about the health of the backends for this port. This information is updated periodically as checks are performed against backends. + description: __Read-only__ Describes the health of the backends for this port. This data updates periodically as checks are performed against backends. properties: down: - description: __Read-only__ The number of backends considered to be "DOWN" and unhealthy. These are not in rotation, and not serving requests. + description: __Read-only__ The number of backends considered to be `DOWN` and unhealthy. These are not in rotation, and not serving requests. example: 0 readOnly: true type: integer up: - description: __Read-only__ The number of backends considered to be "UP" and healthy, and that are serving requests. + description: __Read-only__ The number of backends considered to be `UP` and healthy, and that are serving requests. example: 4 readOnly: true type: integer @@ -72037,8 +72664,8 @@ paths: x-linode-cli-display: 10 port: default: 80 - description: The port this Config is for. These values must be unique across configs on a single NodeBalancer (you can't have two configs for port 80, for example). While some ports imply some protocols, no enforcement is done and you may configure your NodeBalancer however is useful to you. For example, while port 443 is generally used for HTTPS, you do not need SSL configured to have a NodeBalancer listening on port 443. - example: 80 + description: This is the port the NodeBalancer listens on for this configuration. Port numbers must be unique across TCP, HTTP, and HTTPS configurations on a single NodeBalancer. However, ports assigned to TCP, HTTP, or HTTPS configurations can also be reused for UDP configurations. For example, Port 80 can simultaneously serve a TCP and a UDP configuration on the same NodeBalancer, but it can't be shared by both a TCP and an HTTP configuration. Although certain ports are traditionally associated with specific protocols, this isn't strictly enforced, and you may configure your NodeBalancer however you find useful. + example: 22 maximum: 65535 minimum: 1 type: integer @@ -72046,24 +72673,18 @@ paths: protocol: default: http description: |- - The protocol this port is configured to serve. - - - The `http` and `tcp` protocols do not support `ssl_cert` and `ssl_key`. + The protocol the port is configured to serve, `tcp` in this case. - - The `https` protocol is mutually required with `ssl_cert` and `ssl_key`. - - Review our guide on [Available Protocols](https://www.linode.com/docs/products/networking/nodebalancers/guides/protocols/) for information on protocol features. + Review our guide on [Available protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols) for information on protocol features. enum: - - http - - https - tcp - example: http + example: tcp type: string x-linode-cli-display: 3 proxy_protocol: default: none description: |- - 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. + Proxy protocol is a TCP extension that sends initial TCP connection information such as source or destination IPs and ports to backend devices. Proxy protocol preserves initial TCP information that would be lost otherwise. Backend devices must be configured to work with `proxy_protocol` if enabled. - If omitted, or set to `none`, the NodeBalancer doesn't send any auxiliary data over TCP connections. This is the default. - If set to `v1`, the human-readable header format (Version 1) is used. Requires `tcp` protocol. @@ -72075,58 +72696,290 @@ paths: example: none type: string ssl_cert: - description: |2- + description: __Read-only__ Not applicable for TCP configs. + example: null + nullable: true + readOnly: true + type: string + ssl_commonname: + description: __Read-only__ Not applicable for TCP configs. + example: '' + readOnly: true + type: string + x-linode-cli-display: 8 + ssl_fingerprint: + description: __Read-only__ Not applicable for TCP configs. + example: '' + readOnly: true + type: string + x-linode-cli-display: 9 + ssl_key: + description: __Read-only__ Not applicable for HTTP configs. + example: null + nullable: true + readOnly: true + type: string + stickiness: + default: none + description: |- + __Read-only__ Controls how session stickiness is handled on this port. - The PEM-formatted public SSL certificate (or the combined PEM-formatted SSL certificate and Certificate Authority chain) that should be served on this NodeBalancerConfig's port. + Not applicable to TCP configurations. + enum: + - none + - table + - http_cookie + example: none + readOnly: true + type: string + x-linode-cli-display: 5 + required: + - nodes + title: TCP + type: object + x-akamai: + file-path: schemas/node-balancer-config-tcp.yaml + - additionalProperties: false + description: A NodeBalancer configuration defines the protocol and settings for a specific port on the NodeBalancer. These fields apply to HTTP configurations. + properties: + algorithm: + default: roundrobin + description: The algorithm this HTTP NodeBalancer uses for routing traffic to backends. + enum: + - roundrobin + - leastconn + - source + example: roundrobin + type: string + x-linode-cli-display: 4 + check: + default: none + description: |- + The type of check to perform against backends to ensure they are serving requests. This determines if backends are up or down. - Line breaks must be represented as `\n` in the string for requests (but not when using the Linode CLI). + - If `none`, no check is performed. + - `connection` requires only a connection to the backend to succeed. + - `http` and `http_body` rely on the backend serving HTTP, and that the response returned matches what is expected. + enum: + - none + - connection + - http + - http_body + example: http_body + type: string + check_attempts: + default: 3 + description: How many times to attempt a check before considering a backend to be down. + example: 3 + maximum: 30 + minimum: 1 + type: integer + check_body: + description: Use when the active health `check` type is `http_body`. This value must be present in the response body of the check in order for it to pass. If this value is not present in the response body of a check request, the backend is considered to be down. + example: it works + type: string + check_interval: + default: 5 + description: |- + How often, in seconds, to check that backends are up and serving requests. - [Diffie-Hellman Parameters](https://www.linode.com/docs/products/networking/nodebalancers/guides/ssl-termination/#diffie-hellman-parameters) can be included in this value to enable forward secrecy. + Must be greater than `check_timeout`. + example: 90 + maximum: 3600 + minimum: 2 + type: integer + check_passive: + default: true + description: If `true`, any response from this backend with a `5xx` status code will be enough for it to be considered unhealthy and taken out of rotation. + example: true + type: boolean + x-linode-cli-display: 6 + check_path: + description: The URL path to check on each backend. Use when the active health `check` type is `http`. If the backend doesn't respond to this request, it's considered to be down. + example: /test + pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ + type: string + check_timeout: + default: 3 + description: |- + How long, in seconds, to wait for a check attempt before considering it failed. - The contents of this field will not be shown in any responses that display the NodeBalancerConfig. Instead, `` will be printed where the field appears. + Must be less than `check_interval`. + example: 10 + maximum: 30 + minimum: 1 + type: integer + cipher_suite: + description: __Read-only__ Not applicable for HTTP configs. + example: recommended + readOnly: true + type: string + x-linode-cli-color: + default_: white + legacy: red + x-linode-cli-display: 7 + id: + description: __Read-only__ This config's unique ID. + example: 4000 + readOnly: true + type: integer + x-linode-cli-display: 1 + nodebalancer_id: + description: __Read-only__ Identifies the NodeBalancer this config belongs to. + example: 12345 + readOnly: true + type: integer + nodes: + description: The NodeBalancer nodes that serve this configuration. + items: + additionalProperties: false + description: A NodeBalancer node represents a single backend serving requests for a single port of a NodeBalancer. Nodes are specific to NodeBalancer configs, and serve traffic over their private IP. If the same Linode is serving traffic for more than one port on the same NodeBalancer, one NodeBalancer node is required for each config (port) it should serve requests on. For example, if you have four backends, and each should respond to both HTTP and HTTPS requests, you will need two NodeBalancer configs (port 80 and port 443) and four backends each, one for each of the Linodes serving requests for that port. + properties: + address: + description: The private IP Address where this backend can be reached. This _must_ be a private IP address. + example: 192.168.210.120:80 + format: ip + type: string + x-linode-cli-display: 3 + config_id: + description: __Read-only__ The NodeBalancer Config ID that this Node belongs to. + example: 4567 + readOnly: true + type: integer + id: + description: __Read-only__ This node's unique ID. + example: 54321 + readOnly: true + type: integer + x-linode-cli-display: 1 + label: + description: The label for this node. This is for display purposes only. + example: node54321 + maxLength: 32 + minLength: 3 + pattern: '[a-zA-Z0-9-_.]{3,32}' + type: string + x-linode-cli-display: 2 + mode: + description: |- + The mode this NodeBalancer should use when sending traffic to this backend. - The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancerConfig response are automatically derived from your certificate. Please refer to these fields to verify that the appropriate certificate was assigned to your NodeBalancerConfig. - example: - format: ssl-cert + - If set to `accept` this backend is accepting traffic. + - If set to `reject` this backend will not receive traffic. + - If set to `drain` this backend will not receive _new_ traffic, but connections already pinned to it will continue to be routed to it. + - If set to `backup`, this backend will only receive traffic if all `accept` nodes are down. + enum: + - accept + - reject + - drain + - backup + example: accept + type: string + x-linode-cli-display: 6 + nodebalancer_id: + description: __Read-only__ The NodeBalancer ID that this Node belongs to. + example: 12345 + readOnly: true + type: integer + status: + description: __Read-only__ The current status of this node, based on the configured checks of its NodeBalancer Config. + enum: + - unknown + - UP + - DOWN + example: UP + readOnly: true + type: string + x-linode-cli-color: + DOWN: red + UP: green + default_: white + unknown: yellow + x-linode-cli-display: 4 + weight: + description: Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. + example: 50 + maximum: 255 + minimum: 1 + type: integer + x-linode-cli-display: 5 + title: TCP, HTTP, or HTTPS config + x-akamai: + file-path: schemas/node-balancer-node-tcp-http-https.yaml + type: array + nodes_status: + additionalProperties: false + description: __Read-only__ Describes the health of the backends for this port. This data updates periodically as checks are performed against backends. + properties: + down: + description: __Read-only__ The number of backends considered to be `DOWN` and unhealthy. These are not in rotation, and not serving requests. + example: 0 + readOnly: true + type: integer + up: + description: __Read-only__ The number of backends considered to be `UP` and healthy, and that are serving requests. + example: 4 + readOnly: true + type: integer + readOnly: true + type: object + x-linode-cli-display: 10 + port: + default: 80 + description: This is the port the NodeBalancer listens on for this configuration. Port numbers need to be unique across TCP, HTTP, and HTTPS configurations on a single NodeBalancer. However, ports assigned to TCP, HTTP, or HTTPS configurations can also be reused for UDP configurations. For example, Port 80 can simultaneously serve a TCP and a UDP configuration on the same NodeBalancer, but it can't be shared by both a TCP and an HTTP configuration. Although certain ports are traditionally associated with specific protocols, this is not strictly enforced. You may configure your NodeBalancer however is useful to you. + example: 80 + maximum: 65535 + minimum: 1 + type: integer + x-linode-cli-display: 2 + protocol: + default: http + description: |- + The protocol the port is configured to serve, `http` in this case. + Review our guide on [Available protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols) for information on protocol features. + enum: + - http + example: http + type: string + x-linode-cli-display: 3 + proxy_protocol: + default: none + description: __Read-only__ Not applicable for HTTP configs. + example: none + readOnly: true + type: string + ssl_cert: + description: __Read-only__ Not applicable for HTTP configs. + example: null nullable: true + readOnly: true type: string ssl_commonname: - description: __Read-only__ The read-only common name automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig. - example: www.example.com + description: __Read-only__ Not applicable for HTTP configs. + example: '' readOnly: true type: string x-linode-cli-display: 8 ssl_fingerprint: - description: __Read-only__ The read-only SHA1-encoded fingerprint automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig. - example: 00:01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12:13 + description: __Read-only__ Not applicable for HTTP configs. + example: '' readOnly: true type: string x-linode-cli-display: 9 ssl_key: - description: |- - The PEM-formatted private key for the SSL certificate set in the `ssl_cert` field. - - Line breaks must be represented as `\n` in the string for requests (but not when using the Linode CLI). - - The contents of this field will not be shown in any responses that display - the NodeBalancerConfig. Instead, `` will be printed where the field - appears. - - The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancerConfig - response are automatically derived from your certificate. Please refer to these fields to - verify that the appropriate certificate was assigned to your NodeBalancerConfig. - example: - format: ssl-key + description: __Read-only__ Not applicable for HTTP configs. + example: null nullable: true + readOnly: true type: string stickiness: - default: none + default: table description: |- Controls how session stickiness is handled on this port. - - If set to `none` connections will always be assigned a backend based on the algorithm configured. - - If set to `table` sessions from the same remote address will be routed to the same backend. - - For HTTP or HTTPS clients, `http_cookie` allows sessions to be routed to the same backend based on a cookie set by the NodeBalancer. + - If set to `none`, connections will always be assigned a backend based on the algorithm configured. + - If set to `table`, sessions from the same remote address will be routed to the same backend. + - If set to `http_cookie`, sessions are routed to the same backend based on a cookie set by the NodeBalancer. enum: - none - table @@ -72134,144 +72987,310 @@ paths: example: http_cookie type: string x-linode-cli-display: 5 + required: + - nodes + title: HTTP type: object x-akamai: - file-path: schemas/node-balancer-config.yaml - x-example: - x-ref: ../examples/get-node-balancer-config-200.json - description: The requested NodeBalancer config. - default: - content: - application/json: - schema: - additionalProperties: false + file-path: schemas/node-balancer-config-http.yaml + - additionalProperties: false + description: A NodeBalancer configuration defines the protocol and settings for a specific port on the NodeBalancer. These fields apply to HTTPS configurations. properties: - errors: + algorithm: + default: roundrobin + description: The algorithm this HTTPS NodeBalancer uses for routing traffic to backends. + enum: + - roundrobin + - leastconn + - source + example: roundrobin + type: string + x-linode-cli-display: 4 + check: + default: none + description: |- + The type of check to perform against backends to ensure they are serving requests. This is used to determine if backends are up or down. + + - If `none` no check is performed. + - `connection` requires only a connection to the backend to succeed. + - `http` and `http_body` rely on the backend serving HTTP, and that the response returned matches what is expected. + enum: + - none + - connection + - http + - http_body + example: http_body + type: string + check_attempts: + default: 3 + description: How many times to attempt a check before considering a backend to be down. + example: 3 + maximum: 30 + minimum: 1 + type: integer + check_body: + description: Use when the active health `check` type is `http_body`. This value must be present in the response body of the check in order for it to pass. If this value is not present in the response body of a check request, the backend is considered to be down. + example: it works + type: string + check_interval: + default: 5 + description: |- + How often, in seconds, to check that backends are up and serving requests. + + Must be greater than `check_timeout`. + example: 90 + maximum: 3600 + minimum: 2 + type: integer + check_passive: + default: true + description: If `true`, any response from this backend with a `5xx` status code will be enough for it to be considered unhealthy and taken out of rotation. + example: true + type: boolean + x-linode-cli-display: 6 + check_path: + description: The URL path to check on each backend. Use when the active health `check` type is `http`. If the backend doesn't respond to this request, it's considered to be down. + example: /test + pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ + type: string + check_timeout: + default: 3 + description: |- + How long, in seconds, to wait for a check attempt before considering it failed. + + Must be less than `check_interval`. + example: 10 + maximum: 30 + minimum: 1 + type: integer + cipher_suite: + default: recommended + description: |- + What ciphers to use for SSL connections served by this NodeBalancer. + + - `legacy` is considered insecure and should only be used if necessary. + enum: + - recommended + - legacy + example: recommended + type: string + x-linode-cli-color: + default_: white + legacy: red + x-linode-cli-display: 7 + id: + description: __Read-only__ This config's unique ID. + example: 5000 + readOnly: true + type: integer + x-linode-cli-display: 1 + nodebalancer_id: + description: __Read-only__ The ID for the NodeBalancer this config belongs to. + example: 12345 + readOnly: true + type: integer + nodes: + description: The NodeBalancer nodes that serve this configuration. items: additionalProperties: false - description: An object for describing a single error that occurred during the processing of a request. + description: A NodeBalancer node represents a single backend serving requests for a single port of a NodeBalancer. Nodes are specific to NodeBalancer configs, and serve traffic over their private IP. If the same Linode is serving traffic for more than one port on the same NodeBalancer, one NodeBalancer node is required for each config (port) it should serve requests on. For example, if you have four backends, and each should respond to both HTTP and HTTPS requests, you will need two NodeBalancer configs (port 80 and port 443) and four backends each, one for each of the Linodes serving requests for that port. properties: - field: - description: The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request. - example: fieldname - type: string - reason: - description: What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully. - example: fieldname must be a valid value + address: + description: The private IP Address where this backend can be reached. This _must_ be a private IP address. + example: 192.168.210.120:80 + format: ip type: string - type: object + x-linode-cli-display: 3 + config_id: + description: __Read-only__ The NodeBalancer Config ID that this Node belongs to. + example: 4567 + readOnly: true + type: integer + id: + description: __Read-only__ This node's unique ID. + example: 54321 + readOnly: true + type: integer + x-linode-cli-display: 1 + label: + description: The label for this node. This is for display purposes only. + example: node54321 + maxLength: 32 + minLength: 3 + pattern: '[a-zA-Z0-9-_.]{3,32}' + type: string + x-linode-cli-display: 2 + mode: + description: |- + The mode this NodeBalancer should use when sending traffic to this backend. + + - If set to `accept` this backend is accepting traffic. + - If set to `reject` this backend will not receive traffic. + - If set to `drain` this backend will not receive _new_ traffic, but connections already pinned to it will continue to be routed to it. + - If set to `backup`, this backend will only receive traffic if all `accept` nodes are down. + enum: + - accept + - reject + - drain + - backup + example: accept + type: string + x-linode-cli-display: 6 + nodebalancer_id: + description: __Read-only__ The NodeBalancer ID that this Node belongs to. + example: 12345 + readOnly: true + type: integer + status: + description: __Read-only__ The current status of this node, based on the configured checks of its NodeBalancer Config. + enum: + - unknown + - UP + - DOWN + example: UP + readOnly: true + type: string + x-linode-cli-color: + DOWN: red + UP: green + default_: white + unknown: yellow + x-linode-cli-display: 4 + weight: + description: Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. + example: 50 + maximum: 255 + minimum: 1 + type: integer + x-linode-cli-display: 5 + title: TCP, HTTP, or HTTPS config x-akamai: - file-path: schemas/error-object.yaml + file-path: schemas/node-balancer-node-tcp-http-https.yaml type: array - type: object - description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes. - security: - - personalAccessToken: [] - - oauth: - - nodebalancers:read_only - summary: Get a config - tags: - - NodeBalancers - x-akamai: - tabs: - - syntax: |- - linode-cli nodebalancers config-view \ - 12345 4567 - title: CLI - url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli - - syntax: nodebalancers:read_only - title: OAuth scopes - url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth - x-linode-cli-action: config-view - x-linode-grant: read_only - parameters: - - description: __Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta. - in: path - name: apiVersion - required: true - schema: - enum: - - v4 - - v4beta - type: string - x-akamai: - file-path: parameters/api-version-path.yaml - - description: The ID of the NodeBalancer to access. - in: path - name: nodeBalancerId - required: true - schema: - type: integer - x-akamai: - file-path: parameters/node-balancer-id.yaml - - description: The ID of the Config to access. - in: path - name: configId - required: true - schema: - example: 521 - type: integer - x-akamai: - file-path: parameters/config-id.yaml - put: - description: |- - Updates the configuration for a single port on a NodeBalancer. + nodes_status: + additionalProperties: false + description: __Read-only__ Describes the health of the backends for this port. This data updates periodically as checks are performed against backends. + properties: + down: + description: __Read-only__ The number of backends considered to be `DOWN` and unhealthy. These are not in rotation, and not serving requests. + example: 0 + readOnly: true + type: integer + up: + description: __Read-only__ The number of backends considered to be `UP` and healthy, and that are serving requests. + example: 4 + readOnly: true + type: integer + readOnly: true + type: object + x-linode-cli-display: 10 + port: + default: 80 + description: This is the port the NodeBalancer listens on for this configuration. Port numbers must be unique across TCP, HTTP, and HTTPS configurations on a single NodeBalancer. However, ports assigned to TCP, HTTP, or HTTPS configurations can also be reused for UDP configurations. For example, Port 80 can simultaneously serve a TCP and a UDP configuration on the same NodeBalancer, but it can't be shared by both a TCP and an HTTP configuration. Although certain ports are traditionally associated with specific protocols, this isn't strictly enforced, and you may configure your NodeBalancer however you find useful. + example: 443 + maximum: 65535 + minimum: 1 + type: integer + x-linode-cli-display: 2 + protocol: + default: http + description: |- + The protocol the port is configured to serve, `https` in this case. + - The `https` protocol is mutually required with `ssl_cert` and `ssl_key`. - <> + Review our guide on [Available protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols) for information on protocol features. + enum: + - https + example: https + type: string + x-linode-cli-display: 3 + proxy_protocol: + default: none + description: __Read-only__ Not applicable for HTTPS configs. + example: none + readOnly: true + type: string + ssl_cert: + description: |2- - --- + The PEM-formatted public SSL certificate (or the combined PEM-formatted SSL certificate and Certificate Authority chain) that should be served on this NodeBalancerConfig's port. + Line breaks must be represented as `\n` in the string for requests (but not when using the Linode CLI). - - __CLI__. + [Diffie-Hellman Parameters](https://www.linode.com/docs/products/networking/nodebalancers/guides/ssl-termination/#diffie-hellman-parameters) can be included in this value to enable forward secrecy. - ``` - linode-cli nodebalancers config-update \ - 12345 4567 \ - --port 443 \ - --protocol https \ - --algorithm roundrobin \ - --stickiness http_cookie \ - --check http_body \ - --check_interval 90 \ - --check_timeout 10 \ - --check_attempts 3 \ - --check_path "/test" \ - --check_body "it works" \ - --check_passive true \ - --proxy_protocol "none" \ - --ssl_cert "-----BEGIN CERTIFICATE----- - CERTIFICATE_INFORMATION - -----END CERTIFICATE-----" \ - --ssl_key "-----BEGIN PRIVATE KEY----- - PRIVATE_KEY_INFORMATION - -----END PRIVATE KEY-----" \ - --cipher_suite recommended - ``` + The contents of this field will not be shown in any responses that display the NodeBalancerConfig. Instead, `` will be printed where the field appears. - [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) + The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancerConfig response are automatically derived from your certificate. Please refer to these fields to verify that the appropriate certificate was assigned to your NodeBalancerConfig. + example: + format: ssl-cert + nullable: true + type: string + ssl_commonname: + description: __Read-only__ The read-only common name automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig. + example: www.example.com + readOnly: true + type: string + x-linode-cli-display: 8 + ssl_fingerprint: + description: __Read-only__ The read-only SHA1-encoded fingerprint automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig. + example: 00:01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12:13 + readOnly: true + type: string + x-linode-cli-display: 9 + ssl_key: + description: |- + The PEM-formatted private key for the SSL certificate set in the `ssl_cert` field. - - __OAuth scopes__. + Line breaks must be represented as `\n` in the string for requests (but not when using the Linode CLI). - ``` - nodebalancers:read_write - ``` + The contents of this field will not be shown in any responses that display + the NodeBalancerConfig. Instead, `` will be printed where the field + appears. - [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - externalDocs: - description: See documentation for this operation in Akamai's Linode API - url: https://techdocs.akamai.com/linode-api/reference/put-node-balancer-config - operationId: put-node-balancer-config - requestBody: - content: - application/json: - schema: + The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancerConfig + response are automatically derived from your certificate. Please refer to these fields to + verify that the appropriate certificate was assigned to your NodeBalancerConfig. + example: + format: ssl-key + nullable: true + type: string + stickiness: + default: table + description: |- + Controls how session stickiness is handled on this port. + + - If set to `none`, connections will always be assigned a backend based on the algorithm configured. + - If set to `table`, sessions from the same remote address will be routed to the same backend. + - For HTTP or HTTPS clients, `http_cookie` allows sessions to be routed to the same backend based on a cookie set by the NodeBalancer. + enum: + - none + - table + - http_cookie + example: http_cookie + type: string + x-linode-cli-display: 5 + required: + - nodes + title: HTTPS + type: object + x-akamai: + file-path: schemas/node-balancer-config-https.yaml + x-akamai: + file-path: schemas/node-balancer-config.yaml + x-example: + x-ref: ../examples/post-node-balancer-config.json + x-linode-cli-use-schema: additionalProperties: false - description: A NodeBalancer config represents the configuration of this NodeBalancer on a single port. For example, a NodeBalancer Config on port 80 would typically represent how this NodeBalancer response to HTTP requests. NodeBalancer configs have a list of backends, called "nodes," that they forward requests between based on their configuration. properties: algorithm: default: roundrobin - description: What algorithm this NodeBalancer should use for routing traffic to backends. + description: |- + The algorithm this NodeBalancer should use to route traffic to backends. + - If set to `roundrobin`, connections are allocated in a weighted circular order across the backends. + - If set to `leastconn`, allocates new connections to the backend with the least connections. + - If set to `source`, allocates the client's IP to the same backend on subsequent requests. Session `stickiness` affects this algorithm. enum: - roundrobin - leastconn @@ -72282,11 +73301,11 @@ paths: check: default: none description: |- - The type of check to perform against backends to ensure they are serving requests. This is used to determine if backends are up or down. - - - If `none` no check is performed. - - `connection` requires only a connection to the backend to succeed. - - `http` and `http_body` rely on the backend serving HTTP, and that the response returned matches what is expected. + The type of check to perform against backends to ensure they're serving requests. This determines if backends are up or down. + - If `none`, no check is performed. + - If `connection`, requires a successful TCP handshake with a backend node. + - If `http`, requires a 2xx or 3xx response from the backend node. + - If `http_body`, requires the provided regular expression matches against the request's result body. enum: - none - connection @@ -72302,7 +73321,7 @@ paths: minimum: 1 type: integer check_body: - description: This value must be present in the response body of the check in order for it to pass. If this value is not present in the response body of a check request, the backend is considered to be down. + description: The check's response body needs to include this value for it to pass. Otherwise the backend is identified as being down. example: it works type: string check_interval: @@ -72320,26 +73339,20 @@ paths: type: boolean x-linode-cli-display: 6 check_path: - description: The URL path to check on each backend. If the backend does not respond to this request it is considered to be down. + description: The URL path to check on each backend. If the backend doesn't respond to this request it's considered to be down. example: /test pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ type: string check_timeout: default: 30 - description: |- - How long, in seconds, to wait for a check attempt before considering it failed. - - Must be less than `check_interval`. + description: How long, in seconds, to wait for a check attempt before considering it failed. Must be less than `check_interval`. example: 10 maximum: 30 minimum: 1 type: integer cipher_suite: default: recommended - description: |- - What ciphers to use for SSL connections served by this NodeBalancer. - - - `legacy` is considered insecure and should only be used if necessary. + description: What ciphers to use for SSL connections served by this NodeBalancer. The `legacy` cipher is considered insecure and should only be used if necessary. For information on recommended and legacy ciphers, see [TLS cipher suites](https://techdocs.akamai.com/cloud-computing/docs/tls-ssl-termination-on-nodebalancers#tls-cipher-suites). enum: - recommended - legacy @@ -72356,21 +73369,21 @@ paths: type: integer x-linode-cli-display: 1 nodebalancer_id: - description: __Read-only__ The ID for the NodeBalancer this config belongs to. + description: __Read-only__ Identifies the NodeBalancer this config belongs to. example: 12345 readOnly: true type: integer nodes_status: additionalProperties: false - description: __Read-only__ A structure containing information about the health of the backends for this port. This information is updated periodically as checks are performed against backends. + description: __Read-only__ Information about the health of the backends for this port. It's updated periodically as checks are performed against backends. properties: down: - description: __Read-only__ The number of backends considered to be "DOWN" and unhealthy. These are not in rotation, and not serving requests. + description: __Read-only__ The number of backends considered to be `DOWN` and unhealthy. These are not in rotation, and not serving requests. example: 0 readOnly: true type: integer up: - description: __Read-only__ The number of backends considered to be "UP" and healthy, and that are serving requests. + description: __Read-only__ The number of backends considered to be `UP` and healthy, and that are serving requests. example: 4 readOnly: true type: integer @@ -72379,7 +73392,7 @@ paths: x-linode-cli-display: 10 port: default: 80 - description: The port this Config is for. These values must be unique across configs on a single NodeBalancer (you can't have two configs for port 80, for example). While some ports imply some protocols, no enforcement is done and you may configure your NodeBalancer however is useful to you. For example, while port 443 is generally used for HTTPS, you do not need SSL configured to have a NodeBalancer listening on port 443. + description: The port for this config. Ports need to be unique across configs for each NodeBalancer. For example, you can't have two configs for port 80. While some protocols are typically assigned specific ports, there's no enforcement, and you can configure your NodeBalancer however you find useful. For example, while port 443 is generally used for HTTPS, you don't need SSL configured to have a NodeBalancer listening on port 443. example: 80 maximum: 65535 minimum: 1 @@ -72390,9 +73403,9 @@ paths: description: |- The protocol this port is configured to serve. - - The `http` and `tcp` protocols do not support `ssl_cert` and `ssl_key`. + - The `http` and `tcp` protocols don't support `ssl_cert` and `ssl_key`. - - The `https` protocol is mutually required with `ssl_cert` and `ssl_key`. + - For the `https` protocol, you need `ssl_cert` and `ssl_key`. Review our guide on [Available Protocols](https://www.linode.com/docs/products/networking/nodebalancers/guides/protocols/) for information on protocol features. enum: @@ -72405,9 +73418,9 @@ paths: proxy_protocol: default: none description: |- - 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. + ProxyProtocol is a TCP extension that sends initial TCP connection information such as source IPs, destination IPs, and ports to backend devices. This information would be lost otherwise. Backend devices must be configured to work with ProxyProtocol if enabled. - - If omitted, or set to `none`, the NodeBalancer doesn't send any auxiliary data over TCP connections. This is the default. + - If omitted or set to `none`, the NodeBalancer doesn't send any auxiliary data over TCP connections. The default is `none`. - If set to `v1`, the human-readable header format (Version 1) is used. Requires `tcp` protocol. - If set to `v2`, the binary header format (Version 2) is used. Requires `tcp` protocol. enum: @@ -72417,29 +73430,28 @@ paths: example: none type: string ssl_cert: - description: |2- - - The PEM-formatted public SSL certificate (or the combined PEM-formatted SSL certificate and Certificate Authority chain) that should be served on this NodeBalancerConfig's port. + description: |- + The PEM-formatted public SSL certificate (or the combined PEM-formatted SSL certificate and Certificate Authority chain) that should be served on this NodeBalancer config's port. - Line breaks must be represented as `\n` in the string for requests (but not when using the Linode CLI). + Line breaks must be represented as `\n` in the string for API requests, but not when using the Linode CLI. - [Diffie-Hellman Parameters](https://www.linode.com/docs/products/networking/nodebalancers/guides/ssl-termination/#diffie-hellman-parameters) can be included in this value to enable forward secrecy. + You can include [Diffie-Hellman parameters](https://www.linode.com/docs/products/networking/nodebalancers/guides/ssl-termination/#diffie-hellman-parameters) in this value to enable forward secrecy. - The contents of this field will not be shown in any responses that display the NodeBalancerConfig. Instead, `` will be printed where the field appears. + The provided field don't appear in any responses that display the NodeBalancer config. It's replaced with ``. - The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancerConfig response are automatically derived from your certificate. Please refer to these fields to verify that the appropriate certificate was assigned to your NodeBalancerConfig. + The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancer config response are automatically derived from your certificate. Please refer to these fields to verify that the appropriate certificate was assigned to your config. example: format: ssl-cert nullable: true type: string ssl_commonname: - description: __Read-only__ The read-only common name automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig. + description: __Read-only__ The read-only common name automatically derived from the SSL certificate assigned to this NodeBalancer config. Please refer to this field to verify that the appropriate certificate is assigned to your config. example: www.example.com readOnly: true type: string x-linode-cli-display: 8 ssl_fingerprint: - description: __Read-only__ The read-only SHA1-encoded fingerprint automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig. + description: __Read-only__ The read-only SHA1-encoded fingerprint automatically derived from the SSL certificate assigned to this NodeBalancer config. Please refer to this field to verify that the appropriate certificate is assigned to your config. example: 00:01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12:13 readOnly: true type: string @@ -72448,7 +73460,7 @@ paths: description: |- The PEM-formatted private key for the SSL certificate set in the `ssl_cert` field. - Line breaks must be represented as `\n` in the string for requests (but not when using the Linode CLI). + Line breaks must be represented as `\n` in the string for API requests, but not when using the Linode CLI. The contents of this field will not be shown in any responses that display the NodeBalancerConfig. Instead, `` will be printed where the field @@ -72465,9 +73477,8 @@ paths: default: none description: |- Controls how session stickiness is handled on this port. - - - If set to `none` connections will always be assigned a backend based on the algorithm configured. - - If set to `table` sessions from the same remote address will be routed to the same backend. + - If set to `none`, connections are always assigned a backend based on the algorithm configured. + - If set to `table`, sessions from the same remote address are routed to the same backend. - For HTTP or HTTPS clients, `http_cookie` allows sessions to be routed to the same backend based on a cookie set by the NodeBalancer. enum: - none @@ -72478,158 +73489,959 @@ paths: x-linode-cli-display: 5 type: object x-akamai: - file-path: schemas/node-balancer-config.yaml - x-example: - x-ref: ../examples/put-node-balancer-config.json - description: The fields to update. - required: true + file-path: schemas/node-balancer-config-cli.yaml + description: NodeBalancer configuration details for the port based on the routing protocol. responses: '200': content: application/json: schema: - additionalProperties: false - description: A NodeBalancer config represents the configuration of this NodeBalancer on a single port. For example, a NodeBalancer Config on port 80 would typically represent how this NodeBalancer response to HTTP requests. NodeBalancer configs have a list of backends, called "nodes," that they forward requests between based on their configuration. - properties: - algorithm: - default: roundrobin - description: What algorithm this NodeBalancer should use for routing traffic to backends. - enum: - - roundrobin - - leastconn - - source - example: roundrobin - type: string - x-linode-cli-display: 4 - check: - default: none - description: |- - The type of check to perform against backends to ensure they are serving requests. This is used to determine if backends are up or down. + description: NodeBalancer `config` options for each protocol. + oneOf: + - additionalProperties: false + description: A NodeBalancer configuration defines the protocol and settings for a specific port on the NodeBalancer. These fields apply to TCP configurations. + properties: + algorithm: + default: roundrobin + description: The algorithm this TCP NodeBalancer uses to route traffic to backends. + enum: + - roundrobin + - leastconn + - source + example: leastconn + type: string + x-linode-cli-display: 4 + check: + default: none + description: |- + The type of check to perform against backends to ensure they are serving requests. This is used to determine if backends are up or down. - - If `none` no check is performed. - - `connection` requires only a connection to the backend to succeed. - - `http` and `http_body` rely on the backend serving HTTP, and that the response returned matches what is expected. - enum: - - none - - connection - - http - - http_body - example: http_body - type: string - check_attempts: - default: 3 - description: How many times to attempt a check before considering a backend to be down. - example: 3 - maximum: 30 - minimum: 1 - type: integer - check_body: - description: This value must be present in the response body of the check in order for it to pass. If this value is not present in the response body of a check request, the backend is considered to be down. - example: it works - type: string - check_interval: - default: 31 - description: |- - How often, in seconds, to check that backends are up and serving requests. + - If `none`, no check is performed. + - `connection` requires only a connection to the backend to succeed. + - `http` and `http_body` rely on the backend serving HTTP, and that the response returned matches what is expected. + enum: + - none + - connection + - http + - http_body + example: http_body + type: string + check_attempts: + default: 3 + description: How many times to attempt a check before considering a backend to be down. + example: 3 + maximum: 30 + minimum: 1 + type: integer + check_body: + description: This value must be present in the response body of the check in order for it to pass. If this value is not present in the response body of a check request, the backend is considered to be down. + example: it works + type: string + check_interval: + default: 5 + description: |- + How often, in seconds, to check that backends are up and serving requests. - Must be greater than `check_timeout`. - example: 90 - type: integer - check_passive: - default: true - description: If `true`, any response from this backend with a `5xx` status code will be enough for it to be considered unhealthy and taken out of rotation. - example: true - type: boolean - x-linode-cli-display: 6 - check_path: - description: The URL path to check on each backend. If the backend does not respond to this request it is considered to be down. - example: /test - pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ - type: string - check_timeout: - default: 30 - description: |- - How long, in seconds, to wait for a check attempt before considering it failed. + Must be greater than `check_timeout`. + example: 90 + maximum: 3600 + minimum: 2 + type: integer + check_passive: + default: true + description: If `true`, any response from this backend with a `5xx` status code will be enough for it to be considered unhealthy and taken out of rotation. + example: true + type: boolean + x-linode-cli-display: 6 + check_path: + description: The URL path to check on each backend. If the backend does not respond to this request it is considered to be down. + example: /test + pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ + type: string + check_timeout: + default: 30 + description: |- + How long, in seconds, to wait for a check attempt before considering it failed. - Must be less than `check_interval`. - example: 10 - maximum: 30 - minimum: 1 - type: integer - cipher_suite: - default: recommended - description: |- - What ciphers to use for SSL connections served by this NodeBalancer. + Must be less than `check_interval`. + example: 10 + maximum: 30 + minimum: 1 + type: integer + cipher_suite: + description: __Read-only__ Not applicable for HTTP configs. + example: recommended + readOnly: true + type: string + x-linode-cli-color: + default_: white + legacy: red + x-linode-cli-display: 7 + id: + description: __Read-only__ This config's unique ID. + example: 6000 + readOnly: true + type: integer + x-linode-cli-display: 1 + nodebalancer_id: + description: __Read-only__ The ID for the NodeBalancer this config belongs to. + example: 12345 + readOnly: true + type: integer + nodes: + description: The NodeBalancer nodes that serve this configuration. + items: + additionalProperties: false + description: A NodeBalancer node represents a single backend serving requests for a single port of a NodeBalancer. Nodes are specific to NodeBalancer configs, and serve traffic over their private IP. If the same Linode is serving traffic for more than one port on the same NodeBalancer, one NodeBalancer node is required for each config (port) it should serve requests on. For example, if you have four backends, and each should respond to both HTTP and HTTPS requests, you will need two NodeBalancer configs (port 80 and port 443) and four backends each, one for each of the Linodes serving requests for that port. + properties: + address: + description: The private IP Address where this backend can be reached. This _must_ be a private IP address. + example: 192.168.210.120:80 + format: ip + type: string + x-linode-cli-display: 3 + config_id: + description: __Read-only__ The NodeBalancer Config ID that this Node belongs to. + example: 4567 + readOnly: true + type: integer + id: + description: __Read-only__ This node's unique ID. + example: 54321 + readOnly: true + type: integer + x-linode-cli-display: 1 + label: + description: The label for this node. This is for display purposes only. + example: node54321 + maxLength: 32 + minLength: 3 + pattern: '[a-zA-Z0-9-_.]{3,32}' + type: string + x-linode-cli-display: 2 + mode: + description: |- + The mode this NodeBalancer should use when sending traffic to this backend. - - `legacy` is considered insecure and should only be used if necessary. - enum: - - recommended - - legacy - example: recommended - type: string - x-linode-cli-color: - default_: white - legacy: red - x-linode-cli-display: 7 - id: - description: __Read-only__ This config's unique ID. - example: 4567 - readOnly: true - type: integer - x-linode-cli-display: 1 - nodebalancer_id: - description: __Read-only__ The ID for the NodeBalancer this config belongs to. - example: 12345 - readOnly: true - type: integer - nodes_status: - additionalProperties: false - description: __Read-only__ A structure containing information about the health of the backends for this port. This information is updated periodically as checks are performed against backends. - properties: - down: - description: __Read-only__ The number of backends considered to be "DOWN" and unhealthy. These are not in rotation, and not serving requests. - example: 0 - readOnly: true - type: integer - up: - description: __Read-only__ The number of backends considered to be "UP" and healthy, and that are serving requests. - example: 4 - readOnly: true - type: integer - readOnly: true - type: object - x-linode-cli-display: 10 - port: - default: 80 - description: The port this Config is for. These values must be unique across configs on a single NodeBalancer (you can't have two configs for port 80, for example). While some ports imply some protocols, no enforcement is done and you may configure your NodeBalancer however is useful to you. For example, while port 443 is generally used for HTTPS, you do not need SSL configured to have a NodeBalancer listening on port 443. - example: 80 - maximum: 65535 - minimum: 1 - type: integer - x-linode-cli-display: 2 - protocol: - default: http - description: |- - The protocol this port is configured to serve. + - If set to `accept` this backend is accepting traffic. + - If set to `reject` this backend will not receive traffic. + - If set to `drain` this backend will not receive _new_ traffic, but connections already pinned to it will continue to be routed to it. + - If set to `backup`, this backend will only receive traffic if all `accept` nodes are down. + enum: + - accept + - reject + - drain + - backup + example: accept + type: string + x-linode-cli-display: 6 + nodebalancer_id: + description: __Read-only__ The NodeBalancer ID that this Node belongs to. + example: 12345 + readOnly: true + type: integer + status: + description: __Read-only__ The current status of this node, based on the configured checks of its NodeBalancer Config. + enum: + - unknown + - UP + - DOWN + example: UP + readOnly: true + type: string + x-linode-cli-color: + DOWN: red + UP: green + default_: white + unknown: yellow + x-linode-cli-display: 4 + weight: + description: Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. + example: 50 + maximum: 255 + minimum: 1 + type: integer + x-linode-cli-display: 5 + title: TCP, HTTP, or HTTPS config + x-akamai: + file-path: schemas/node-balancer-node-tcp-http-https.yaml + type: array + nodes_status: + additionalProperties: false + description: __Read-only__ Describes the health of the backends for this port. This data updates periodically as checks are performed against backends. + properties: + down: + description: __Read-only__ The number of backends considered to be `DOWN` and unhealthy. These are not in rotation, and not serving requests. + example: 0 + readOnly: true + type: integer + up: + description: __Read-only__ The number of backends considered to be `UP` and healthy, and that are serving requests. + example: 4 + readOnly: true + type: integer + readOnly: true + type: object + x-linode-cli-display: 10 + port: + default: 80 + description: This is the port the NodeBalancer listens on for this configuration. Port numbers must be unique across TCP, HTTP, and HTTPS configurations on a single NodeBalancer. However, ports assigned to TCP, HTTP, or HTTPS configurations can also be reused for UDP configurations. For example, Port 80 can simultaneously serve a TCP and a UDP configuration on the same NodeBalancer, but it can't be shared by both a TCP and an HTTP configuration. Although certain ports are traditionally associated with specific protocols, this isn't strictly enforced, and you may configure your NodeBalancer however you find useful. + example: 22 + maximum: 65535 + minimum: 1 + type: integer + x-linode-cli-display: 2 + protocol: + default: http + description: |- + The protocol the port is configured to serve, `tcp` in this case. - - The `http` and `tcp` protocols do not support `ssl_cert` and `ssl_key`. + Review our guide on [Available protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols) for information on protocol features. + enum: + - tcp + example: tcp + type: string + x-linode-cli-display: 3 + proxy_protocol: + default: none + description: |- + Proxy protocol is a TCP extension that sends initial TCP connection information such as source or destination IPs and ports to backend devices. Proxy protocol preserves initial TCP information that would be lost otherwise. Backend devices must be configured to work with `proxy_protocol` if enabled. - - The `https` protocol is mutually required with `ssl_cert` and `ssl_key`. + - If omitted, or set to `none`, the NodeBalancer doesn't send any auxiliary data over TCP connections. This is the default. + - If set to `v1`, the human-readable header format (Version 1) is used. Requires `tcp` protocol. + - If set to `v2`, the binary header format (Version 2) is used. Requires `tcp` protocol. + enum: + - none + - v1 + - v2 + example: none + type: string + ssl_cert: + description: __Read-only__ Not applicable for TCP configs. + example: null + nullable: true + readOnly: true + type: string + ssl_commonname: + description: __Read-only__ Not applicable for TCP configs. + example: '' + readOnly: true + type: string + x-linode-cli-display: 8 + ssl_fingerprint: + description: __Read-only__ Not applicable for TCP configs. + example: '' + readOnly: true + type: string + x-linode-cli-display: 9 + ssl_key: + description: __Read-only__ Not applicable for HTTP configs. + example: null + nullable: true + readOnly: true + type: string + stickiness: + default: none + description: |- + __Read-only__ Controls how session stickiness is handled on this port. - Review our guide on [Available Protocols](https://www.linode.com/docs/products/networking/nodebalancers/guides/protocols/) for information on protocol features. - enum: - - http - - https - - tcp - example: http - type: string - x-linode-cli-display: 3 - proxy_protocol: - default: none - description: |- - 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. + Not applicable to TCP configurations. + enum: + - none + - table + - http_cookie + example: none + readOnly: true + type: string + x-linode-cli-display: 5 + required: + - nodes + title: TCP + type: object + x-akamai: + file-path: schemas/node-balancer-config-tcp.yaml + - additionalProperties: false + description: A NodeBalancer configuration defines the protocol and settings for a specific port on the NodeBalancer. These fields apply to HTTP configurations. + properties: + algorithm: + default: roundrobin + description: The algorithm this HTTP NodeBalancer uses for routing traffic to backends. + enum: + - roundrobin + - leastconn + - source + example: roundrobin + type: string + x-linode-cli-display: 4 + check: + default: none + description: |- + The type of check to perform against backends to ensure they are serving requests. This determines if backends are up or down. - - If omitted, or set to `none`, the NodeBalancer doesn't send any auxiliary data over TCP connections. This is the default. + - If `none`, no check is performed. + - `connection` requires only a connection to the backend to succeed. + - `http` and `http_body` rely on the backend serving HTTP, and that the response returned matches what is expected. + enum: + - none + - connection + - http + - http_body + example: http_body + type: string + check_attempts: + default: 3 + description: How many times to attempt a check before considering a backend to be down. + example: 3 + maximum: 30 + minimum: 1 + type: integer + check_body: + description: Use when the active health `check` type is `http_body`. This value must be present in the response body of the check in order for it to pass. If this value is not present in the response body of a check request, the backend is considered to be down. + example: it works + type: string + check_interval: + default: 5 + description: |- + How often, in seconds, to check that backends are up and serving requests. + + Must be greater than `check_timeout`. + example: 90 + maximum: 3600 + minimum: 2 + type: integer + check_passive: + default: true + description: If `true`, any response from this backend with a `5xx` status code will be enough for it to be considered unhealthy and taken out of rotation. + example: true + type: boolean + x-linode-cli-display: 6 + check_path: + description: The URL path to check on each backend. Use when the active health `check` type is `http`. If the backend doesn't respond to this request, it's considered to be down. + example: /test + pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ + type: string + check_timeout: + default: 3 + description: |- + How long, in seconds, to wait for a check attempt before considering it failed. + + Must be less than `check_interval`. + example: 10 + maximum: 30 + minimum: 1 + type: integer + cipher_suite: + description: __Read-only__ Not applicable for HTTP configs. + example: recommended + readOnly: true + type: string + x-linode-cli-color: + default_: white + legacy: red + x-linode-cli-display: 7 + id: + description: __Read-only__ This config's unique ID. + example: 4000 + readOnly: true + type: integer + x-linode-cli-display: 1 + nodebalancer_id: + description: __Read-only__ Identifies the NodeBalancer this config belongs to. + example: 12345 + readOnly: true + type: integer + nodes: + description: The NodeBalancer nodes that serve this configuration. + items: + additionalProperties: false + description: A NodeBalancer node represents a single backend serving requests for a single port of a NodeBalancer. Nodes are specific to NodeBalancer configs, and serve traffic over their private IP. If the same Linode is serving traffic for more than one port on the same NodeBalancer, one NodeBalancer node is required for each config (port) it should serve requests on. For example, if you have four backends, and each should respond to both HTTP and HTTPS requests, you will need two NodeBalancer configs (port 80 and port 443) and four backends each, one for each of the Linodes serving requests for that port. + properties: + address: + description: The private IP Address where this backend can be reached. This _must_ be a private IP address. + example: 192.168.210.120:80 + format: ip + type: string + x-linode-cli-display: 3 + config_id: + description: __Read-only__ The NodeBalancer Config ID that this Node belongs to. + example: 4567 + readOnly: true + type: integer + id: + description: __Read-only__ This node's unique ID. + example: 54321 + readOnly: true + type: integer + x-linode-cli-display: 1 + label: + description: The label for this node. This is for display purposes only. + example: node54321 + maxLength: 32 + minLength: 3 + pattern: '[a-zA-Z0-9-_.]{3,32}' + type: string + x-linode-cli-display: 2 + mode: + description: |- + The mode this NodeBalancer should use when sending traffic to this backend. + + - If set to `accept` this backend is accepting traffic. + - If set to `reject` this backend will not receive traffic. + - If set to `drain` this backend will not receive _new_ traffic, but connections already pinned to it will continue to be routed to it. + - If set to `backup`, this backend will only receive traffic if all `accept` nodes are down. + enum: + - accept + - reject + - drain + - backup + example: accept + type: string + x-linode-cli-display: 6 + nodebalancer_id: + description: __Read-only__ The NodeBalancer ID that this Node belongs to. + example: 12345 + readOnly: true + type: integer + status: + description: __Read-only__ The current status of this node, based on the configured checks of its NodeBalancer Config. + enum: + - unknown + - UP + - DOWN + example: UP + readOnly: true + type: string + x-linode-cli-color: + DOWN: red + UP: green + default_: white + unknown: yellow + x-linode-cli-display: 4 + weight: + description: Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. + example: 50 + maximum: 255 + minimum: 1 + type: integer + x-linode-cli-display: 5 + title: TCP, HTTP, or HTTPS config + x-akamai: + file-path: schemas/node-balancer-node-tcp-http-https.yaml + type: array + nodes_status: + additionalProperties: false + description: __Read-only__ Describes the health of the backends for this port. This data updates periodically as checks are performed against backends. + properties: + down: + description: __Read-only__ The number of backends considered to be `DOWN` and unhealthy. These are not in rotation, and not serving requests. + example: 0 + readOnly: true + type: integer + up: + description: __Read-only__ The number of backends considered to be `UP` and healthy, and that are serving requests. + example: 4 + readOnly: true + type: integer + readOnly: true + type: object + x-linode-cli-display: 10 + port: + default: 80 + description: This is the port the NodeBalancer listens on for this configuration. Port numbers need to be unique across TCP, HTTP, and HTTPS configurations on a single NodeBalancer. However, ports assigned to TCP, HTTP, or HTTPS configurations can also be reused for UDP configurations. For example, Port 80 can simultaneously serve a TCP and a UDP configuration on the same NodeBalancer, but it can't be shared by both a TCP and an HTTP configuration. Although certain ports are traditionally associated with specific protocols, this is not strictly enforced. You may configure your NodeBalancer however is useful to you. + example: 80 + maximum: 65535 + minimum: 1 + type: integer + x-linode-cli-display: 2 + protocol: + default: http + description: |- + The protocol the port is configured to serve, `http` in this case. + Review our guide on [Available protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols) for information on protocol features. + enum: + - http + example: http + type: string + x-linode-cli-display: 3 + proxy_protocol: + default: none + description: __Read-only__ Not applicable for HTTP configs. + example: none + readOnly: true + type: string + ssl_cert: + description: __Read-only__ Not applicable for HTTP configs. + example: null + nullable: true + readOnly: true + type: string + ssl_commonname: + description: __Read-only__ Not applicable for HTTP configs. + example: '' + readOnly: true + type: string + x-linode-cli-display: 8 + ssl_fingerprint: + description: __Read-only__ Not applicable for HTTP configs. + example: '' + readOnly: true + type: string + x-linode-cli-display: 9 + ssl_key: + description: __Read-only__ Not applicable for HTTP configs. + example: null + nullable: true + readOnly: true + type: string + stickiness: + default: table + description: |- + Controls how session stickiness is handled on this port. + + - If set to `none`, connections will always be assigned a backend based on the algorithm configured. + - If set to `table`, sessions from the same remote address will be routed to the same backend. + - If set to `http_cookie`, sessions are routed to the same backend based on a cookie set by the NodeBalancer. + enum: + - none + - table + - http_cookie + example: http_cookie + type: string + x-linode-cli-display: 5 + required: + - nodes + title: HTTP + type: object + x-akamai: + file-path: schemas/node-balancer-config-http.yaml + - additionalProperties: false + description: A NodeBalancer configuration defines the protocol and settings for a specific port on the NodeBalancer. These fields apply to HTTPS configurations. + properties: + algorithm: + default: roundrobin + description: The algorithm this HTTPS NodeBalancer uses for routing traffic to backends. + enum: + - roundrobin + - leastconn + - source + example: roundrobin + type: string + x-linode-cli-display: 4 + check: + default: none + description: |- + The type of check to perform against backends to ensure they are serving requests. This is used to determine if backends are up or down. + + - If `none` no check is performed. + - `connection` requires only a connection to the backend to succeed. + - `http` and `http_body` rely on the backend serving HTTP, and that the response returned matches what is expected. + enum: + - none + - connection + - http + - http_body + example: http_body + type: string + check_attempts: + default: 3 + description: How many times to attempt a check before considering a backend to be down. + example: 3 + maximum: 30 + minimum: 1 + type: integer + check_body: + description: Use when the active health `check` type is `http_body`. This value must be present in the response body of the check in order for it to pass. If this value is not present in the response body of a check request, the backend is considered to be down. + example: it works + type: string + check_interval: + default: 5 + description: |- + How often, in seconds, to check that backends are up and serving requests. + + Must be greater than `check_timeout`. + example: 90 + maximum: 3600 + minimum: 2 + type: integer + check_passive: + default: true + description: If `true`, any response from this backend with a `5xx` status code will be enough for it to be considered unhealthy and taken out of rotation. + example: true + type: boolean + x-linode-cli-display: 6 + check_path: + description: The URL path to check on each backend. Use when the active health `check` type is `http`. If the backend doesn't respond to this request, it's considered to be down. + example: /test + pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ + type: string + check_timeout: + default: 3 + description: |- + How long, in seconds, to wait for a check attempt before considering it failed. + + Must be less than `check_interval`. + example: 10 + maximum: 30 + minimum: 1 + type: integer + cipher_suite: + default: recommended + description: |- + What ciphers to use for SSL connections served by this NodeBalancer. + + - `legacy` is considered insecure and should only be used if necessary. + enum: + - recommended + - legacy + example: recommended + type: string + x-linode-cli-color: + default_: white + legacy: red + x-linode-cli-display: 7 + id: + description: __Read-only__ This config's unique ID. + example: 5000 + readOnly: true + type: integer + x-linode-cli-display: 1 + nodebalancer_id: + description: __Read-only__ The ID for the NodeBalancer this config belongs to. + example: 12345 + readOnly: true + type: integer + nodes: + description: The NodeBalancer nodes that serve this configuration. + items: + additionalProperties: false + description: A NodeBalancer node represents a single backend serving requests for a single port of a NodeBalancer. Nodes are specific to NodeBalancer configs, and serve traffic over their private IP. If the same Linode is serving traffic for more than one port on the same NodeBalancer, one NodeBalancer node is required for each config (port) it should serve requests on. For example, if you have four backends, and each should respond to both HTTP and HTTPS requests, you will need two NodeBalancer configs (port 80 and port 443) and four backends each, one for each of the Linodes serving requests for that port. + properties: + address: + description: The private IP Address where this backend can be reached. This _must_ be a private IP address. + example: 192.168.210.120:80 + format: ip + type: string + x-linode-cli-display: 3 + config_id: + description: __Read-only__ The NodeBalancer Config ID that this Node belongs to. + example: 4567 + readOnly: true + type: integer + id: + description: __Read-only__ This node's unique ID. + example: 54321 + readOnly: true + type: integer + x-linode-cli-display: 1 + label: + description: The label for this node. This is for display purposes only. + example: node54321 + maxLength: 32 + minLength: 3 + pattern: '[a-zA-Z0-9-_.]{3,32}' + type: string + x-linode-cli-display: 2 + mode: + description: |- + The mode this NodeBalancer should use when sending traffic to this backend. + + - If set to `accept` this backend is accepting traffic. + - If set to `reject` this backend will not receive traffic. + - If set to `drain` this backend will not receive _new_ traffic, but connections already pinned to it will continue to be routed to it. + - If set to `backup`, this backend will only receive traffic if all `accept` nodes are down. + enum: + - accept + - reject + - drain + - backup + example: accept + type: string + x-linode-cli-display: 6 + nodebalancer_id: + description: __Read-only__ The NodeBalancer ID that this Node belongs to. + example: 12345 + readOnly: true + type: integer + status: + description: __Read-only__ The current status of this node, based on the configured checks of its NodeBalancer Config. + enum: + - unknown + - UP + - DOWN + example: UP + readOnly: true + type: string + x-linode-cli-color: + DOWN: red + UP: green + default_: white + unknown: yellow + x-linode-cli-display: 4 + weight: + description: Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. + example: 50 + maximum: 255 + minimum: 1 + type: integer + x-linode-cli-display: 5 + title: TCP, HTTP, or HTTPS config + x-akamai: + file-path: schemas/node-balancer-node-tcp-http-https.yaml + type: array + nodes_status: + additionalProperties: false + description: __Read-only__ Describes the health of the backends for this port. This data updates periodically as checks are performed against backends. + properties: + down: + description: __Read-only__ The number of backends considered to be `DOWN` and unhealthy. These are not in rotation, and not serving requests. + example: 0 + readOnly: true + type: integer + up: + description: __Read-only__ The number of backends considered to be `UP` and healthy, and that are serving requests. + example: 4 + readOnly: true + type: integer + readOnly: true + type: object + x-linode-cli-display: 10 + port: + default: 80 + description: This is the port the NodeBalancer listens on for this configuration. Port numbers must be unique across TCP, HTTP, and HTTPS configurations on a single NodeBalancer. However, ports assigned to TCP, HTTP, or HTTPS configurations can also be reused for UDP configurations. For example, Port 80 can simultaneously serve a TCP and a UDP configuration on the same NodeBalancer, but it can't be shared by both a TCP and an HTTP configuration. Although certain ports are traditionally associated with specific protocols, this isn't strictly enforced, and you may configure your NodeBalancer however you find useful. + example: 443 + maximum: 65535 + minimum: 1 + type: integer + x-linode-cli-display: 2 + protocol: + default: http + description: |- + The protocol the port is configured to serve, `https` in this case. + + - The `https` protocol is mutually required with `ssl_cert` and `ssl_key`. + + Review our guide on [Available protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols) for information on protocol features. + enum: + - https + example: https + type: string + x-linode-cli-display: 3 + proxy_protocol: + default: none + description: __Read-only__ Not applicable for HTTPS configs. + example: none + readOnly: true + type: string + ssl_cert: + description: |2- + + The PEM-formatted public SSL certificate (or the combined PEM-formatted SSL certificate and Certificate Authority chain) that should be served on this NodeBalancerConfig's port. + + Line breaks must be represented as `\n` in the string for requests (but not when using the Linode CLI). + + [Diffie-Hellman Parameters](https://www.linode.com/docs/products/networking/nodebalancers/guides/ssl-termination/#diffie-hellman-parameters) can be included in this value to enable forward secrecy. + + The contents of this field will not be shown in any responses that display the NodeBalancerConfig. Instead, `` will be printed where the field appears. + + The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancerConfig response are automatically derived from your certificate. Please refer to these fields to verify that the appropriate certificate was assigned to your NodeBalancerConfig. + example: + format: ssl-cert + nullable: true + type: string + ssl_commonname: + description: __Read-only__ The read-only common name automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig. + example: www.example.com + readOnly: true + type: string + x-linode-cli-display: 8 + ssl_fingerprint: + description: __Read-only__ The read-only SHA1-encoded fingerprint automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig. + example: 00:01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12:13 + readOnly: true + type: string + x-linode-cli-display: 9 + ssl_key: + description: |- + The PEM-formatted private key for the SSL certificate set in the `ssl_cert` field. + + Line breaks must be represented as `\n` in the string for requests (but not when using the Linode CLI). + + The contents of this field will not be shown in any responses that display + the NodeBalancerConfig. Instead, `` will be printed where the field + appears. + + The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancerConfig + response are automatically derived from your certificate. Please refer to these fields to + verify that the appropriate certificate was assigned to your NodeBalancerConfig. + example: + format: ssl-key + nullable: true + type: string + stickiness: + default: table + description: |- + Controls how session stickiness is handled on this port. + + - If set to `none`, connections will always be assigned a backend based on the algorithm configured. + - If set to `table`, sessions from the same remote address will be routed to the same backend. + - For HTTP or HTTPS clients, `http_cookie` allows sessions to be routed to the same backend based on a cookie set by the NodeBalancer. + enum: + - none + - table + - http_cookie + example: http_cookie + type: string + x-linode-cli-display: 5 + required: + - nodes + title: HTTPS + type: object + x-akamai: + file-path: schemas/node-balancer-config-https.yaml + x-akamai: + file-path: schemas/node-balancer-config.yaml + x-example: + x-ref: ../examples/post-node-balancer-config-200.json + x-linode-cli-use-schema: + additionalProperties: false + properties: + algorithm: + default: roundrobin + description: |- + The algorithm this NodeBalancer should use to route traffic to backends. + - If set to `roundrobin`, connections are allocated in a weighted circular order across the backends. + - If set to `leastconn`, allocates new connections to the backend with the least connections. + - If set to `source`, allocates the client's IP to the same backend on subsequent requests. Session `stickiness` affects this algorithm. + enum: + - roundrobin + - leastconn + - source + example: roundrobin + type: string + x-linode-cli-display: 4 + check: + default: none + description: |- + The type of check to perform against backends to ensure they're serving requests. This determines if backends are up or down. + - If `none`, no check is performed. + - If `connection`, requires a successful TCP handshake with a backend node. + - If `http`, requires a 2xx or 3xx response from the backend node. + - If `http_body`, requires the provided regular expression matches against the request's result body. + enum: + - none + - connection + - http + - http_body + example: http_body + type: string + check_attempts: + default: 3 + description: How many times to attempt a check before considering a backend to be down. + example: 3 + maximum: 30 + minimum: 1 + type: integer + check_body: + description: The check's response body needs to include this value for it to pass. Otherwise the backend is identified as being down. + example: it works + type: string + check_interval: + default: 31 + description: |- + How often, in seconds, to check that backends are up and serving requests. + + Must be greater than `check_timeout`. + example: 90 + type: integer + check_passive: + default: true + description: If `true`, any response from this backend with a `5xx` status code will be enough for it to be considered unhealthy and taken out of rotation. + example: true + type: boolean + x-linode-cli-display: 6 + check_path: + description: The URL path to check on each backend. If the backend doesn't respond to this request it's considered to be down. + example: /test + pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ + type: string + check_timeout: + default: 30 + description: How long, in seconds, to wait for a check attempt before considering it failed. Must be less than `check_interval`. + example: 10 + maximum: 30 + minimum: 1 + type: integer + cipher_suite: + default: recommended + description: What ciphers to use for SSL connections served by this NodeBalancer. The `legacy` cipher is considered insecure and should only be used if necessary. For information on recommended and legacy ciphers, see [TLS cipher suites](https://techdocs.akamai.com/cloud-computing/docs/tls-ssl-termination-on-nodebalancers#tls-cipher-suites). + enum: + - recommended + - legacy + example: recommended + type: string + x-linode-cli-color: + default_: white + legacy: red + x-linode-cli-display: 7 + id: + description: __Read-only__ This config's unique ID. + example: 4567 + readOnly: true + type: integer + x-linode-cli-display: 1 + nodebalancer_id: + description: __Read-only__ Identifies the NodeBalancer this config belongs to. + example: 12345 + readOnly: true + type: integer + nodes_status: + additionalProperties: false + description: __Read-only__ Information about the health of the backends for this port. It's updated periodically as checks are performed against backends. + properties: + down: + description: __Read-only__ The number of backends considered to be `DOWN` and unhealthy. These are not in rotation, and not serving requests. + example: 0 + readOnly: true + type: integer + up: + description: __Read-only__ The number of backends considered to be `UP` and healthy, and that are serving requests. + example: 4 + readOnly: true + type: integer + readOnly: true + type: object + x-linode-cli-display: 10 + port: + default: 80 + description: The port for this config. Ports need to be unique across configs for each NodeBalancer. For example, you can't have two configs for port 80. While some protocols are typically assigned specific ports, there's no enforcement, and you can configure your NodeBalancer however you find useful. For example, while port 443 is generally used for HTTPS, you don't need SSL configured to have a NodeBalancer listening on port 443. + example: 80 + maximum: 65535 + minimum: 1 + type: integer + x-linode-cli-display: 2 + protocol: + default: http + description: |- + The protocol this port is configured to serve. + + - The `http` and `tcp` protocols don't support `ssl_cert` and `ssl_key`. + + - For the `https` protocol, you need `ssl_cert` and `ssl_key`. + + Review our guide on [Available Protocols](https://www.linode.com/docs/products/networking/nodebalancers/guides/protocols/) for information on protocol features. + enum: + - http + - https + - tcp + example: http + type: string + x-linode-cli-display: 3 + proxy_protocol: + default: none + description: |- + ProxyProtocol is a TCP extension that sends initial TCP connection information such as source IPs, destination IPs, and ports to backend devices. This information would be lost otherwise. Backend devices must be configured to work with ProxyProtocol if enabled. + + - If omitted or set to `none`, the NodeBalancer doesn't send any auxiliary data over TCP connections. The default is `none`. - If set to `v1`, the human-readable header format (Version 1) is used. Requires `tcp` protocol. - If set to `v2`, the binary header format (Version 2) is used. Requires `tcp` protocol. enum: @@ -72639,29 +74451,28 @@ paths: example: none type: string ssl_cert: - description: |2- - - The PEM-formatted public SSL certificate (or the combined PEM-formatted SSL certificate and Certificate Authority chain) that should be served on this NodeBalancerConfig's port. + description: |- + The PEM-formatted public SSL certificate (or the combined PEM-formatted SSL certificate and Certificate Authority chain) that should be served on this NodeBalancer config's port. - Line breaks must be represented as `\n` in the string for requests (but not when using the Linode CLI). + Line breaks must be represented as `\n` in the string for API requests, but not when using the Linode CLI. - [Diffie-Hellman Parameters](https://www.linode.com/docs/products/networking/nodebalancers/guides/ssl-termination/#diffie-hellman-parameters) can be included in this value to enable forward secrecy. + You can include [Diffie-Hellman parameters](https://www.linode.com/docs/products/networking/nodebalancers/guides/ssl-termination/#diffie-hellman-parameters) in this value to enable forward secrecy. - The contents of this field will not be shown in any responses that display the NodeBalancerConfig. Instead, `` will be printed where the field appears. + The provided field don't appear in any responses that display the NodeBalancer config. It's replaced with ``. - The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancerConfig response are automatically derived from your certificate. Please refer to these fields to verify that the appropriate certificate was assigned to your NodeBalancerConfig. + The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancer config response are automatically derived from your certificate. Please refer to these fields to verify that the appropriate certificate was assigned to your config. example: format: ssl-cert nullable: true type: string ssl_commonname: - description: __Read-only__ The read-only common name automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig. + description: __Read-only__ The read-only common name automatically derived from the SSL certificate assigned to this NodeBalancer config. Please refer to this field to verify that the appropriate certificate is assigned to your config. example: www.example.com readOnly: true type: string x-linode-cli-display: 8 ssl_fingerprint: - description: __Read-only__ The read-only SHA1-encoded fingerprint automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig. + description: __Read-only__ The read-only SHA1-encoded fingerprint automatically derived from the SSL certificate assigned to this NodeBalancer config. Please refer to this field to verify that the appropriate certificate is assigned to your config. example: 00:01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12:13 readOnly: true type: string @@ -72670,7 +74481,7 @@ paths: description: |- The PEM-formatted private key for the SSL certificate set in the `ssl_cert` field. - Line breaks must be represented as `\n` in the string for requests (but not when using the Linode CLI). + Line breaks must be represented as `\n` in the string for API requests, but not when using the Linode CLI. The contents of this field will not be shown in any responses that display the NodeBalancerConfig. Instead, `` will be printed where the field @@ -72687,9 +74498,8 @@ paths: default: none description: |- Controls how session stickiness is handled on this port. - - - If set to `none` connections will always be assigned a backend based on the algorithm configured. - - If set to `table` sessions from the same remote address will be routed to the same backend. + - If set to `none`, connections are always assigned a backend based on the algorithm configured. + - If set to `table`, sessions from the same remote address are routed to the same backend. - For HTTP or HTTPS clients, `http_cookie` allows sessions to be routed to the same backend based on a cookie set by the NodeBalancer. enum: - none @@ -72700,10 +74510,8 @@ paths: x-linode-cli-display: 5 type: object x-akamai: - file-path: schemas/node-balancer-config.yaml - x-example: - x-ref: ../examples/get-node-balancer-config-200.json - description: Config updated successfully. + file-path: schemas/node-balancer-config-cli.yaml + description: Config created successfully. default: content: application/json: @@ -72733,14 +74541,13 @@ paths: - personalAccessToken: [] - oauth: - nodebalancers:read_write - summary: Update a config + summary: Create a config tags: - NodeBalancers x-akamai: tabs: - syntax: |- - linode-cli nodebalancers config-update \ - 12345 4567 \ + linode-cli nodebalancers config-create 12345 \ --port 443 \ --protocol https \ --algorithm roundrobin \ @@ -72759,22 +74566,55 @@ paths: --ssl_key "-----BEGIN PRIVATE KEY----- PRIVATE_KEY_INFORMATION -----END PRIVATE KEY-----" \ - --cipher_suite recommended - title: CLI + --cipher_suite recommended \ + title: 'CLI: HTTPS' + url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli + - syntax: |- + linode-cli nodebalancers config-create 12345 \ + --port 80 \ + --protocol tcp \ + --algorithm roundrobin \ + --stickiness none \ + --check http_body \ + --check_interval 90 \ + --check_timeout 10 \ + --check_attempts 3 \ + --check_path "/test" \ + --check_body "it works" \ + --proxy_protocol "v2" + title: 'CLI: TCP' + url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli + - syntax: |- + linode-cli nodebalancers config-create 12345 \ + --port 440 \ + --protocol http \ + --algorithm roundrobin \ + --stickiness http_cookie \ + --check http_body \ + --check_interval 90 \ + --check_timeout 10 \ + --check_attempts 3 \ + --check_path "/test" \ + --check_body "it works" \ + title: 'CLI: HTTP' url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli - syntax: nodebalancers:read_write title: OAuth scopes url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth - x-linode-cli-action: config-update + x-linode-cli-action: config-create x-linode-grant: read_write x-akamai: - file-path: paths/node-balancer-config.yaml - path-info: /{apiVersion}/nodebalancers/{nodeBalancerId}/configs/{configId} + file-path: paths/node-balancer-configs.yaml + path-info: /{apiVersion}/nodebalancers/{nodeBalancerId}/configs x-linode-cli-command: nodebalancers - /{apiVersion}/nodebalancers/{nodeBalancerId}/configs/{configId}/nodes: - get: + /{apiVersion}/nodebalancers/{nodeBalancerId}/configs/{configId}: + delete: description: |- - Returns a paginated list of NodeBalancer nodes associated with this Config. These are the backends that will be sent traffic for this port. + Deletes the Config for a port of this NodeBalancer. + + __This cannot be undone.__ + + Once completed, this NodeBalancer will no longer respond to requests on the given port. This also deletes all associated NodeBalancerNodes, but the Linodes they were routing traffic to will be unchanged and will not be removed. <> @@ -72785,7 +74625,8 @@ paths: - __CLI__. ``` - linode-cli nodebalancers nodes-list 12345 4567 + linode-cli nodebalancers config-delete \ + 12345 4567 ``` [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) @@ -72793,160 +74634,45 @@ paths: - __OAuth scopes__. ``` - nodebalancers:read_only + nodebalancers:read_write ``` [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) externalDocs: description: See documentation for this operation in Akamai's Linode API - url: https://techdocs.akamai.com/linode-api/reference/get-node-balancer-config-nodes - operationId: get-node-balancer-config-nodes - parameters: - - description: The page of a collection to return. - in: query - name: page - required: false - schema: - default: 1 - example: 6 - minimum: 1 - type: integer - x-akamai: - file-path: parameters/page-offset.yaml - - description: The number of items to return per page. - in: query - name: page_size - schema: - default: 100 - example: 50 - maximum: 500 - minimum: 25 - type: integer - x-akamai: - file-path: parameters/page-size.yaml + url: https://techdocs.akamai.com/linode-api/reference/delete-node-balancer-config + operationId: delete-node-balancer-config responses: '200': + content: + application/json: + schema: + description: The API responds with an empty object. + maxProperties: 0 + type: object + x-akamai: + file-path: schemas/added-empty-obj.yaml + x-example: + x-ref: ../examples/delete-node-balancer-config-200.json + description: NodeBalancer Config deleted successfully. + default: content: application/json: schema: additionalProperties: false properties: - data: + errors: items: additionalProperties: false - description: A NodeBalancerNode represents a single backend serving requests for a single port of a NodeBalancer. Nodes are specific to NodeBalancer Configs, and serve traffic over their private IP. If the same Linode is serving traffic for more than one port on the same NodeBalancer, one NodeBalancer Node is required for each config (port) it should serve requests on. For example, if you have four backends, and each should response to both HTTP and HTTPS requests, you will need two NodeBalancerConfigs (port 80 and port 443) and four backends each - one for each of the Linodes serving requests for that port. + description: An object for describing a single error that occurred during the processing of a request. properties: - address: - description: The private IP Address where this backend can be reached. This _must_ be a private IP address. - example: 192.168.210.120:80 - format: ip + field: + description: The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request. + example: fieldname type: string - x-linode-cli-display: 3 - config_id: - description: __Read-only__ The NodeBalancer Config ID that this Node belongs to. - example: 4567 - readOnly: true - type: integer - id: - description: __Read-only__ This node's unique ID. - example: 54321 - readOnly: true - type: integer - x-linode-cli-display: 1 - label: - description: The label for this node. This is for display purposes only. - example: node54321 - maxLength: 32 - minLength: 3 - pattern: '[a-zA-Z0-9-_.]{3,32}' - type: string - x-linode-cli-display: 2 - mode: - description: |- - The mode this NodeBalancer should use when sending traffic to this backend. - - - If set to `accept` this backend is accepting traffic. - - If set to `reject` this backend will not receive traffic. - - If set to `drain` this backend will not receive _new_ traffic, but connections already pinned to it will continue to be routed to it. - - If set to `backup`, this backend will only receive traffic if all `accept` nodes are down. - enum: - - accept - - reject - - drain - - backup - example: accept - type: string - x-linode-cli-display: 6 - nodebalancer_id: - description: __Read-only__ The NodeBalancer ID that this Node belongs to. - example: 12345 - readOnly: true - type: integer - status: - description: __Read-only__ The current status of this node, based on the configured checks of its NodeBalancer Config. - enum: - - unknown - - UP - - DOWN - example: UP - readOnly: true - type: string - x-linode-cli-color: - DOWN: red - UP: green - default_: white - unknown: yellow - x-linode-cli-display: 4 - weight: - description: Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. - example: 50 - maximum: 255 - minimum: 1 - type: integer - x-linode-cli-display: 5 - type: object - x-akamai: - file-path: schemas/node-balancer-node.yaml - type: array - page: - description: __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). - example: 1 - readOnly: true - type: integer - pages: - description: __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). - example: 1 - readOnly: true - type: integer - results: - description: __Read-only__ The total number of results. - example: 1 - readOnly: true - type: integer - type: object - x-akamai: - file-path: schemas/added-get-node-balancer-config-nodes-200.yaml - x-example: - x-ref: ../examples/get-node-balancer-config-nodes-200.json - description: A paginated list of NodeBalancer nodes. - default: - content: - application/json: - schema: - additionalProperties: false - properties: - errors: - items: - additionalProperties: false - description: An object for describing a single error that occurred during the processing of a request. - properties: - field: - description: The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request. - example: fieldname - type: string - reason: - description: What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully. - example: fieldname must be a valid value + reason: + description: What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully. + example: fieldname must be a valid value type: string type: object x-akamai: @@ -72957,52 +74683,25 @@ paths: security: - personalAccessToken: [] - oauth: - - nodebalancers:read_only - summary: List nodes + - nodebalancers:read_write + summary: Delete a config tags: - NodeBalancers x-akamai: tabs: - - syntax: linode-cli nodebalancers nodes-list 12345 4567 + - syntax: |- + linode-cli nodebalancers config-delete \ + 12345 4567 title: CLI url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli - - syntax: nodebalancers:read_only + - syntax: nodebalancers:read_write title: OAuth scopes url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth - x-linode-cli-action: nodes-list - x-linode-grant: read_only - parameters: - - description: __Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta. - in: path - name: apiVersion - required: true - schema: - enum: - - v4 - - v4beta - type: string - x-akamai: - file-path: parameters/api-version-path.yaml - - description: The ID of the NodeBalancer to access. - in: path - name: nodeBalancerId - required: true - schema: - type: integer - x-akamai: - file-path: parameters/node-balancer-id.yaml - - description: The ID of the NodeBalancer config to access. - in: path - name: configId - required: true - schema: - example: 521 - type: integer - x-akamai: - file-path: parameters/config-id-node-balancer.yaml - post: + x-linode-cli-action: config-delete + x-linode-grant: read_write + get: description: |- - Creates a NodeBalancer Node, a backend that can accept traffic for this NodeBalancer Config. Nodes are routed requests on the configured port based on their status. + Returns configuration information for a single port of this NodeBalancer. <> @@ -73013,12 +74712,8 @@ paths: - __CLI__. ``` - linode-cli nodebalancers node-create \ - 12345 4567 \ - --address 192.168.210.120:80 \ - --label node54321 \ - --weight 50 \ - --mode accept + linode-cli nodebalancers config-view \ + 12345 4567 ``` [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) @@ -73026,437 +74721,1035 @@ paths: - __OAuth scopes__. ``` - nodebalancers:read_write + nodebalancers:read_only ``` [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) externalDocs: description: See documentation for this operation in Akamai's Linode API - url: https://techdocs.akamai.com/linode-api/reference/post-node-balancer-node - operationId: post-node-balancer-node - requestBody: - content: - application/json: - schema: - allOf: - - additionalProperties: false - description: A NodeBalancerNode represents a single backend serving requests for a single port of a NodeBalancer. Nodes are specific to NodeBalancer Configs, and serve traffic over their private IP. If the same Linode is serving traffic for more than one port on the same NodeBalancer, one NodeBalancer Node is required for each config (port) it should serve requests on. For example, if you have four backends, and each should response to both HTTP and HTTPS requests, you will need two NodeBalancerConfigs (port 80 and port 443) and four backends each - one for each of the Linodes serving requests for that port. - properties: - address: - description: The private IP Address where this backend can be reached. This _must_ be a private IP address. - example: 192.168.210.120:80 - format: ip - type: string - x-linode-cli-display: 3 - config_id: - description: __Read-only__ The NodeBalancer Config ID that this Node belongs to. - example: 4567 - readOnly: true - type: integer - id: - description: __Read-only__ This node's unique ID. - example: 54321 - readOnly: true - type: integer - x-linode-cli-display: 1 - label: - description: The label for this node. This is for display purposes only. - example: node54321 - maxLength: 32 - minLength: 3 - pattern: '[a-zA-Z0-9-_.]{3,32}' - type: string - x-linode-cli-display: 2 - mode: - description: |- - The mode this NodeBalancer should use when sending traffic to this backend. - - - If set to `accept` this backend is accepting traffic. - - If set to `reject` this backend will not receive traffic. - - If set to `drain` this backend will not receive _new_ traffic, but connections already pinned to it will continue to be routed to it. - - If set to `backup`, this backend will only receive traffic if all `accept` nodes are down. - enum: - - accept - - reject - - drain - - backup - example: accept - type: string - x-linode-cli-display: 6 - nodebalancer_id: - description: __Read-only__ The NodeBalancer ID that this Node belongs to. - example: 12345 - readOnly: true - type: integer - status: - description: __Read-only__ The current status of this node, based on the configured checks of its NodeBalancer Config. - enum: - - unknown - - UP - - DOWN - example: UP - readOnly: true - type: string - x-linode-cli-color: - DOWN: red - UP: green - default_: white - unknown: yellow - x-linode-cli-display: 4 - weight: - description: Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. - example: 50 - maximum: 255 - minimum: 1 - type: integer - x-linode-cli-display: 5 - type: object - x-akamai: - file-path: schemas/node-balancer-node.yaml - required: - - label - - address - x-akamai: - file-path: schemas/added-post-node-balancer-node.yaml - x-example: - x-ref: ../examples/post-node-balancer-node.json - description: Information about the Node to create. - required: true + url: https://techdocs.akamai.com/linode-api/reference/get-node-balancer-config + operationId: get-node-balancer-config responses: '200': content: application/json: schema: - additionalProperties: false - description: A NodeBalancerNode represents a single backend serving requests for a single port of a NodeBalancer. Nodes are specific to NodeBalancer Configs, and serve traffic over their private IP. If the same Linode is serving traffic for more than one port on the same NodeBalancer, one NodeBalancer Node is required for each config (port) it should serve requests on. For example, if you have four backends, and each should response to both HTTP and HTTPS requests, you will need two NodeBalancerConfigs (port 80 and port 443) and four backends each - one for each of the Linodes serving requests for that port. - properties: - address: - description: The private IP Address where this backend can be reached. This _must_ be a private IP address. - example: 192.168.210.120:80 - format: ip - type: string - x-linode-cli-display: 3 - config_id: - description: __Read-only__ The NodeBalancer Config ID that this Node belongs to. - example: 4567 - readOnly: true - type: integer - id: - description: __Read-only__ This node's unique ID. - example: 54321 - readOnly: true - type: integer - x-linode-cli-display: 1 - label: - description: The label for this node. This is for display purposes only. - example: node54321 - maxLength: 32 - minLength: 3 - pattern: '[a-zA-Z0-9-_.]{3,32}' - type: string - x-linode-cli-display: 2 - mode: - description: |- - The mode this NodeBalancer should use when sending traffic to this backend. - - - If set to `accept` this backend is accepting traffic. - - If set to `reject` this backend will not receive traffic. - - If set to `drain` this backend will not receive _new_ traffic, but connections already pinned to it will continue to be routed to it. - - If set to `backup`, this backend will only receive traffic if all `accept` nodes are down. - enum: - - accept - - reject - - drain - - backup - example: accept - type: string - x-linode-cli-display: 6 - nodebalancer_id: - description: __Read-only__ The NodeBalancer ID that this Node belongs to. - example: 12345 - readOnly: true - type: integer - status: - description: __Read-only__ The current status of this node, based on the configured checks of its NodeBalancer Config. - enum: - - unknown - - UP - - DOWN - example: UP - readOnly: true - type: string - x-linode-cli-color: - DOWN: red - UP: green - default_: white - unknown: yellow - x-linode-cli-display: 4 - weight: - description: Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. - example: 50 - maximum: 255 - minimum: 1 - type: integer - x-linode-cli-display: 5 - type: object - x-akamai: - file-path: schemas/node-balancer-node.yaml - x-example: - x-ref: ../examples/post-node-balancer-node-200.json - description: Node created successfully. - default: - content: - application/json: - schema: - additionalProperties: false - properties: - errors: - items: - additionalProperties: false - description: An object for describing a single error that occurred during the processing of a request. - properties: - field: - description: The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request. - example: fieldname - type: string - reason: - description: What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully. - example: fieldname must be a valid value - type: string - type: object - x-akamai: - file-path: schemas/error-object.yaml - type: array - type: object - description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes. - security: - - personalAccessToken: [] - - oauth: - - nodebalancers:read_write - summary: Create a node - tags: - - NodeBalancers - x-akamai: - tabs: - - syntax: |- - linode-cli nodebalancers node-create \ - 12345 4567 \ - --address 192.168.210.120:80 \ - --label node54321 \ - --weight 50 \ - --mode accept - title: CLI - url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli - - syntax: nodebalancers:read_write - title: OAuth scopes - url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth - x-linode-cli-action: node-create - x-linode-grant: read_write - x-akamai: - file-path: paths/nodes.yaml - path-info: /{apiVersion}/nodebalancers/{nodeBalancerId}/configs/{configId}/nodes - x-linode-cli-command: nodebalancers - /{apiVersion}/nodebalancers/{nodeBalancerId}/configs/{configId}/nodes/{nodeId}: - delete: - description: |- - Deletes a Node from this Config. This backend will no longer receive traffic for the configured port of this NodeBalancer. - - This does not change or remove the Linode whose address was used in the creation of this Node. + description: NodeBalancer `config` options for each protocol. + oneOf: + - additionalProperties: false + description: A NodeBalancer configuration defines the protocol and settings for a specific port on the NodeBalancer. These fields apply to TCP configurations. + properties: + algorithm: + default: roundrobin + description: The algorithm this TCP NodeBalancer uses to route traffic to backends. + enum: + - roundrobin + - leastconn + - source + example: leastconn + type: string + x-linode-cli-display: 4 + check: + default: none + description: |- + The type of check to perform against backends to ensure they are serving requests. This is used to determine if backends are up or down. + - If `none`, no check is performed. + - `connection` requires only a connection to the backend to succeed. + - `http` and `http_body` rely on the backend serving HTTP, and that the response returned matches what is expected. + enum: + - none + - connection + - http + - http_body + example: http_body + type: string + check_attempts: + default: 3 + description: How many times to attempt a check before considering a backend to be down. + example: 3 + maximum: 30 + minimum: 1 + type: integer + check_body: + description: This value must be present in the response body of the check in order for it to pass. If this value is not present in the response body of a check request, the backend is considered to be down. + example: it works + type: string + check_interval: + default: 5 + description: |- + How often, in seconds, to check that backends are up and serving requests. - <> + Must be greater than `check_timeout`. + example: 90 + maximum: 3600 + minimum: 2 + type: integer + check_passive: + default: true + description: If `true`, any response from this backend with a `5xx` status code will be enough for it to be considered unhealthy and taken out of rotation. + example: true + type: boolean + x-linode-cli-display: 6 + check_path: + description: The URL path to check on each backend. If the backend does not respond to this request it is considered to be down. + example: /test + pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ + type: string + check_timeout: + default: 30 + description: |- + How long, in seconds, to wait for a check attempt before considering it failed. - --- + Must be less than `check_interval`. + example: 10 + maximum: 30 + minimum: 1 + type: integer + cipher_suite: + description: __Read-only__ Not applicable for HTTP configs. + example: recommended + readOnly: true + type: string + x-linode-cli-color: + default_: white + legacy: red + x-linode-cli-display: 7 + id: + description: __Read-only__ This config's unique ID. + example: 6000 + readOnly: true + type: integer + x-linode-cli-display: 1 + nodebalancer_id: + description: __Read-only__ The ID for the NodeBalancer this config belongs to. + example: 12345 + readOnly: true + type: integer + nodes: + description: The NodeBalancer nodes that serve this configuration. + items: + additionalProperties: false + description: A NodeBalancer node represents a single backend serving requests for a single port of a NodeBalancer. Nodes are specific to NodeBalancer configs, and serve traffic over their private IP. If the same Linode is serving traffic for more than one port on the same NodeBalancer, one NodeBalancer node is required for each config (port) it should serve requests on. For example, if you have four backends, and each should respond to both HTTP and HTTPS requests, you will need two NodeBalancer configs (port 80 and port 443) and four backends each, one for each of the Linodes serving requests for that port. + properties: + address: + description: The private IP Address where this backend can be reached. This _must_ be a private IP address. + example: 192.168.210.120:80 + format: ip + type: string + x-linode-cli-display: 3 + config_id: + description: __Read-only__ The NodeBalancer Config ID that this Node belongs to. + example: 4567 + readOnly: true + type: integer + id: + description: __Read-only__ This node's unique ID. + example: 54321 + readOnly: true + type: integer + x-linode-cli-display: 1 + label: + description: The label for this node. This is for display purposes only. + example: node54321 + maxLength: 32 + minLength: 3 + pattern: '[a-zA-Z0-9-_.]{3,32}' + type: string + x-linode-cli-display: 2 + mode: + description: |- + The mode this NodeBalancer should use when sending traffic to this backend. + - If set to `accept` this backend is accepting traffic. + - If set to `reject` this backend will not receive traffic. + - If set to `drain` this backend will not receive _new_ traffic, but connections already pinned to it will continue to be routed to it. + - If set to `backup`, this backend will only receive traffic if all `accept` nodes are down. + enum: + - accept + - reject + - drain + - backup + example: accept + type: string + x-linode-cli-display: 6 + nodebalancer_id: + description: __Read-only__ The NodeBalancer ID that this Node belongs to. + example: 12345 + readOnly: true + type: integer + status: + description: __Read-only__ The current status of this node, based on the configured checks of its NodeBalancer Config. + enum: + - unknown + - UP + - DOWN + example: UP + readOnly: true + type: string + x-linode-cli-color: + DOWN: red + UP: green + default_: white + unknown: yellow + x-linode-cli-display: 4 + weight: + description: Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. + example: 50 + maximum: 255 + minimum: 1 + type: integer + x-linode-cli-display: 5 + title: TCP, HTTP, or HTTPS config + x-akamai: + file-path: schemas/node-balancer-node-tcp-http-https.yaml + type: array + nodes_status: + additionalProperties: false + description: __Read-only__ Describes the health of the backends for this port. This data updates periodically as checks are performed against backends. + properties: + down: + description: __Read-only__ The number of backends considered to be `DOWN` and unhealthy. These are not in rotation, and not serving requests. + example: 0 + readOnly: true + type: integer + up: + description: __Read-only__ The number of backends considered to be `UP` and healthy, and that are serving requests. + example: 4 + readOnly: true + type: integer + readOnly: true + type: object + x-linode-cli-display: 10 + port: + default: 80 + description: This is the port the NodeBalancer listens on for this configuration. Port numbers must be unique across TCP, HTTP, and HTTPS configurations on a single NodeBalancer. However, ports assigned to TCP, HTTP, or HTTPS configurations can also be reused for UDP configurations. For example, Port 80 can simultaneously serve a TCP and a UDP configuration on the same NodeBalancer, but it can't be shared by both a TCP and an HTTP configuration. Although certain ports are traditionally associated with specific protocols, this isn't strictly enforced, and you may configure your NodeBalancer however you find useful. + example: 22 + maximum: 65535 + minimum: 1 + type: integer + x-linode-cli-display: 2 + protocol: + default: http + description: |- + The protocol the port is configured to serve, `tcp` in this case. - - __CLI__. + Review our guide on [Available protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols) for information on protocol features. + enum: + - tcp + example: tcp + type: string + x-linode-cli-display: 3 + proxy_protocol: + default: none + description: |- + Proxy protocol is a TCP extension that sends initial TCP connection information such as source or destination IPs and ports to backend devices. Proxy protocol preserves initial TCP information that would be lost otherwise. Backend devices must be configured to work with `proxy_protocol` if enabled. - ``` - linode-cli nodebalancers node-delete \ - 12345 4567 54321 - ``` + - If omitted, or set to `none`, the NodeBalancer doesn't send any auxiliary data over TCP connections. This is the default. + - If set to `v1`, the human-readable header format (Version 1) is used. Requires `tcp` protocol. + - If set to `v2`, the binary header format (Version 2) is used. Requires `tcp` protocol. + enum: + - none + - v1 + - v2 + example: none + type: string + ssl_cert: + description: __Read-only__ Not applicable for TCP configs. + example: null + nullable: true + readOnly: true + type: string + ssl_commonname: + description: __Read-only__ Not applicable for TCP configs. + example: '' + readOnly: true + type: string + x-linode-cli-display: 8 + ssl_fingerprint: + description: __Read-only__ Not applicable for TCP configs. + example: '' + readOnly: true + type: string + x-linode-cli-display: 9 + ssl_key: + description: __Read-only__ Not applicable for HTTP configs. + example: null + nullable: true + readOnly: true + type: string + stickiness: + default: none + description: |- + __Read-only__ Controls how session stickiness is handled on this port. - [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) + Not applicable to TCP configurations. + enum: + - none + - table + - http_cookie + example: none + readOnly: true + type: string + x-linode-cli-display: 5 + required: + - nodes + title: TCP + type: object + x-akamai: + file-path: schemas/node-balancer-config-tcp.yaml + - additionalProperties: false + description: A NodeBalancer configuration defines the protocol and settings for a specific port on the NodeBalancer. These fields apply to HTTP configurations. + properties: + algorithm: + default: roundrobin + description: The algorithm this HTTP NodeBalancer uses for routing traffic to backends. + enum: + - roundrobin + - leastconn + - source + example: roundrobin + type: string + x-linode-cli-display: 4 + check: + default: none + description: |- + The type of check to perform against backends to ensure they are serving requests. This determines if backends are up or down. - - __OAuth scopes__. + - If `none`, no check is performed. + - `connection` requires only a connection to the backend to succeed. + - `http` and `http_body` rely on the backend serving HTTP, and that the response returned matches what is expected. + enum: + - none + - connection + - http + - http_body + example: http_body + type: string + check_attempts: + default: 3 + description: How many times to attempt a check before considering a backend to be down. + example: 3 + maximum: 30 + minimum: 1 + type: integer + check_body: + description: Use when the active health `check` type is `http_body`. This value must be present in the response body of the check in order for it to pass. If this value is not present in the response body of a check request, the backend is considered to be down. + example: it works + type: string + check_interval: + default: 5 + description: |- + How often, in seconds, to check that backends are up and serving requests. - ``` - nodebalancers:read_write - ``` + Must be greater than `check_timeout`. + example: 90 + maximum: 3600 + minimum: 2 + type: integer + check_passive: + default: true + description: If `true`, any response from this backend with a `5xx` status code will be enough for it to be considered unhealthy and taken out of rotation. + example: true + type: boolean + x-linode-cli-display: 6 + check_path: + description: The URL path to check on each backend. Use when the active health `check` type is `http`. If the backend doesn't respond to this request, it's considered to be down. + example: /test + pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ + type: string + check_timeout: + default: 3 + description: |- + How long, in seconds, to wait for a check attempt before considering it failed. - [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - externalDocs: - description: See documentation for this operation in Akamai's Linode API - url: https://techdocs.akamai.com/linode-api/reference/delete-node-balancer-config-node - operationId: delete-node-balancer-config-node - responses: - '200': - content: - application/json: - schema: - description: The API responds with an empty object. - maxProperties: 0 - type: object - x-akamai: - file-path: schemas/added-empty-obj.yaml - x-example: - x-ref: ../examples/delete-node-balancer-config-node-200.json - description: Node deleted successfully. - default: - content: - application/json: - schema: - additionalProperties: false - properties: - errors: - items: + Must be less than `check_interval`. + example: 10 + maximum: 30 + minimum: 1 + type: integer + cipher_suite: + description: __Read-only__ Not applicable for HTTP configs. + example: recommended + readOnly: true + type: string + x-linode-cli-color: + default_: white + legacy: red + x-linode-cli-display: 7 + id: + description: __Read-only__ This config's unique ID. + example: 4000 + readOnly: true + type: integer + x-linode-cli-display: 1 + nodebalancer_id: + description: __Read-only__ Identifies the NodeBalancer this config belongs to. + example: 12345 + readOnly: true + type: integer + nodes: + description: The NodeBalancer nodes that serve this configuration. + items: + additionalProperties: false + description: A NodeBalancer node represents a single backend serving requests for a single port of a NodeBalancer. Nodes are specific to NodeBalancer configs, and serve traffic over their private IP. If the same Linode is serving traffic for more than one port on the same NodeBalancer, one NodeBalancer node is required for each config (port) it should serve requests on. For example, if you have four backends, and each should respond to both HTTP and HTTPS requests, you will need two NodeBalancer configs (port 80 and port 443) and four backends each, one for each of the Linodes serving requests for that port. + properties: + address: + description: The private IP Address where this backend can be reached. This _must_ be a private IP address. + example: 192.168.210.120:80 + format: ip + type: string + x-linode-cli-display: 3 + config_id: + description: __Read-only__ The NodeBalancer Config ID that this Node belongs to. + example: 4567 + readOnly: true + type: integer + id: + description: __Read-only__ This node's unique ID. + example: 54321 + readOnly: true + type: integer + x-linode-cli-display: 1 + label: + description: The label for this node. This is for display purposes only. + example: node54321 + maxLength: 32 + minLength: 3 + pattern: '[a-zA-Z0-9-_.]{3,32}' + type: string + x-linode-cli-display: 2 + mode: + description: |- + The mode this NodeBalancer should use when sending traffic to this backend. + + - If set to `accept` this backend is accepting traffic. + - If set to `reject` this backend will not receive traffic. + - If set to `drain` this backend will not receive _new_ traffic, but connections already pinned to it will continue to be routed to it. + - If set to `backup`, this backend will only receive traffic if all `accept` nodes are down. + enum: + - accept + - reject + - drain + - backup + example: accept + type: string + x-linode-cli-display: 6 + nodebalancer_id: + description: __Read-only__ The NodeBalancer ID that this Node belongs to. + example: 12345 + readOnly: true + type: integer + status: + description: __Read-only__ The current status of this node, based on the configured checks of its NodeBalancer Config. + enum: + - unknown + - UP + - DOWN + example: UP + readOnly: true + type: string + x-linode-cli-color: + DOWN: red + UP: green + default_: white + unknown: yellow + x-linode-cli-display: 4 + weight: + description: Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. + example: 50 + maximum: 255 + minimum: 1 + type: integer + x-linode-cli-display: 5 + title: TCP, HTTP, or HTTPS config + x-akamai: + file-path: schemas/node-balancer-node-tcp-http-https.yaml + type: array + nodes_status: additionalProperties: false - description: An object for describing a single error that occurred during the processing of a request. + description: __Read-only__ Describes the health of the backends for this port. This data updates periodically as checks are performed against backends. properties: - field: - description: The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request. - example: fieldname - type: string - reason: - description: What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully. - example: fieldname must be a valid value - type: string + down: + description: __Read-only__ The number of backends considered to be `DOWN` and unhealthy. These are not in rotation, and not serving requests. + example: 0 + readOnly: true + type: integer + up: + description: __Read-only__ The number of backends considered to be `UP` and healthy, and that are serving requests. + example: 4 + readOnly: true + type: integer + readOnly: true type: object - x-akamai: - file-path: schemas/error-object.yaml - type: array - type: object - description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes. - security: - - personalAccessToken: [] - - oauth: - - nodebalancers:read_write - summary: Delete a NodeBalancer's node - tags: - - NodeBalancers - x-akamai: - tabs: - - syntax: |- - linode-cli nodebalancers node-delete \ - 12345 4567 54321 - title: CLI - url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli - - syntax: nodebalancers:read_write - title: OAuth scopes - url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth - x-linode-cli-action: node-delete - x-linode-grant: read_write - get: - description: |- - Returns information about a single Node, a backend for this NodeBalancer's configured port. + x-linode-cli-display: 10 + port: + default: 80 + description: This is the port the NodeBalancer listens on for this configuration. Port numbers need to be unique across TCP, HTTP, and HTTPS configurations on a single NodeBalancer. However, ports assigned to TCP, HTTP, or HTTPS configurations can also be reused for UDP configurations. For example, Port 80 can simultaneously serve a TCP and a UDP configuration on the same NodeBalancer, but it can't be shared by both a TCP and an HTTP configuration. Although certain ports are traditionally associated with specific protocols, this is not strictly enforced. You may configure your NodeBalancer however is useful to you. + example: 80 + maximum: 65535 + minimum: 1 + type: integer + x-linode-cli-display: 2 + protocol: + default: http + description: |- + The protocol the port is configured to serve, `http` in this case. + Review our guide on [Available protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols) for information on protocol features. + enum: + - http + example: http + type: string + x-linode-cli-display: 3 + proxy_protocol: + default: none + description: __Read-only__ Not applicable for HTTP configs. + example: none + readOnly: true + type: string + ssl_cert: + description: __Read-only__ Not applicable for HTTP configs. + example: null + nullable: true + readOnly: true + type: string + ssl_commonname: + description: __Read-only__ Not applicable for HTTP configs. + example: '' + readOnly: true + type: string + x-linode-cli-display: 8 + ssl_fingerprint: + description: __Read-only__ Not applicable for HTTP configs. + example: '' + readOnly: true + type: string + x-linode-cli-display: 9 + ssl_key: + description: __Read-only__ Not applicable for HTTP configs. + example: null + nullable: true + readOnly: true + type: string + stickiness: + default: table + description: |- + Controls how session stickiness is handled on this port. + - If set to `none`, connections will always be assigned a backend based on the algorithm configured. + - If set to `table`, sessions from the same remote address will be routed to the same backend. + - If set to `http_cookie`, sessions are routed to the same backend based on a cookie set by the NodeBalancer. + enum: + - none + - table + - http_cookie + example: http_cookie + type: string + x-linode-cli-display: 5 + required: + - nodes + title: HTTP + type: object + x-akamai: + file-path: schemas/node-balancer-config-http.yaml + - additionalProperties: false + description: A NodeBalancer configuration defines the protocol and settings for a specific port on the NodeBalancer. These fields apply to HTTPS configurations. + properties: + algorithm: + default: roundrobin + description: The algorithm this HTTPS NodeBalancer uses for routing traffic to backends. + enum: + - roundrobin + - leastconn + - source + example: roundrobin + type: string + x-linode-cli-display: 4 + check: + default: none + description: |- + The type of check to perform against backends to ensure they are serving requests. This is used to determine if backends are up or down. - <> + - If `none` no check is performed. + - `connection` requires only a connection to the backend to succeed. + - `http` and `http_body` rely on the backend serving HTTP, and that the response returned matches what is expected. + enum: + - none + - connection + - http + - http_body + example: http_body + type: string + check_attempts: + default: 3 + description: How many times to attempt a check before considering a backend to be down. + example: 3 + maximum: 30 + minimum: 1 + type: integer + check_body: + description: Use when the active health `check` type is `http_body`. This value must be present in the response body of the check in order for it to pass. If this value is not present in the response body of a check request, the backend is considered to be down. + example: it works + type: string + check_interval: + default: 5 + description: |- + How often, in seconds, to check that backends are up and serving requests. - --- + Must be greater than `check_timeout`. + example: 90 + maximum: 3600 + minimum: 2 + type: integer + check_passive: + default: true + description: If `true`, any response from this backend with a `5xx` status code will be enough for it to be considered unhealthy and taken out of rotation. + example: true + type: boolean + x-linode-cli-display: 6 + check_path: + description: The URL path to check on each backend. Use when the active health `check` type is `http`. If the backend doesn't respond to this request, it's considered to be down. + example: /test + pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ + type: string + check_timeout: + default: 3 + description: |- + How long, in seconds, to wait for a check attempt before considering it failed. + Must be less than `check_interval`. + example: 10 + maximum: 30 + minimum: 1 + type: integer + cipher_suite: + default: recommended + description: |- + What ciphers to use for SSL connections served by this NodeBalancer. - - __CLI__. + - `legacy` is considered insecure and should only be used if necessary. + enum: + - recommended + - legacy + example: recommended + type: string + x-linode-cli-color: + default_: white + legacy: red + x-linode-cli-display: 7 + id: + description: __Read-only__ This config's unique ID. + example: 5000 + readOnly: true + type: integer + x-linode-cli-display: 1 + nodebalancer_id: + description: __Read-only__ The ID for the NodeBalancer this config belongs to. + example: 12345 + readOnly: true + type: integer + nodes: + description: The NodeBalancer nodes that serve this configuration. + items: + additionalProperties: false + description: A NodeBalancer node represents a single backend serving requests for a single port of a NodeBalancer. Nodes are specific to NodeBalancer configs, and serve traffic over their private IP. If the same Linode is serving traffic for more than one port on the same NodeBalancer, one NodeBalancer node is required for each config (port) it should serve requests on. For example, if you have four backends, and each should respond to both HTTP and HTTPS requests, you will need two NodeBalancer configs (port 80 and port 443) and four backends each, one for each of the Linodes serving requests for that port. + properties: + address: + description: The private IP Address where this backend can be reached. This _must_ be a private IP address. + example: 192.168.210.120:80 + format: ip + type: string + x-linode-cli-display: 3 + config_id: + description: __Read-only__ The NodeBalancer Config ID that this Node belongs to. + example: 4567 + readOnly: true + type: integer + id: + description: __Read-only__ This node's unique ID. + example: 54321 + readOnly: true + type: integer + x-linode-cli-display: 1 + label: + description: The label for this node. This is for display purposes only. + example: node54321 + maxLength: 32 + minLength: 3 + pattern: '[a-zA-Z0-9-_.]{3,32}' + type: string + x-linode-cli-display: 2 + mode: + description: |- + The mode this NodeBalancer should use when sending traffic to this backend. - ``` - linode-cli nodebalancers node-view 12345 4567 54321 - ``` + - If set to `accept` this backend is accepting traffic. + - If set to `reject` this backend will not receive traffic. + - If set to `drain` this backend will not receive _new_ traffic, but connections already pinned to it will continue to be routed to it. + - If set to `backup`, this backend will only receive traffic if all `accept` nodes are down. + enum: + - accept + - reject + - drain + - backup + example: accept + type: string + x-linode-cli-display: 6 + nodebalancer_id: + description: __Read-only__ The NodeBalancer ID that this Node belongs to. + example: 12345 + readOnly: true + type: integer + status: + description: __Read-only__ The current status of this node, based on the configured checks of its NodeBalancer Config. + enum: + - unknown + - UP + - DOWN + example: UP + readOnly: true + type: string + x-linode-cli-color: + DOWN: red + UP: green + default_: white + unknown: yellow + x-linode-cli-display: 4 + weight: + description: Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. + example: 50 + maximum: 255 + minimum: 1 + type: integer + x-linode-cli-display: 5 + title: TCP, HTTP, or HTTPS config + x-akamai: + file-path: schemas/node-balancer-node-tcp-http-https.yaml + type: array + nodes_status: + additionalProperties: false + description: __Read-only__ Describes the health of the backends for this port. This data updates periodically as checks are performed against backends. + properties: + down: + description: __Read-only__ The number of backends considered to be `DOWN` and unhealthy. These are not in rotation, and not serving requests. + example: 0 + readOnly: true + type: integer + up: + description: __Read-only__ The number of backends considered to be `UP` and healthy, and that are serving requests. + example: 4 + readOnly: true + type: integer + readOnly: true + type: object + x-linode-cli-display: 10 + port: + default: 80 + description: This is the port the NodeBalancer listens on for this configuration. Port numbers must be unique across TCP, HTTP, and HTTPS configurations on a single NodeBalancer. However, ports assigned to TCP, HTTP, or HTTPS configurations can also be reused for UDP configurations. For example, Port 80 can simultaneously serve a TCP and a UDP configuration on the same NodeBalancer, but it can't be shared by both a TCP and an HTTP configuration. Although certain ports are traditionally associated with specific protocols, this isn't strictly enforced, and you may configure your NodeBalancer however you find useful. + example: 443 + maximum: 65535 + minimum: 1 + type: integer + x-linode-cli-display: 2 + protocol: + default: http + description: |- + The protocol the port is configured to serve, `https` in this case. - [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) + - The `https` protocol is mutually required with `ssl_cert` and `ssl_key`. - - __OAuth scopes__. + Review our guide on [Available protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols) for information on protocol features. + enum: + - https + example: https + type: string + x-linode-cli-display: 3 + proxy_protocol: + default: none + description: __Read-only__ Not applicable for HTTPS configs. + example: none + readOnly: true + type: string + ssl_cert: + description: |2- - ``` - nodebalancers:read_write - ``` + The PEM-formatted public SSL certificate (or the combined PEM-formatted SSL certificate and Certificate Authority chain) that should be served on this NodeBalancerConfig's port. - [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - externalDocs: - description: See documentation for this operation in Akamai's Linode API - url: https://techdocs.akamai.com/linode-api/reference/get-node-balancer-node - operationId: get-node-balancer-node - responses: - '200': - content: - application/json: - schema: + Line breaks must be represented as `\n` in the string for requests (but not when using the Linode CLI). + + [Diffie-Hellman Parameters](https://www.linode.com/docs/products/networking/nodebalancers/guides/ssl-termination/#diffie-hellman-parameters) can be included in this value to enable forward secrecy. + + The contents of this field will not be shown in any responses that display the NodeBalancerConfig. Instead, `` will be printed where the field appears. + + The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancerConfig response are automatically derived from your certificate. Please refer to these fields to verify that the appropriate certificate was assigned to your NodeBalancerConfig. + example: + format: ssl-cert + nullable: true + type: string + ssl_commonname: + description: __Read-only__ The read-only common name automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig. + example: www.example.com + readOnly: true + type: string + x-linode-cli-display: 8 + ssl_fingerprint: + description: __Read-only__ The read-only SHA1-encoded fingerprint automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig. + example: 00:01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12:13 + readOnly: true + type: string + x-linode-cli-display: 9 + ssl_key: + description: |- + The PEM-formatted private key for the SSL certificate set in the `ssl_cert` field. + + Line breaks must be represented as `\n` in the string for requests (but not when using the Linode CLI). + + The contents of this field will not be shown in any responses that display + the NodeBalancerConfig. Instead, `` will be printed where the field + appears. + + The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancerConfig + response are automatically derived from your certificate. Please refer to these fields to + verify that the appropriate certificate was assigned to your NodeBalancerConfig. + example: + format: ssl-key + nullable: true + type: string + stickiness: + default: table + description: |- + Controls how session stickiness is handled on this port. + + - If set to `none`, connections will always be assigned a backend based on the algorithm configured. + - If set to `table`, sessions from the same remote address will be routed to the same backend. + - For HTTP or HTTPS clients, `http_cookie` allows sessions to be routed to the same backend based on a cookie set by the NodeBalancer. + enum: + - none + - table + - http_cookie + example: http_cookie + type: string + x-linode-cli-display: 5 + required: + - nodes + title: HTTPS + type: object + x-akamai: + file-path: schemas/node-balancer-config-https.yaml + x-akamai: + file-path: schemas/node-balancer-config.yaml + x-example: + x-ref: ../examples/get-node-balancer-config-200.json + x-linode-cli-use-schema: additionalProperties: false - description: A NodeBalancerNode represents a single backend serving requests for a single port of a NodeBalancer. Nodes are specific to NodeBalancer Configs, and serve traffic over their private IP. If the same Linode is serving traffic for more than one port on the same NodeBalancer, one NodeBalancer Node is required for each config (port) it should serve requests on. For example, if you have four backends, and each should response to both HTTP and HTTPS requests, you will need two NodeBalancerConfigs (port 80 and port 443) and four backends each - one for each of the Linodes serving requests for that port. properties: - address: - description: The private IP Address where this backend can be reached. This _must_ be a private IP address. - example: 192.168.210.120:80 - format: ip + algorithm: + default: roundrobin + description: |- + The algorithm this NodeBalancer should use to route traffic to backends. + - If set to `roundrobin`, connections are allocated in a weighted circular order across the backends. + - If set to `leastconn`, allocates new connections to the backend with the least connections. + - If set to `source`, allocates the client's IP to the same backend on subsequent requests. Session `stickiness` affects this algorithm. + enum: + - roundrobin + - leastconn + - source + example: roundrobin type: string - x-linode-cli-display: 3 - config_id: - description: __Read-only__ The NodeBalancer Config ID that this Node belongs to. - example: 4567 - readOnly: true - type: integer - id: - description: __Read-only__ This node's unique ID. - example: 54321 - readOnly: true + x-linode-cli-display: 4 + check: + default: none + description: |- + The type of check to perform against backends to ensure they're serving requests. This determines if backends are up or down. + - If `none`, no check is performed. + - If `connection`, requires a successful TCP handshake with a backend node. + - If `http`, requires a 2xx or 3xx response from the backend node. + - If `http_body`, requires the provided regular expression matches against the request's result body. + enum: + - none + - connection + - http + - http_body + example: http_body + type: string + check_attempts: + default: 3 + description: How many times to attempt a check before considering a backend to be down. + example: 3 + maximum: 30 + minimum: 1 type: integer - x-linode-cli-display: 1 - label: - description: The label for this node. This is for display purposes only. - example: node54321 - maxLength: 32 - minLength: 3 - pattern: '[a-zA-Z0-9-_.]{3,32}' + check_body: + description: The check's response body needs to include this value for it to pass. Otherwise the backend is identified as being down. + example: it works type: string - x-linode-cli-display: 2 - mode: + check_interval: + default: 31 description: |- - The mode this NodeBalancer should use when sending traffic to this backend. + How often, in seconds, to check that backends are up and serving requests. - - If set to `accept` this backend is accepting traffic. - - If set to `reject` this backend will not receive traffic. - - If set to `drain` this backend will not receive _new_ traffic, but connections already pinned to it will continue to be routed to it. - - If set to `backup`, this backend will only receive traffic if all `accept` nodes are down. + Must be greater than `check_timeout`. + example: 90 + type: integer + check_passive: + default: true + description: If `true`, any response from this backend with a `5xx` status code will be enough for it to be considered unhealthy and taken out of rotation. + example: true + type: boolean + x-linode-cli-display: 6 + check_path: + description: The URL path to check on each backend. If the backend doesn't respond to this request it's considered to be down. + example: /test + pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ + type: string + check_timeout: + default: 30 + description: How long, in seconds, to wait for a check attempt before considering it failed. Must be less than `check_interval`. + example: 10 + maximum: 30 + minimum: 1 + type: integer + cipher_suite: + default: recommended + description: What ciphers to use for SSL connections served by this NodeBalancer. The `legacy` cipher is considered insecure and should only be used if necessary. For information on recommended and legacy ciphers, see [TLS cipher suites](https://techdocs.akamai.com/cloud-computing/docs/tls-ssl-termination-on-nodebalancers#tls-cipher-suites). enum: - - accept - - reject - - drain - - backup - example: accept + - recommended + - legacy + example: recommended type: string - x-linode-cli-display: 6 + x-linode-cli-color: + default_: white + legacy: red + x-linode-cli-display: 7 + id: + description: __Read-only__ This config's unique ID. + example: 4567 + readOnly: true + type: integer + x-linode-cli-display: 1 nodebalancer_id: - description: __Read-only__ The NodeBalancer ID that this Node belongs to. + description: __Read-only__ Identifies the NodeBalancer this config belongs to. example: 12345 readOnly: true type: integer - status: - description: __Read-only__ The current status of this node, based on the configured checks of its NodeBalancer Config. - enum: - - unknown - - UP - - DOWN - example: UP + nodes_status: + additionalProperties: false + description: __Read-only__ Information about the health of the backends for this port. It's updated periodically as checks are performed against backends. + properties: + down: + description: __Read-only__ The number of backends considered to be `DOWN` and unhealthy. These are not in rotation, and not serving requests. + example: 0 + readOnly: true + type: integer + up: + description: __Read-only__ The number of backends considered to be `UP` and healthy, and that are serving requests. + example: 4 + readOnly: true + type: integer readOnly: true - type: string - x-linode-cli-color: - DOWN: red - UP: green - default_: white - unknown: yellow - x-linode-cli-display: 4 - weight: - description: Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. - example: 50 - maximum: 255 + type: object + x-linode-cli-display: 10 + port: + default: 80 + description: The port for this config. Ports need to be unique across configs for each NodeBalancer. For example, you can't have two configs for port 80. While some protocols are typically assigned specific ports, there's no enforcement, and you can configure your NodeBalancer however you find useful. For example, while port 443 is generally used for HTTPS, you don't need SSL configured to have a NodeBalancer listening on port 443. + example: 80 + maximum: 65535 minimum: 1 type: integer + x-linode-cli-display: 2 + protocol: + default: http + description: |- + The protocol this port is configured to serve. + + - The `http` and `tcp` protocols don't support `ssl_cert` and `ssl_key`. + + - For the `https` protocol, you need `ssl_cert` and `ssl_key`. + + Review our guide on [Available Protocols](https://www.linode.com/docs/products/networking/nodebalancers/guides/protocols/) for information on protocol features. + enum: + - http + - https + - tcp + example: http + type: string + x-linode-cli-display: 3 + proxy_protocol: + default: none + description: |- + ProxyProtocol is a TCP extension that sends initial TCP connection information such as source IPs, destination IPs, and ports to backend devices. This information would be lost otherwise. Backend devices must be configured to work with ProxyProtocol if enabled. + + - If omitted or set to `none`, the NodeBalancer doesn't send any auxiliary data over TCP connections. The default is `none`. + - If set to `v1`, the human-readable header format (Version 1) is used. Requires `tcp` protocol. + - If set to `v2`, the binary header format (Version 2) is used. Requires `tcp` protocol. + enum: + - none + - v1 + - v2 + example: none + type: string + ssl_cert: + description: |- + The PEM-formatted public SSL certificate (or the combined PEM-formatted SSL certificate and Certificate Authority chain) that should be served on this NodeBalancer config's port. + + Line breaks must be represented as `\n` in the string for API requests, but not when using the Linode CLI. + + You can include [Diffie-Hellman parameters](https://www.linode.com/docs/products/networking/nodebalancers/guides/ssl-termination/#diffie-hellman-parameters) in this value to enable forward secrecy. + + The provided field don't appear in any responses that display the NodeBalancer config. It's replaced with ``. + + The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancer config response are automatically derived from your certificate. Please refer to these fields to verify that the appropriate certificate was assigned to your config. + example: + format: ssl-cert + nullable: true + type: string + ssl_commonname: + description: __Read-only__ The read-only common name automatically derived from the SSL certificate assigned to this NodeBalancer config. Please refer to this field to verify that the appropriate certificate is assigned to your config. + example: www.example.com + readOnly: true + type: string + x-linode-cli-display: 8 + ssl_fingerprint: + description: __Read-only__ The read-only SHA1-encoded fingerprint automatically derived from the SSL certificate assigned to this NodeBalancer config. Please refer to this field to verify that the appropriate certificate is assigned to your config. + example: 00:01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12:13 + readOnly: true + type: string + x-linode-cli-display: 9 + ssl_key: + description: |- + The PEM-formatted private key for the SSL certificate set in the `ssl_cert` field. + + Line breaks must be represented as `\n` in the string for API requests, but not when using the Linode CLI. + + The contents of this field will not be shown in any responses that display + the NodeBalancerConfig. Instead, `` will be printed where the field + appears. + + The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancerConfig + response are automatically derived from your certificate. Please refer to these fields to + verify that the appropriate certificate was assigned to your NodeBalancerConfig. + example: + format: ssl-key + nullable: true + type: string + stickiness: + default: none + description: |- + Controls how session stickiness is handled on this port. + - If set to `none`, connections are always assigned a backend based on the algorithm configured. + - If set to `table`, sessions from the same remote address are routed to the same backend. + - For HTTP or HTTPS clients, `http_cookie` allows sessions to be routed to the same backend based on a cookie set by the NodeBalancer. + enum: + - none + - table + - http_cookie + example: http_cookie + type: string x-linode-cli-display: 5 type: object x-akamai: - file-path: schemas/node-balancer-node.yaml - x-example: - x-ref: ../examples/get-node-balancer-node-200.json - description: A paginated list of NodeBalancer nodes. + file-path: schemas/node-balancer-config-cli.yaml + description: The requested NodeBalancer config. default: content: application/json: @@ -73485,19 +75778,21 @@ paths: security: - personalAccessToken: [] - oauth: - - nodebalancers:read_write - summary: Get a NodeBalancer's node + - nodebalancers:read_only + summary: Get a config tags: - NodeBalancers x-akamai: tabs: - - syntax: linode-cli nodebalancers node-view 12345 4567 54321 + - syntax: |- + linode-cli nodebalancers config-view \ + 12345 4567 title: CLI url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli - - syntax: nodebalancers:read_write + - syntax: nodebalancers:read_only title: OAuth scopes url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth - x-linode-cli-action: node-view + x-linode-cli-action: config-view x-linode-grant: read_only parameters: - description: __Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta. @@ -73528,17 +75823,9 @@ paths: type: integer x-akamai: file-path: parameters/config-id.yaml - - description: The ID of the Node to access. - in: path - name: nodeId - required: true - schema: - type: string - x-akamai: - file-path: parameters/node-id.yaml put: description: |- - Updates information about a Node, a backend for this NodeBalancer's configured port. + Updates the configuration for a single port on a NodeBalancer. <> @@ -73546,340 +75833,5807 @@ paths: --- - - __CLI__. + - __CLI: HTTPS__. ``` - linode-cli nodebalancers node-update \ - 12345 4567 54321 \ - --address 192.168.210.120:80 \ - --label node54321 \ - --weight 50 \ - --mode accept + linode-cli nodebalancers config-update \ + 12345 4567 \ + --port 443 \ + --protocol https \ + --algorithm roundrobin \ + --stickiness http_cookie \ + --check http_body \ + --check_interval 90 \ + --check_timeout 10 \ + --check_attempts 3 \ + --check_path "/test" \ + --check_body "it works" \ + --check_passive true \ + --proxy_protocol "none" \ + --ssl_cert "-----BEGIN CERTIFICATE----- + CERTIFICATE_INFORMATION + -----END CERTIFICATE-----" \ + --ssl_key "-----BEGIN PRIVATE KEY----- + PRIVATE_KEY_INFORMATION + -----END PRIVATE KEY-----" \ + --cipher_suite recommended + ``` + + [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) + + - __CLI: TCP__. + + ``` + linode-cli nodebalancers config-update \ + 12345 4567 \ + --port 80 \ + --protocol tcp \ + --algorithm roundrobin \ + --stickiness none \ + --stickiness http_cookie \ + --check http_body \ + --check_interval 90 \ + --check_timeout 10 \ + --check_attempts 3 \ + --check_path "/test" \ + --check_body "it works" \ + --proxy_protocol "v2" + ``` + + [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) + + - __CLI: HTTP__. + + ``` + linode-cli nodebalancers config-update \ + 12345 4567 \ + --port 440 \ + --protocol http \ + --algorithm roundrobin \ + --stickiness http_cookie \ + --check http_body \ + --check_interval 90 \ + --check_timeout 10 \ + --check_attempts 3 \ + --check_path "/test" \ + --check_body "it works" \ + ``` + + [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) + + - __OAuth scopes__. + ``` + nodebalancers:read_write + ``` + + [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + externalDocs: + description: See documentation for this operation in Akamai's Linode API + url: https://techdocs.akamai.com/linode-api/reference/put-node-balancer-config + operationId: put-node-balancer-config + requestBody: + content: + application/json: + schema: + description: NodeBalancer `config` options for each protocol. + oneOf: + - additionalProperties: false + description: A NodeBalancer configuration defines the protocol and settings for a specific port on the NodeBalancer. These fields apply to TCP configurations. + properties: + algorithm: + default: roundrobin + description: The algorithm this TCP NodeBalancer uses to route traffic to backends. + enum: + - roundrobin + - leastconn + - source + example: leastconn + type: string + x-linode-cli-display: 4 + check: + default: none + description: |- + The type of check to perform against backends to ensure they are serving requests. This is used to determine if backends are up or down. + + - If `none`, no check is performed. + - `connection` requires only a connection to the backend to succeed. + - `http` and `http_body` rely on the backend serving HTTP, and that the response returned matches what is expected. + enum: + - none + - connection + - http + - http_body + example: http_body + type: string + check_attempts: + default: 3 + description: How many times to attempt a check before considering a backend to be down. + example: 3 + maximum: 30 + minimum: 1 + type: integer + check_body: + description: This value must be present in the response body of the check in order for it to pass. If this value is not present in the response body of a check request, the backend is considered to be down. + example: it works + type: string + check_interval: + default: 5 + description: |- + How often, in seconds, to check that backends are up and serving requests. + + Must be greater than `check_timeout`. + example: 90 + maximum: 3600 + minimum: 2 + type: integer + check_passive: + default: true + description: If `true`, any response from this backend with a `5xx` status code will be enough for it to be considered unhealthy and taken out of rotation. + example: true + type: boolean + x-linode-cli-display: 6 + check_path: + description: The URL path to check on each backend. If the backend does not respond to this request it is considered to be down. + example: /test + pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ + type: string + check_timeout: + default: 30 + description: |- + How long, in seconds, to wait for a check attempt before considering it failed. + + Must be less than `check_interval`. + example: 10 + maximum: 30 + minimum: 1 + type: integer + cipher_suite: + description: __Read-only__ Not applicable for HTTP configs. + example: recommended + readOnly: true + type: string + x-linode-cli-color: + default_: white + legacy: red + x-linode-cli-display: 7 + id: + description: __Read-only__ This config's unique ID. + example: 6000 + readOnly: true + type: integer + x-linode-cli-display: 1 + nodebalancer_id: + description: __Read-only__ The ID for the NodeBalancer this config belongs to. + example: 12345 + readOnly: true + type: integer + nodes: + description: The NodeBalancer nodes that serve this configuration. + items: + additionalProperties: false + description: A NodeBalancer node represents a single backend serving requests for a single port of a NodeBalancer. Nodes are specific to NodeBalancer configs, and serve traffic over their private IP. If the same Linode is serving traffic for more than one port on the same NodeBalancer, one NodeBalancer node is required for each config (port) it should serve requests on. For example, if you have four backends, and each should respond to both HTTP and HTTPS requests, you will need two NodeBalancer configs (port 80 and port 443) and four backends each, one for each of the Linodes serving requests for that port. + properties: + address: + description: The private IP Address where this backend can be reached. This _must_ be a private IP address. + example: 192.168.210.120:80 + format: ip + type: string + x-linode-cli-display: 3 + config_id: + description: __Read-only__ The NodeBalancer Config ID that this Node belongs to. + example: 4567 + readOnly: true + type: integer + id: + description: __Read-only__ This node's unique ID. + example: 54321 + readOnly: true + type: integer + x-linode-cli-display: 1 + label: + description: The label for this node. This is for display purposes only. + example: node54321 + maxLength: 32 + minLength: 3 + pattern: '[a-zA-Z0-9-_.]{3,32}' + type: string + x-linode-cli-display: 2 + mode: + description: |- + The mode this NodeBalancer should use when sending traffic to this backend. + + - If set to `accept` this backend is accepting traffic. + - If set to `reject` this backend will not receive traffic. + - If set to `drain` this backend will not receive _new_ traffic, but connections already pinned to it will continue to be routed to it. + - If set to `backup`, this backend will only receive traffic if all `accept` nodes are down. + enum: + - accept + - reject + - drain + - backup + example: accept + type: string + x-linode-cli-display: 6 + nodebalancer_id: + description: __Read-only__ The NodeBalancer ID that this Node belongs to. + example: 12345 + readOnly: true + type: integer + status: + description: __Read-only__ The current status of this node, based on the configured checks of its NodeBalancer Config. + enum: + - unknown + - UP + - DOWN + example: UP + readOnly: true + type: string + x-linode-cli-color: + DOWN: red + UP: green + default_: white + unknown: yellow + x-linode-cli-display: 4 + weight: + description: Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. + example: 50 + maximum: 255 + minimum: 1 + type: integer + x-linode-cli-display: 5 + title: TCP, HTTP, or HTTPS config + x-akamai: + file-path: schemas/node-balancer-node-tcp-http-https.yaml + type: array + nodes_status: + additionalProperties: false + description: __Read-only__ Describes the health of the backends for this port. This data updates periodically as checks are performed against backends. + properties: + down: + description: __Read-only__ The number of backends considered to be `DOWN` and unhealthy. These are not in rotation, and not serving requests. + example: 0 + readOnly: true + type: integer + up: + description: __Read-only__ The number of backends considered to be `UP` and healthy, and that are serving requests. + example: 4 + readOnly: true + type: integer + readOnly: true + type: object + x-linode-cli-display: 10 + port: + default: 80 + description: This is the port the NodeBalancer listens on for this configuration. Port numbers must be unique across TCP, HTTP, and HTTPS configurations on a single NodeBalancer. However, ports assigned to TCP, HTTP, or HTTPS configurations can also be reused for UDP configurations. For example, Port 80 can simultaneously serve a TCP and a UDP configuration on the same NodeBalancer, but it can't be shared by both a TCP and an HTTP configuration. Although certain ports are traditionally associated with specific protocols, this isn't strictly enforced, and you may configure your NodeBalancer however you find useful. + example: 22 + maximum: 65535 + minimum: 1 + type: integer + x-linode-cli-display: 2 + protocol: + default: http + description: |- + The protocol the port is configured to serve, `tcp` in this case. + + Review our guide on [Available protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols) for information on protocol features. + enum: + - tcp + example: tcp + type: string + x-linode-cli-display: 3 + proxy_protocol: + default: none + description: |- + Proxy protocol is a TCP extension that sends initial TCP connection information such as source or destination IPs and ports to backend devices. Proxy protocol preserves initial TCP information that would be lost otherwise. Backend devices must be configured to work with `proxy_protocol` if enabled. + + - If omitted, or set to `none`, the NodeBalancer doesn't send any auxiliary data over TCP connections. This is the default. + - If set to `v1`, the human-readable header format (Version 1) is used. Requires `tcp` protocol. + - If set to `v2`, the binary header format (Version 2) is used. Requires `tcp` protocol. + enum: + - none + - v1 + - v2 + example: none + type: string + ssl_cert: + description: __Read-only__ Not applicable for TCP configs. + example: null + nullable: true + readOnly: true + type: string + ssl_commonname: + description: __Read-only__ Not applicable for TCP configs. + example: '' + readOnly: true + type: string + x-linode-cli-display: 8 + ssl_fingerprint: + description: __Read-only__ Not applicable for TCP configs. + example: '' + readOnly: true + type: string + x-linode-cli-display: 9 + ssl_key: + description: __Read-only__ Not applicable for HTTP configs. + example: null + nullable: true + readOnly: true + type: string + stickiness: + default: none + description: |- + __Read-only__ Controls how session stickiness is handled on this port. + + Not applicable to TCP configurations. + enum: + - none + - table + - http_cookie + example: none + readOnly: true + type: string + x-linode-cli-display: 5 + required: + - nodes + title: TCP + type: object + x-akamai: + file-path: schemas/node-balancer-config-tcp.yaml + - additionalProperties: false + description: A NodeBalancer configuration defines the protocol and settings for a specific port on the NodeBalancer. These fields apply to HTTP configurations. + properties: + algorithm: + default: roundrobin + description: The algorithm this HTTP NodeBalancer uses for routing traffic to backends. + enum: + - roundrobin + - leastconn + - source + example: roundrobin + type: string + x-linode-cli-display: 4 + check: + default: none + description: |- + The type of check to perform against backends to ensure they are serving requests. This determines if backends are up or down. + + - If `none`, no check is performed. + - `connection` requires only a connection to the backend to succeed. + - `http` and `http_body` rely on the backend serving HTTP, and that the response returned matches what is expected. + enum: + - none + - connection + - http + - http_body + example: http_body + type: string + check_attempts: + default: 3 + description: How many times to attempt a check before considering a backend to be down. + example: 3 + maximum: 30 + minimum: 1 + type: integer + check_body: + description: Use when the active health `check` type is `http_body`. This value must be present in the response body of the check in order for it to pass. If this value is not present in the response body of a check request, the backend is considered to be down. + example: it works + type: string + check_interval: + default: 5 + description: |- + How often, in seconds, to check that backends are up and serving requests. + + Must be greater than `check_timeout`. + example: 90 + maximum: 3600 + minimum: 2 + type: integer + check_passive: + default: true + description: If `true`, any response from this backend with a `5xx` status code will be enough for it to be considered unhealthy and taken out of rotation. + example: true + type: boolean + x-linode-cli-display: 6 + check_path: + description: The URL path to check on each backend. Use when the active health `check` type is `http`. If the backend doesn't respond to this request, it's considered to be down. + example: /test + pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ + type: string + check_timeout: + default: 3 + description: |- + How long, in seconds, to wait for a check attempt before considering it failed. + + Must be less than `check_interval`. + example: 10 + maximum: 30 + minimum: 1 + type: integer + cipher_suite: + description: __Read-only__ Not applicable for HTTP configs. + example: recommended + readOnly: true + type: string + x-linode-cli-color: + default_: white + legacy: red + x-linode-cli-display: 7 + id: + description: __Read-only__ This config's unique ID. + example: 4000 + readOnly: true + type: integer + x-linode-cli-display: 1 + nodebalancer_id: + description: __Read-only__ Identifies the NodeBalancer this config belongs to. + example: 12345 + readOnly: true + type: integer + nodes: + description: The NodeBalancer nodes that serve this configuration. + items: + additionalProperties: false + description: A NodeBalancer node represents a single backend serving requests for a single port of a NodeBalancer. Nodes are specific to NodeBalancer configs, and serve traffic over their private IP. If the same Linode is serving traffic for more than one port on the same NodeBalancer, one NodeBalancer node is required for each config (port) it should serve requests on. For example, if you have four backends, and each should respond to both HTTP and HTTPS requests, you will need two NodeBalancer configs (port 80 and port 443) and four backends each, one for each of the Linodes serving requests for that port. + properties: + address: + description: The private IP Address where this backend can be reached. This _must_ be a private IP address. + example: 192.168.210.120:80 + format: ip + type: string + x-linode-cli-display: 3 + config_id: + description: __Read-only__ The NodeBalancer Config ID that this Node belongs to. + example: 4567 + readOnly: true + type: integer + id: + description: __Read-only__ This node's unique ID. + example: 54321 + readOnly: true + type: integer + x-linode-cli-display: 1 + label: + description: The label for this node. This is for display purposes only. + example: node54321 + maxLength: 32 + minLength: 3 + pattern: '[a-zA-Z0-9-_.]{3,32}' + type: string + x-linode-cli-display: 2 + mode: + description: |- + The mode this NodeBalancer should use when sending traffic to this backend. + + - If set to `accept` this backend is accepting traffic. + - If set to `reject` this backend will not receive traffic. + - If set to `drain` this backend will not receive _new_ traffic, but connections already pinned to it will continue to be routed to it. + - If set to `backup`, this backend will only receive traffic if all `accept` nodes are down. + enum: + - accept + - reject + - drain + - backup + example: accept + type: string + x-linode-cli-display: 6 + nodebalancer_id: + description: __Read-only__ The NodeBalancer ID that this Node belongs to. + example: 12345 + readOnly: true + type: integer + status: + description: __Read-only__ The current status of this node, based on the configured checks of its NodeBalancer Config. + enum: + - unknown + - UP + - DOWN + example: UP + readOnly: true + type: string + x-linode-cli-color: + DOWN: red + UP: green + default_: white + unknown: yellow + x-linode-cli-display: 4 + weight: + description: Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. + example: 50 + maximum: 255 + minimum: 1 + type: integer + x-linode-cli-display: 5 + title: TCP, HTTP, or HTTPS config + x-akamai: + file-path: schemas/node-balancer-node-tcp-http-https.yaml + type: array + nodes_status: + additionalProperties: false + description: __Read-only__ Describes the health of the backends for this port. This data updates periodically as checks are performed against backends. + properties: + down: + description: __Read-only__ The number of backends considered to be `DOWN` and unhealthy. These are not in rotation, and not serving requests. + example: 0 + readOnly: true + type: integer + up: + description: __Read-only__ The number of backends considered to be `UP` and healthy, and that are serving requests. + example: 4 + readOnly: true + type: integer + readOnly: true + type: object + x-linode-cli-display: 10 + port: + default: 80 + description: This is the port the NodeBalancer listens on for this configuration. Port numbers need to be unique across TCP, HTTP, and HTTPS configurations on a single NodeBalancer. However, ports assigned to TCP, HTTP, or HTTPS configurations can also be reused for UDP configurations. For example, Port 80 can simultaneously serve a TCP and a UDP configuration on the same NodeBalancer, but it can't be shared by both a TCP and an HTTP configuration. Although certain ports are traditionally associated with specific protocols, this is not strictly enforced. You may configure your NodeBalancer however is useful to you. + example: 80 + maximum: 65535 + minimum: 1 + type: integer + x-linode-cli-display: 2 + protocol: + default: http + description: |- + The protocol the port is configured to serve, `http` in this case. + Review our guide on [Available protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols) for information on protocol features. + enum: + - http + example: http + type: string + x-linode-cli-display: 3 + proxy_protocol: + default: none + description: __Read-only__ Not applicable for HTTP configs. + example: none + readOnly: true + type: string + ssl_cert: + description: __Read-only__ Not applicable for HTTP configs. + example: null + nullable: true + readOnly: true + type: string + ssl_commonname: + description: __Read-only__ Not applicable for HTTP configs. + example: '' + readOnly: true + type: string + x-linode-cli-display: 8 + ssl_fingerprint: + description: __Read-only__ Not applicable for HTTP configs. + example: '' + readOnly: true + type: string + x-linode-cli-display: 9 + ssl_key: + description: __Read-only__ Not applicable for HTTP configs. + example: null + nullable: true + readOnly: true + type: string + stickiness: + default: table + description: |- + Controls how session stickiness is handled on this port. + + - If set to `none`, connections will always be assigned a backend based on the algorithm configured. + - If set to `table`, sessions from the same remote address will be routed to the same backend. + - If set to `http_cookie`, sessions are routed to the same backend based on a cookie set by the NodeBalancer. + enum: + - none + - table + - http_cookie + example: http_cookie + type: string + x-linode-cli-display: 5 + required: + - nodes + title: HTTP + type: object + x-akamai: + file-path: schemas/node-balancer-config-http.yaml + - additionalProperties: false + description: A NodeBalancer configuration defines the protocol and settings for a specific port on the NodeBalancer. These fields apply to HTTPS configurations. + properties: + algorithm: + default: roundrobin + description: The algorithm this HTTPS NodeBalancer uses for routing traffic to backends. + enum: + - roundrobin + - leastconn + - source + example: roundrobin + type: string + x-linode-cli-display: 4 + check: + default: none + description: |- + The type of check to perform against backends to ensure they are serving requests. This is used to determine if backends are up or down. + + - If `none` no check is performed. + - `connection` requires only a connection to the backend to succeed. + - `http` and `http_body` rely on the backend serving HTTP, and that the response returned matches what is expected. + enum: + - none + - connection + - http + - http_body + example: http_body + type: string + check_attempts: + default: 3 + description: How many times to attempt a check before considering a backend to be down. + example: 3 + maximum: 30 + minimum: 1 + type: integer + check_body: + description: Use when the active health `check` type is `http_body`. This value must be present in the response body of the check in order for it to pass. If this value is not present in the response body of a check request, the backend is considered to be down. + example: it works + type: string + check_interval: + default: 5 + description: |- + How often, in seconds, to check that backends are up and serving requests. + + Must be greater than `check_timeout`. + example: 90 + maximum: 3600 + minimum: 2 + type: integer + check_passive: + default: true + description: If `true`, any response from this backend with a `5xx` status code will be enough for it to be considered unhealthy and taken out of rotation. + example: true + type: boolean + x-linode-cli-display: 6 + check_path: + description: The URL path to check on each backend. Use when the active health `check` type is `http`. If the backend doesn't respond to this request, it's considered to be down. + example: /test + pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ + type: string + check_timeout: + default: 3 + description: |- + How long, in seconds, to wait for a check attempt before considering it failed. + + Must be less than `check_interval`. + example: 10 + maximum: 30 + minimum: 1 + type: integer + cipher_suite: + default: recommended + description: |- + What ciphers to use for SSL connections served by this NodeBalancer. + + - `legacy` is considered insecure and should only be used if necessary. + enum: + - recommended + - legacy + example: recommended + type: string + x-linode-cli-color: + default_: white + legacy: red + x-linode-cli-display: 7 + id: + description: __Read-only__ This config's unique ID. + example: 5000 + readOnly: true + type: integer + x-linode-cli-display: 1 + nodebalancer_id: + description: __Read-only__ The ID for the NodeBalancer this config belongs to. + example: 12345 + readOnly: true + type: integer + nodes: + description: The NodeBalancer nodes that serve this configuration. + items: + additionalProperties: false + description: A NodeBalancer node represents a single backend serving requests for a single port of a NodeBalancer. Nodes are specific to NodeBalancer configs, and serve traffic over their private IP. If the same Linode is serving traffic for more than one port on the same NodeBalancer, one NodeBalancer node is required for each config (port) it should serve requests on. For example, if you have four backends, and each should respond to both HTTP and HTTPS requests, you will need two NodeBalancer configs (port 80 and port 443) and four backends each, one for each of the Linodes serving requests for that port. + properties: + address: + description: The private IP Address where this backend can be reached. This _must_ be a private IP address. + example: 192.168.210.120:80 + format: ip + type: string + x-linode-cli-display: 3 + config_id: + description: __Read-only__ The NodeBalancer Config ID that this Node belongs to. + example: 4567 + readOnly: true + type: integer + id: + description: __Read-only__ This node's unique ID. + example: 54321 + readOnly: true + type: integer + x-linode-cli-display: 1 + label: + description: The label for this node. This is for display purposes only. + example: node54321 + maxLength: 32 + minLength: 3 + pattern: '[a-zA-Z0-9-_.]{3,32}' + type: string + x-linode-cli-display: 2 + mode: + description: |- + The mode this NodeBalancer should use when sending traffic to this backend. + + - If set to `accept` this backend is accepting traffic. + - If set to `reject` this backend will not receive traffic. + - If set to `drain` this backend will not receive _new_ traffic, but connections already pinned to it will continue to be routed to it. + - If set to `backup`, this backend will only receive traffic if all `accept` nodes are down. + enum: + - accept + - reject + - drain + - backup + example: accept + type: string + x-linode-cli-display: 6 + nodebalancer_id: + description: __Read-only__ The NodeBalancer ID that this Node belongs to. + example: 12345 + readOnly: true + type: integer + status: + description: __Read-only__ The current status of this node, based on the configured checks of its NodeBalancer Config. + enum: + - unknown + - UP + - DOWN + example: UP + readOnly: true + type: string + x-linode-cli-color: + DOWN: red + UP: green + default_: white + unknown: yellow + x-linode-cli-display: 4 + weight: + description: Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. + example: 50 + maximum: 255 + minimum: 1 + type: integer + x-linode-cli-display: 5 + title: TCP, HTTP, or HTTPS config + x-akamai: + file-path: schemas/node-balancer-node-tcp-http-https.yaml + type: array + nodes_status: + additionalProperties: false + description: __Read-only__ Describes the health of the backends for this port. This data updates periodically as checks are performed against backends. + properties: + down: + description: __Read-only__ The number of backends considered to be `DOWN` and unhealthy. These are not in rotation, and not serving requests. + example: 0 + readOnly: true + type: integer + up: + description: __Read-only__ The number of backends considered to be `UP` and healthy, and that are serving requests. + example: 4 + readOnly: true + type: integer + readOnly: true + type: object + x-linode-cli-display: 10 + port: + default: 80 + description: This is the port the NodeBalancer listens on for this configuration. Port numbers must be unique across TCP, HTTP, and HTTPS configurations on a single NodeBalancer. However, ports assigned to TCP, HTTP, or HTTPS configurations can also be reused for UDP configurations. For example, Port 80 can simultaneously serve a TCP and a UDP configuration on the same NodeBalancer, but it can't be shared by both a TCP and an HTTP configuration. Although certain ports are traditionally associated with specific protocols, this isn't strictly enforced, and you may configure your NodeBalancer however you find useful. + example: 443 + maximum: 65535 + minimum: 1 + type: integer + x-linode-cli-display: 2 + protocol: + default: http + description: |- + The protocol the port is configured to serve, `https` in this case. + + - The `https` protocol is mutually required with `ssl_cert` and `ssl_key`. + + Review our guide on [Available protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols) for information on protocol features. + enum: + - https + example: https + type: string + x-linode-cli-display: 3 + proxy_protocol: + default: none + description: __Read-only__ Not applicable for HTTPS configs. + example: none + readOnly: true + type: string + ssl_cert: + description: |2- + + The PEM-formatted public SSL certificate (or the combined PEM-formatted SSL certificate and Certificate Authority chain) that should be served on this NodeBalancerConfig's port. + + Line breaks must be represented as `\n` in the string for requests (but not when using the Linode CLI). + + [Diffie-Hellman Parameters](https://www.linode.com/docs/products/networking/nodebalancers/guides/ssl-termination/#diffie-hellman-parameters) can be included in this value to enable forward secrecy. + + The contents of this field will not be shown in any responses that display the NodeBalancerConfig. Instead, `` will be printed where the field appears. + + The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancerConfig response are automatically derived from your certificate. Please refer to these fields to verify that the appropriate certificate was assigned to your NodeBalancerConfig. + example: + format: ssl-cert + nullable: true + type: string + ssl_commonname: + description: __Read-only__ The read-only common name automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig. + example: www.example.com + readOnly: true + type: string + x-linode-cli-display: 8 + ssl_fingerprint: + description: __Read-only__ The read-only SHA1-encoded fingerprint automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig. + example: 00:01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12:13 + readOnly: true + type: string + x-linode-cli-display: 9 + ssl_key: + description: |- + The PEM-formatted private key for the SSL certificate set in the `ssl_cert` field. + + Line breaks must be represented as `\n` in the string for requests (but not when using the Linode CLI). + + The contents of this field will not be shown in any responses that display + the NodeBalancerConfig. Instead, `` will be printed where the field + appears. + + The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancerConfig + response are automatically derived from your certificate. Please refer to these fields to + verify that the appropriate certificate was assigned to your NodeBalancerConfig. + example: + format: ssl-key + nullable: true + type: string + stickiness: + default: table + description: |- + Controls how session stickiness is handled on this port. + + - If set to `none`, connections will always be assigned a backend based on the algorithm configured. + - If set to `table`, sessions from the same remote address will be routed to the same backend. + - For HTTP or HTTPS clients, `http_cookie` allows sessions to be routed to the same backend based on a cookie set by the NodeBalancer. + enum: + - none + - table + - http_cookie + example: http_cookie + type: string + x-linode-cli-display: 5 + required: + - nodes + title: HTTPS + type: object + x-akamai: + file-path: schemas/node-balancer-config-https.yaml + x-akamai: + file-path: schemas/node-balancer-config.yaml + x-example: + x-ref: ../examples/put-node-balancer-config.json + x-linode-cli-use-schema: + additionalProperties: false + properties: + algorithm: + default: roundrobin + description: |- + The algorithm this NodeBalancer should use to route traffic to backends. + - If set to `roundrobin`, connections are allocated in a weighted circular order across the backends. + - If set to `leastconn`, allocates new connections to the backend with the least connections. + - If set to `source`, allocates the client's IP to the same backend on subsequent requests. Session `stickiness` affects this algorithm. + enum: + - roundrobin + - leastconn + - source + example: roundrobin + type: string + x-linode-cli-display: 4 + check: + default: none + description: |- + The type of check to perform against backends to ensure they're serving requests. This determines if backends are up or down. + - If `none`, no check is performed. + - If `connection`, requires a successful TCP handshake with a backend node. + - If `http`, requires a 2xx or 3xx response from the backend node. + - If `http_body`, requires the provided regular expression matches against the request's result body. + enum: + - none + - connection + - http + - http_body + example: http_body + type: string + check_attempts: + default: 3 + description: How many times to attempt a check before considering a backend to be down. + example: 3 + maximum: 30 + minimum: 1 + type: integer + check_body: + description: The check's response body needs to include this value for it to pass. Otherwise the backend is identified as being down. + example: it works + type: string + check_interval: + default: 31 + description: |- + How often, in seconds, to check that backends are up and serving requests. + + Must be greater than `check_timeout`. + example: 90 + type: integer + check_passive: + default: true + description: If `true`, any response from this backend with a `5xx` status code will be enough for it to be considered unhealthy and taken out of rotation. + example: true + type: boolean + x-linode-cli-display: 6 + check_path: + description: The URL path to check on each backend. If the backend doesn't respond to this request it's considered to be down. + example: /test + pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ + type: string + check_timeout: + default: 30 + description: How long, in seconds, to wait for a check attempt before considering it failed. Must be less than `check_interval`. + example: 10 + maximum: 30 + minimum: 1 + type: integer + cipher_suite: + default: recommended + description: What ciphers to use for SSL connections served by this NodeBalancer. The `legacy` cipher is considered insecure and should only be used if necessary. For information on recommended and legacy ciphers, see [TLS cipher suites](https://techdocs.akamai.com/cloud-computing/docs/tls-ssl-termination-on-nodebalancers#tls-cipher-suites). + enum: + - recommended + - legacy + example: recommended + type: string + x-linode-cli-color: + default_: white + legacy: red + x-linode-cli-display: 7 + id: + description: __Read-only__ This config's unique ID. + example: 4567 + readOnly: true + type: integer + x-linode-cli-display: 1 + nodebalancer_id: + description: __Read-only__ Identifies the NodeBalancer this config belongs to. + example: 12345 + readOnly: true + type: integer + nodes_status: + additionalProperties: false + description: __Read-only__ Information about the health of the backends for this port. It's updated periodically as checks are performed against backends. + properties: + down: + description: __Read-only__ The number of backends considered to be `DOWN` and unhealthy. These are not in rotation, and not serving requests. + example: 0 + readOnly: true + type: integer + up: + description: __Read-only__ The number of backends considered to be `UP` and healthy, and that are serving requests. + example: 4 + readOnly: true + type: integer + readOnly: true + type: object + x-linode-cli-display: 10 + port: + default: 80 + description: The port for this config. Ports need to be unique across configs for each NodeBalancer. For example, you can't have two configs for port 80. While some protocols are typically assigned specific ports, there's no enforcement, and you can configure your NodeBalancer however you find useful. For example, while port 443 is generally used for HTTPS, you don't need SSL configured to have a NodeBalancer listening on port 443. + example: 80 + maximum: 65535 + minimum: 1 + type: integer + x-linode-cli-display: 2 + protocol: + default: http + description: |- + The protocol this port is configured to serve. + + - The `http` and `tcp` protocols don't support `ssl_cert` and `ssl_key`. + + - For the `https` protocol, you need `ssl_cert` and `ssl_key`. + + Review our guide on [Available Protocols](https://www.linode.com/docs/products/networking/nodebalancers/guides/protocols/) for information on protocol features. + enum: + - http + - https + - tcp + example: http + type: string + x-linode-cli-display: 3 + proxy_protocol: + default: none + description: |- + ProxyProtocol is a TCP extension that sends initial TCP connection information such as source IPs, destination IPs, and ports to backend devices. This information would be lost otherwise. Backend devices must be configured to work with ProxyProtocol if enabled. + + - If omitted or set to `none`, the NodeBalancer doesn't send any auxiliary data over TCP connections. The default is `none`. + - If set to `v1`, the human-readable header format (Version 1) is used. Requires `tcp` protocol. + - If set to `v2`, the binary header format (Version 2) is used. Requires `tcp` protocol. + enum: + - none + - v1 + - v2 + example: none + type: string + ssl_cert: + description: |- + The PEM-formatted public SSL certificate (or the combined PEM-formatted SSL certificate and Certificate Authority chain) that should be served on this NodeBalancer config's port. + + Line breaks must be represented as `\n` in the string for API requests, but not when using the Linode CLI. + + You can include [Diffie-Hellman parameters](https://www.linode.com/docs/products/networking/nodebalancers/guides/ssl-termination/#diffie-hellman-parameters) in this value to enable forward secrecy. + + The provided field don't appear in any responses that display the NodeBalancer config. It's replaced with ``. + + The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancer config response are automatically derived from your certificate. Please refer to these fields to verify that the appropriate certificate was assigned to your config. + example: + format: ssl-cert + nullable: true + type: string + ssl_commonname: + description: __Read-only__ The read-only common name automatically derived from the SSL certificate assigned to this NodeBalancer config. Please refer to this field to verify that the appropriate certificate is assigned to your config. + example: www.example.com + readOnly: true + type: string + x-linode-cli-display: 8 + ssl_fingerprint: + description: __Read-only__ The read-only SHA1-encoded fingerprint automatically derived from the SSL certificate assigned to this NodeBalancer config. Please refer to this field to verify that the appropriate certificate is assigned to your config. + example: 00:01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12:13 + readOnly: true + type: string + x-linode-cli-display: 9 + ssl_key: + description: |- + The PEM-formatted private key for the SSL certificate set in the `ssl_cert` field. + + Line breaks must be represented as `\n` in the string for API requests, but not when using the Linode CLI. + + The contents of this field will not be shown in any responses that display + the NodeBalancerConfig. Instead, `` will be printed where the field + appears. + + The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancerConfig + response are automatically derived from your certificate. Please refer to these fields to + verify that the appropriate certificate was assigned to your NodeBalancerConfig. + example: + format: ssl-key + nullable: true + type: string + stickiness: + default: none + description: |- + Controls how session stickiness is handled on this port. + - If set to `none`, connections are always assigned a backend based on the algorithm configured. + - If set to `table`, sessions from the same remote address are routed to the same backend. + - For HTTP or HTTPS clients, `http_cookie` allows sessions to be routed to the same backend based on a cookie set by the NodeBalancer. + enum: + - none + - table + - http_cookie + example: http_cookie + type: string + x-linode-cli-display: 5 + type: object + x-akamai: + file-path: schemas/node-balancer-config-cli.yaml + description: The fields to update. + required: true + responses: + '200': + content: + application/json: + schema: + description: NodeBalancer `config` options for each protocol. + oneOf: + - additionalProperties: false + description: A NodeBalancer configuration defines the protocol and settings for a specific port on the NodeBalancer. These fields apply to TCP configurations. + properties: + algorithm: + default: roundrobin + description: The algorithm this TCP NodeBalancer uses to route traffic to backends. + enum: + - roundrobin + - leastconn + - source + example: leastconn + type: string + x-linode-cli-display: 4 + check: + default: none + description: |- + The type of check to perform against backends to ensure they are serving requests. This is used to determine if backends are up or down. + + - If `none`, no check is performed. + - `connection` requires only a connection to the backend to succeed. + - `http` and `http_body` rely on the backend serving HTTP, and that the response returned matches what is expected. + enum: + - none + - connection + - http + - http_body + example: http_body + type: string + check_attempts: + default: 3 + description: How many times to attempt a check before considering a backend to be down. + example: 3 + maximum: 30 + minimum: 1 + type: integer + check_body: + description: This value must be present in the response body of the check in order for it to pass. If this value is not present in the response body of a check request, the backend is considered to be down. + example: it works + type: string + check_interval: + default: 5 + description: |- + How often, in seconds, to check that backends are up and serving requests. + + Must be greater than `check_timeout`. + example: 90 + maximum: 3600 + minimum: 2 + type: integer + check_passive: + default: true + description: If `true`, any response from this backend with a `5xx` status code will be enough for it to be considered unhealthy and taken out of rotation. + example: true + type: boolean + x-linode-cli-display: 6 + check_path: + description: The URL path to check on each backend. If the backend does not respond to this request it is considered to be down. + example: /test + pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ + type: string + check_timeout: + default: 30 + description: |- + How long, in seconds, to wait for a check attempt before considering it failed. + + Must be less than `check_interval`. + example: 10 + maximum: 30 + minimum: 1 + type: integer + cipher_suite: + description: __Read-only__ Not applicable for HTTP configs. + example: recommended + readOnly: true + type: string + x-linode-cli-color: + default_: white + legacy: red + x-linode-cli-display: 7 + id: + description: __Read-only__ This config's unique ID. + example: 6000 + readOnly: true + type: integer + x-linode-cli-display: 1 + nodebalancer_id: + description: __Read-only__ The ID for the NodeBalancer this config belongs to. + example: 12345 + readOnly: true + type: integer + nodes: + description: The NodeBalancer nodes that serve this configuration. + items: + additionalProperties: false + description: A NodeBalancer node represents a single backend serving requests for a single port of a NodeBalancer. Nodes are specific to NodeBalancer configs, and serve traffic over their private IP. If the same Linode is serving traffic for more than one port on the same NodeBalancer, one NodeBalancer node is required for each config (port) it should serve requests on. For example, if you have four backends, and each should respond to both HTTP and HTTPS requests, you will need two NodeBalancer configs (port 80 and port 443) and four backends each, one for each of the Linodes serving requests for that port. + properties: + address: + description: The private IP Address where this backend can be reached. This _must_ be a private IP address. + example: 192.168.210.120:80 + format: ip + type: string + x-linode-cli-display: 3 + config_id: + description: __Read-only__ The NodeBalancer Config ID that this Node belongs to. + example: 4567 + readOnly: true + type: integer + id: + description: __Read-only__ This node's unique ID. + example: 54321 + readOnly: true + type: integer + x-linode-cli-display: 1 + label: + description: The label for this node. This is for display purposes only. + example: node54321 + maxLength: 32 + minLength: 3 + pattern: '[a-zA-Z0-9-_.]{3,32}' + type: string + x-linode-cli-display: 2 + mode: + description: |- + The mode this NodeBalancer should use when sending traffic to this backend. + + - If set to `accept` this backend is accepting traffic. + - If set to `reject` this backend will not receive traffic. + - If set to `drain` this backend will not receive _new_ traffic, but connections already pinned to it will continue to be routed to it. + - If set to `backup`, this backend will only receive traffic if all `accept` nodes are down. + enum: + - accept + - reject + - drain + - backup + example: accept + type: string + x-linode-cli-display: 6 + nodebalancer_id: + description: __Read-only__ The NodeBalancer ID that this Node belongs to. + example: 12345 + readOnly: true + type: integer + status: + description: __Read-only__ The current status of this node, based on the configured checks of its NodeBalancer Config. + enum: + - unknown + - UP + - DOWN + example: UP + readOnly: true + type: string + x-linode-cli-color: + DOWN: red + UP: green + default_: white + unknown: yellow + x-linode-cli-display: 4 + weight: + description: Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. + example: 50 + maximum: 255 + minimum: 1 + type: integer + x-linode-cli-display: 5 + title: TCP, HTTP, or HTTPS config + x-akamai: + file-path: schemas/node-balancer-node-tcp-http-https.yaml + type: array + nodes_status: + additionalProperties: false + description: __Read-only__ Describes the health of the backends for this port. This data updates periodically as checks are performed against backends. + properties: + down: + description: __Read-only__ The number of backends considered to be `DOWN` and unhealthy. These are not in rotation, and not serving requests. + example: 0 + readOnly: true + type: integer + up: + description: __Read-only__ The number of backends considered to be `UP` and healthy, and that are serving requests. + example: 4 + readOnly: true + type: integer + readOnly: true + type: object + x-linode-cli-display: 10 + port: + default: 80 + description: This is the port the NodeBalancer listens on for this configuration. Port numbers must be unique across TCP, HTTP, and HTTPS configurations on a single NodeBalancer. However, ports assigned to TCP, HTTP, or HTTPS configurations can also be reused for UDP configurations. For example, Port 80 can simultaneously serve a TCP and a UDP configuration on the same NodeBalancer, but it can't be shared by both a TCP and an HTTP configuration. Although certain ports are traditionally associated with specific protocols, this isn't strictly enforced, and you may configure your NodeBalancer however you find useful. + example: 22 + maximum: 65535 + minimum: 1 + type: integer + x-linode-cli-display: 2 + protocol: + default: http + description: |- + The protocol the port is configured to serve, `tcp` in this case. + + Review our guide on [Available protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols) for information on protocol features. + enum: + - tcp + example: tcp + type: string + x-linode-cli-display: 3 + proxy_protocol: + default: none + description: |- + Proxy protocol is a TCP extension that sends initial TCP connection information such as source or destination IPs and ports to backend devices. Proxy protocol preserves initial TCP information that would be lost otherwise. Backend devices must be configured to work with `proxy_protocol` if enabled. + + - If omitted, or set to `none`, the NodeBalancer doesn't send any auxiliary data over TCP connections. This is the default. + - If set to `v1`, the human-readable header format (Version 1) is used. Requires `tcp` protocol. + - If set to `v2`, the binary header format (Version 2) is used. Requires `tcp` protocol. + enum: + - none + - v1 + - v2 + example: none + type: string + ssl_cert: + description: __Read-only__ Not applicable for TCP configs. + example: null + nullable: true + readOnly: true + type: string + ssl_commonname: + description: __Read-only__ Not applicable for TCP configs. + example: '' + readOnly: true + type: string + x-linode-cli-display: 8 + ssl_fingerprint: + description: __Read-only__ Not applicable for TCP configs. + example: '' + readOnly: true + type: string + x-linode-cli-display: 9 + ssl_key: + description: __Read-only__ Not applicable for HTTP configs. + example: null + nullable: true + readOnly: true + type: string + stickiness: + default: none + description: |- + __Read-only__ Controls how session stickiness is handled on this port. + + Not applicable to TCP configurations. + enum: + - none + - table + - http_cookie + example: none + readOnly: true + type: string + x-linode-cli-display: 5 + required: + - nodes + title: TCP + type: object + x-akamai: + file-path: schemas/node-balancer-config-tcp.yaml + - additionalProperties: false + description: A NodeBalancer configuration defines the protocol and settings for a specific port on the NodeBalancer. These fields apply to HTTP configurations. + properties: + algorithm: + default: roundrobin + description: The algorithm this HTTP NodeBalancer uses for routing traffic to backends. + enum: + - roundrobin + - leastconn + - source + example: roundrobin + type: string + x-linode-cli-display: 4 + check: + default: none + description: |- + The type of check to perform against backends to ensure they are serving requests. This determines if backends are up or down. + + - If `none`, no check is performed. + - `connection` requires only a connection to the backend to succeed. + - `http` and `http_body` rely on the backend serving HTTP, and that the response returned matches what is expected. + enum: + - none + - connection + - http + - http_body + example: http_body + type: string + check_attempts: + default: 3 + description: How many times to attempt a check before considering a backend to be down. + example: 3 + maximum: 30 + minimum: 1 + type: integer + check_body: + description: Use when the active health `check` type is `http_body`. This value must be present in the response body of the check in order for it to pass. If this value is not present in the response body of a check request, the backend is considered to be down. + example: it works + type: string + check_interval: + default: 5 + description: |- + How often, in seconds, to check that backends are up and serving requests. + + Must be greater than `check_timeout`. + example: 90 + maximum: 3600 + minimum: 2 + type: integer + check_passive: + default: true + description: If `true`, any response from this backend with a `5xx` status code will be enough for it to be considered unhealthy and taken out of rotation. + example: true + type: boolean + x-linode-cli-display: 6 + check_path: + description: The URL path to check on each backend. Use when the active health `check` type is `http`. If the backend doesn't respond to this request, it's considered to be down. + example: /test + pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ + type: string + check_timeout: + default: 3 + description: |- + How long, in seconds, to wait for a check attempt before considering it failed. + + Must be less than `check_interval`. + example: 10 + maximum: 30 + minimum: 1 + type: integer + cipher_suite: + description: __Read-only__ Not applicable for HTTP configs. + example: recommended + readOnly: true + type: string + x-linode-cli-color: + default_: white + legacy: red + x-linode-cli-display: 7 + id: + description: __Read-only__ This config's unique ID. + example: 4000 + readOnly: true + type: integer + x-linode-cli-display: 1 + nodebalancer_id: + description: __Read-only__ Identifies the NodeBalancer this config belongs to. + example: 12345 + readOnly: true + type: integer + nodes: + description: The NodeBalancer nodes that serve this configuration. + items: + additionalProperties: false + description: A NodeBalancer node represents a single backend serving requests for a single port of a NodeBalancer. Nodes are specific to NodeBalancer configs, and serve traffic over their private IP. If the same Linode is serving traffic for more than one port on the same NodeBalancer, one NodeBalancer node is required for each config (port) it should serve requests on. For example, if you have four backends, and each should respond to both HTTP and HTTPS requests, you will need two NodeBalancer configs (port 80 and port 443) and four backends each, one for each of the Linodes serving requests for that port. + properties: + address: + description: The private IP Address where this backend can be reached. This _must_ be a private IP address. + example: 192.168.210.120:80 + format: ip + type: string + x-linode-cli-display: 3 + config_id: + description: __Read-only__ The NodeBalancer Config ID that this Node belongs to. + example: 4567 + readOnly: true + type: integer + id: + description: __Read-only__ This node's unique ID. + example: 54321 + readOnly: true + type: integer + x-linode-cli-display: 1 + label: + description: The label for this node. This is for display purposes only. + example: node54321 + maxLength: 32 + minLength: 3 + pattern: '[a-zA-Z0-9-_.]{3,32}' + type: string + x-linode-cli-display: 2 + mode: + description: |- + The mode this NodeBalancer should use when sending traffic to this backend. + + - If set to `accept` this backend is accepting traffic. + - If set to `reject` this backend will not receive traffic. + - If set to `drain` this backend will not receive _new_ traffic, but connections already pinned to it will continue to be routed to it. + - If set to `backup`, this backend will only receive traffic if all `accept` nodes are down. + enum: + - accept + - reject + - drain + - backup + example: accept + type: string + x-linode-cli-display: 6 + nodebalancer_id: + description: __Read-only__ The NodeBalancer ID that this Node belongs to. + example: 12345 + readOnly: true + type: integer + status: + description: __Read-only__ The current status of this node, based on the configured checks of its NodeBalancer Config. + enum: + - unknown + - UP + - DOWN + example: UP + readOnly: true + type: string + x-linode-cli-color: + DOWN: red + UP: green + default_: white + unknown: yellow + x-linode-cli-display: 4 + weight: + description: Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. + example: 50 + maximum: 255 + minimum: 1 + type: integer + x-linode-cli-display: 5 + title: TCP, HTTP, or HTTPS config + x-akamai: + file-path: schemas/node-balancer-node-tcp-http-https.yaml + type: array + nodes_status: + additionalProperties: false + description: __Read-only__ Describes the health of the backends for this port. This data updates periodically as checks are performed against backends. + properties: + down: + description: __Read-only__ The number of backends considered to be `DOWN` and unhealthy. These are not in rotation, and not serving requests. + example: 0 + readOnly: true + type: integer + up: + description: __Read-only__ The number of backends considered to be `UP` and healthy, and that are serving requests. + example: 4 + readOnly: true + type: integer + readOnly: true + type: object + x-linode-cli-display: 10 + port: + default: 80 + description: This is the port the NodeBalancer listens on for this configuration. Port numbers need to be unique across TCP, HTTP, and HTTPS configurations on a single NodeBalancer. However, ports assigned to TCP, HTTP, or HTTPS configurations can also be reused for UDP configurations. For example, Port 80 can simultaneously serve a TCP and a UDP configuration on the same NodeBalancer, but it can't be shared by both a TCP and an HTTP configuration. Although certain ports are traditionally associated with specific protocols, this is not strictly enforced. You may configure your NodeBalancer however is useful to you. + example: 80 + maximum: 65535 + minimum: 1 + type: integer + x-linode-cli-display: 2 + protocol: + default: http + description: |- + The protocol the port is configured to serve, `http` in this case. + Review our guide on [Available protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols) for information on protocol features. + enum: + - http + example: http + type: string + x-linode-cli-display: 3 + proxy_protocol: + default: none + description: __Read-only__ Not applicable for HTTP configs. + example: none + readOnly: true + type: string + ssl_cert: + description: __Read-only__ Not applicable for HTTP configs. + example: null + nullable: true + readOnly: true + type: string + ssl_commonname: + description: __Read-only__ Not applicable for HTTP configs. + example: '' + readOnly: true + type: string + x-linode-cli-display: 8 + ssl_fingerprint: + description: __Read-only__ Not applicable for HTTP configs. + example: '' + readOnly: true + type: string + x-linode-cli-display: 9 + ssl_key: + description: __Read-only__ Not applicable for HTTP configs. + example: null + nullable: true + readOnly: true + type: string + stickiness: + default: table + description: |- + Controls how session stickiness is handled on this port. + + - If set to `none`, connections will always be assigned a backend based on the algorithm configured. + - If set to `table`, sessions from the same remote address will be routed to the same backend. + - If set to `http_cookie`, sessions are routed to the same backend based on a cookie set by the NodeBalancer. + enum: + - none + - table + - http_cookie + example: http_cookie + type: string + x-linode-cli-display: 5 + required: + - nodes + title: HTTP + type: object + x-akamai: + file-path: schemas/node-balancer-config-http.yaml + - additionalProperties: false + description: A NodeBalancer configuration defines the protocol and settings for a specific port on the NodeBalancer. These fields apply to HTTPS configurations. + properties: + algorithm: + default: roundrobin + description: The algorithm this HTTPS NodeBalancer uses for routing traffic to backends. + enum: + - roundrobin + - leastconn + - source + example: roundrobin + type: string + x-linode-cli-display: 4 + check: + default: none + description: |- + The type of check to perform against backends to ensure they are serving requests. This is used to determine if backends are up or down. + + - If `none` no check is performed. + - `connection` requires only a connection to the backend to succeed. + - `http` and `http_body` rely on the backend serving HTTP, and that the response returned matches what is expected. + enum: + - none + - connection + - http + - http_body + example: http_body + type: string + check_attempts: + default: 3 + description: How many times to attempt a check before considering a backend to be down. + example: 3 + maximum: 30 + minimum: 1 + type: integer + check_body: + description: Use when the active health `check` type is `http_body`. This value must be present in the response body of the check in order for it to pass. If this value is not present in the response body of a check request, the backend is considered to be down. + example: it works + type: string + check_interval: + default: 5 + description: |- + How often, in seconds, to check that backends are up and serving requests. + + Must be greater than `check_timeout`. + example: 90 + maximum: 3600 + minimum: 2 + type: integer + check_passive: + default: true + description: If `true`, any response from this backend with a `5xx` status code will be enough for it to be considered unhealthy and taken out of rotation. + example: true + type: boolean + x-linode-cli-display: 6 + check_path: + description: The URL path to check on each backend. Use when the active health `check` type is `http`. If the backend doesn't respond to this request, it's considered to be down. + example: /test + pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ + type: string + check_timeout: + default: 3 + description: |- + How long, in seconds, to wait for a check attempt before considering it failed. + + Must be less than `check_interval`. + example: 10 + maximum: 30 + minimum: 1 + type: integer + cipher_suite: + default: recommended + description: |- + What ciphers to use for SSL connections served by this NodeBalancer. + + - `legacy` is considered insecure and should only be used if necessary. + enum: + - recommended + - legacy + example: recommended + type: string + x-linode-cli-color: + default_: white + legacy: red + x-linode-cli-display: 7 + id: + description: __Read-only__ This config's unique ID. + example: 5000 + readOnly: true + type: integer + x-linode-cli-display: 1 + nodebalancer_id: + description: __Read-only__ The ID for the NodeBalancer this config belongs to. + example: 12345 + readOnly: true + type: integer + nodes: + description: The NodeBalancer nodes that serve this configuration. + items: + additionalProperties: false + description: A NodeBalancer node represents a single backend serving requests for a single port of a NodeBalancer. Nodes are specific to NodeBalancer configs, and serve traffic over their private IP. If the same Linode is serving traffic for more than one port on the same NodeBalancer, one NodeBalancer node is required for each config (port) it should serve requests on. For example, if you have four backends, and each should respond to both HTTP and HTTPS requests, you will need two NodeBalancer configs (port 80 and port 443) and four backends each, one for each of the Linodes serving requests for that port. + properties: + address: + description: The private IP Address where this backend can be reached. This _must_ be a private IP address. + example: 192.168.210.120:80 + format: ip + type: string + x-linode-cli-display: 3 + config_id: + description: __Read-only__ The NodeBalancer Config ID that this Node belongs to. + example: 4567 + readOnly: true + type: integer + id: + description: __Read-only__ This node's unique ID. + example: 54321 + readOnly: true + type: integer + x-linode-cli-display: 1 + label: + description: The label for this node. This is for display purposes only. + example: node54321 + maxLength: 32 + minLength: 3 + pattern: '[a-zA-Z0-9-_.]{3,32}' + type: string + x-linode-cli-display: 2 + mode: + description: |- + The mode this NodeBalancer should use when sending traffic to this backend. + + - If set to `accept` this backend is accepting traffic. + - If set to `reject` this backend will not receive traffic. + - If set to `drain` this backend will not receive _new_ traffic, but connections already pinned to it will continue to be routed to it. + - If set to `backup`, this backend will only receive traffic if all `accept` nodes are down. + enum: + - accept + - reject + - drain + - backup + example: accept + type: string + x-linode-cli-display: 6 + nodebalancer_id: + description: __Read-only__ The NodeBalancer ID that this Node belongs to. + example: 12345 + readOnly: true + type: integer + status: + description: __Read-only__ The current status of this node, based on the configured checks of its NodeBalancer Config. + enum: + - unknown + - UP + - DOWN + example: UP + readOnly: true + type: string + x-linode-cli-color: + DOWN: red + UP: green + default_: white + unknown: yellow + x-linode-cli-display: 4 + weight: + description: Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. + example: 50 + maximum: 255 + minimum: 1 + type: integer + x-linode-cli-display: 5 + title: TCP, HTTP, or HTTPS config + x-akamai: + file-path: schemas/node-balancer-node-tcp-http-https.yaml + type: array + nodes_status: + additionalProperties: false + description: __Read-only__ Describes the health of the backends for this port. This data updates periodically as checks are performed against backends. + properties: + down: + description: __Read-only__ The number of backends considered to be `DOWN` and unhealthy. These are not in rotation, and not serving requests. + example: 0 + readOnly: true + type: integer + up: + description: __Read-only__ The number of backends considered to be `UP` and healthy, and that are serving requests. + example: 4 + readOnly: true + type: integer + readOnly: true + type: object + x-linode-cli-display: 10 + port: + default: 80 + description: This is the port the NodeBalancer listens on for this configuration. Port numbers must be unique across TCP, HTTP, and HTTPS configurations on a single NodeBalancer. However, ports assigned to TCP, HTTP, or HTTPS configurations can also be reused for UDP configurations. For example, Port 80 can simultaneously serve a TCP and a UDP configuration on the same NodeBalancer, but it can't be shared by both a TCP and an HTTP configuration. Although certain ports are traditionally associated with specific protocols, this isn't strictly enforced, and you may configure your NodeBalancer however you find useful. + example: 443 + maximum: 65535 + minimum: 1 + type: integer + x-linode-cli-display: 2 + protocol: + default: http + description: |- + The protocol the port is configured to serve, `https` in this case. + + - The `https` protocol is mutually required with `ssl_cert` and `ssl_key`. + + Review our guide on [Available protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols) for information on protocol features. + enum: + - https + example: https + type: string + x-linode-cli-display: 3 + proxy_protocol: + default: none + description: __Read-only__ Not applicable for HTTPS configs. + example: none + readOnly: true + type: string + ssl_cert: + description: |2- + + The PEM-formatted public SSL certificate (or the combined PEM-formatted SSL certificate and Certificate Authority chain) that should be served on this NodeBalancerConfig's port. + + Line breaks must be represented as `\n` in the string for requests (but not when using the Linode CLI). + + [Diffie-Hellman Parameters](https://www.linode.com/docs/products/networking/nodebalancers/guides/ssl-termination/#diffie-hellman-parameters) can be included in this value to enable forward secrecy. + + The contents of this field will not be shown in any responses that display the NodeBalancerConfig. Instead, `` will be printed where the field appears. + + The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancerConfig response are automatically derived from your certificate. Please refer to these fields to verify that the appropriate certificate was assigned to your NodeBalancerConfig. + example: + format: ssl-cert + nullable: true + type: string + ssl_commonname: + description: __Read-only__ The read-only common name automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig. + example: www.example.com + readOnly: true + type: string + x-linode-cli-display: 8 + ssl_fingerprint: + description: __Read-only__ The read-only SHA1-encoded fingerprint automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig. + example: 00:01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12:13 + readOnly: true + type: string + x-linode-cli-display: 9 + ssl_key: + description: |- + The PEM-formatted private key for the SSL certificate set in the `ssl_cert` field. + + Line breaks must be represented as `\n` in the string for requests (but not when using the Linode CLI). + + The contents of this field will not be shown in any responses that display + the NodeBalancerConfig. Instead, `` will be printed where the field + appears. + + The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancerConfig + response are automatically derived from your certificate. Please refer to these fields to + verify that the appropriate certificate was assigned to your NodeBalancerConfig. + example: + format: ssl-key + nullable: true + type: string + stickiness: + default: table + description: |- + Controls how session stickiness is handled on this port. + + - If set to `none`, connections will always be assigned a backend based on the algorithm configured. + - If set to `table`, sessions from the same remote address will be routed to the same backend. + - For HTTP or HTTPS clients, `http_cookie` allows sessions to be routed to the same backend based on a cookie set by the NodeBalancer. + enum: + - none + - table + - http_cookie + example: http_cookie + type: string + x-linode-cli-display: 5 + required: + - nodes + title: HTTPS + type: object + x-akamai: + file-path: schemas/node-balancer-config-https.yaml + x-akamai: + file-path: schemas/node-balancer-config.yaml + x-example: + x-ref: ../examples/get-node-balancer-config-200.json + x-linode-cli-use-schema: + additionalProperties: false + properties: + algorithm: + default: roundrobin + description: |- + The algorithm this NodeBalancer should use to route traffic to backends. + - If set to `roundrobin`, connections are allocated in a weighted circular order across the backends. + - If set to `leastconn`, allocates new connections to the backend with the least connections. + - If set to `source`, allocates the client's IP to the same backend on subsequent requests. Session `stickiness` affects this algorithm. + enum: + - roundrobin + - leastconn + - source + example: roundrobin + type: string + x-linode-cli-display: 4 + check: + default: none + description: |- + The type of check to perform against backends to ensure they're serving requests. This determines if backends are up or down. + - If `none`, no check is performed. + - If `connection`, requires a successful TCP handshake with a backend node. + - If `http`, requires a 2xx or 3xx response from the backend node. + - If `http_body`, requires the provided regular expression matches against the request's result body. + enum: + - none + - connection + - http + - http_body + example: http_body + type: string + check_attempts: + default: 3 + description: How many times to attempt a check before considering a backend to be down. + example: 3 + maximum: 30 + minimum: 1 + type: integer + check_body: + description: The check's response body needs to include this value for it to pass. Otherwise the backend is identified as being down. + example: it works + type: string + check_interval: + default: 31 + description: |- + How often, in seconds, to check that backends are up and serving requests. + + Must be greater than `check_timeout`. + example: 90 + type: integer + check_passive: + default: true + description: If `true`, any response from this backend with a `5xx` status code will be enough for it to be considered unhealthy and taken out of rotation. + example: true + type: boolean + x-linode-cli-display: 6 + check_path: + description: The URL path to check on each backend. If the backend doesn't respond to this request it's considered to be down. + example: /test + pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ + type: string + check_timeout: + default: 30 + description: How long, in seconds, to wait for a check attempt before considering it failed. Must be less than `check_interval`. + example: 10 + maximum: 30 + minimum: 1 + type: integer + cipher_suite: + default: recommended + description: What ciphers to use for SSL connections served by this NodeBalancer. The `legacy` cipher is considered insecure and should only be used if necessary. For information on recommended and legacy ciphers, see [TLS cipher suites](https://techdocs.akamai.com/cloud-computing/docs/tls-ssl-termination-on-nodebalancers#tls-cipher-suites). + enum: + - recommended + - legacy + example: recommended + type: string + x-linode-cli-color: + default_: white + legacy: red + x-linode-cli-display: 7 + id: + description: __Read-only__ This config's unique ID. + example: 4567 + readOnly: true + type: integer + x-linode-cli-display: 1 + nodebalancer_id: + description: __Read-only__ Identifies the NodeBalancer this config belongs to. + example: 12345 + readOnly: true + type: integer + nodes_status: + additionalProperties: false + description: __Read-only__ Information about the health of the backends for this port. It's updated periodically as checks are performed against backends. + properties: + down: + description: __Read-only__ The number of backends considered to be `DOWN` and unhealthy. These are not in rotation, and not serving requests. + example: 0 + readOnly: true + type: integer + up: + description: __Read-only__ The number of backends considered to be `UP` and healthy, and that are serving requests. + example: 4 + readOnly: true + type: integer + readOnly: true + type: object + x-linode-cli-display: 10 + port: + default: 80 + description: The port for this config. Ports need to be unique across configs for each NodeBalancer. For example, you can't have two configs for port 80. While some protocols are typically assigned specific ports, there's no enforcement, and you can configure your NodeBalancer however you find useful. For example, while port 443 is generally used for HTTPS, you don't need SSL configured to have a NodeBalancer listening on port 443. + example: 80 + maximum: 65535 + minimum: 1 + type: integer + x-linode-cli-display: 2 + protocol: + default: http + description: |- + The protocol this port is configured to serve. + + - The `http` and `tcp` protocols don't support `ssl_cert` and `ssl_key`. + + - For the `https` protocol, you need `ssl_cert` and `ssl_key`. + + Review our guide on [Available Protocols](https://www.linode.com/docs/products/networking/nodebalancers/guides/protocols/) for information on protocol features. + enum: + - http + - https + - tcp + example: http + type: string + x-linode-cli-display: 3 + proxy_protocol: + default: none + description: |- + ProxyProtocol is a TCP extension that sends initial TCP connection information such as source IPs, destination IPs, and ports to backend devices. This information would be lost otherwise. Backend devices must be configured to work with ProxyProtocol if enabled. + + - If omitted or set to `none`, the NodeBalancer doesn't send any auxiliary data over TCP connections. The default is `none`. + - If set to `v1`, the human-readable header format (Version 1) is used. Requires `tcp` protocol. + - If set to `v2`, the binary header format (Version 2) is used. Requires `tcp` protocol. + enum: + - none + - v1 + - v2 + example: none + type: string + ssl_cert: + description: |- + The PEM-formatted public SSL certificate (or the combined PEM-formatted SSL certificate and Certificate Authority chain) that should be served on this NodeBalancer config's port. + + Line breaks must be represented as `\n` in the string for API requests, but not when using the Linode CLI. + + You can include [Diffie-Hellman parameters](https://www.linode.com/docs/products/networking/nodebalancers/guides/ssl-termination/#diffie-hellman-parameters) in this value to enable forward secrecy. + + The provided field don't appear in any responses that display the NodeBalancer config. It's replaced with ``. + + The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancer config response are automatically derived from your certificate. Please refer to these fields to verify that the appropriate certificate was assigned to your config. + example: + format: ssl-cert + nullable: true + type: string + ssl_commonname: + description: __Read-only__ The read-only common name automatically derived from the SSL certificate assigned to this NodeBalancer config. Please refer to this field to verify that the appropriate certificate is assigned to your config. + example: www.example.com + readOnly: true + type: string + x-linode-cli-display: 8 + ssl_fingerprint: + description: __Read-only__ The read-only SHA1-encoded fingerprint automatically derived from the SSL certificate assigned to this NodeBalancer config. Please refer to this field to verify that the appropriate certificate is assigned to your config. + example: 00:01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12:13 + readOnly: true + type: string + x-linode-cli-display: 9 + ssl_key: + description: |- + The PEM-formatted private key for the SSL certificate set in the `ssl_cert` field. + + Line breaks must be represented as `\n` in the string for API requests, but not when using the Linode CLI. + + The contents of this field will not be shown in any responses that display + the NodeBalancerConfig. Instead, `` will be printed where the field + appears. + + The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancerConfig + response are automatically derived from your certificate. Please refer to these fields to + verify that the appropriate certificate was assigned to your NodeBalancerConfig. + example: + format: ssl-key + nullable: true + type: string + stickiness: + default: none + description: |- + Controls how session stickiness is handled on this port. + - If set to `none`, connections are always assigned a backend based on the algorithm configured. + - If set to `table`, sessions from the same remote address are routed to the same backend. + - For HTTP or HTTPS clients, `http_cookie` allows sessions to be routed to the same backend based on a cookie set by the NodeBalancer. + enum: + - none + - table + - http_cookie + example: http_cookie + type: string + x-linode-cli-display: 5 + type: object + x-akamai: + file-path: schemas/node-balancer-config-cli.yaml + description: Config updated successfully. + default: + content: + application/json: + schema: + additionalProperties: false + properties: + errors: + items: + additionalProperties: false + description: An object for describing a single error that occurred during the processing of a request. + properties: + field: + description: The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request. + example: fieldname + type: string + reason: + description: What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully. + example: fieldname must be a valid value + type: string + type: object + x-akamai: + file-path: schemas/error-object.yaml + type: array + type: object + description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes. + security: + - personalAccessToken: [] + - oauth: + - nodebalancers:read_write + summary: Update a config + tags: + - NodeBalancers + x-akamai: + tabs: + - syntax: |- + linode-cli nodebalancers config-update \ + 12345 4567 \ + --port 443 \ + --protocol https \ + --algorithm roundrobin \ + --stickiness http_cookie \ + --check http_body \ + --check_interval 90 \ + --check_timeout 10 \ + --check_attempts 3 \ + --check_path "/test" \ + --check_body "it works" \ + --check_passive true \ + --proxy_protocol "none" \ + --ssl_cert "-----BEGIN CERTIFICATE----- + CERTIFICATE_INFORMATION + -----END CERTIFICATE-----" \ + --ssl_key "-----BEGIN PRIVATE KEY----- + PRIVATE_KEY_INFORMATION + -----END PRIVATE KEY-----" \ + --cipher_suite recommended + title: 'CLI: HTTPS' + url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli + - syntax: |- + linode-cli nodebalancers config-update \ + 12345 4567 \ + --port 80 \ + --protocol tcp \ + --algorithm roundrobin \ + --stickiness none \ + --stickiness http_cookie \ + --check http_body \ + --check_interval 90 \ + --check_timeout 10 \ + --check_attempts 3 \ + --check_path "/test" \ + --check_body "it works" \ + --proxy_protocol "v2" + title: 'CLI: TCP' + url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli + - syntax: |- + linode-cli nodebalancers config-update \ + 12345 4567 \ + --port 440 \ + --protocol http \ + --algorithm roundrobin \ + --stickiness http_cookie \ + --check http_body \ + --check_interval 90 \ + --check_timeout 10 \ + --check_attempts 3 \ + --check_path "/test" \ + --check_body "it works" \ + title: 'CLI: HTTP' + url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli + - syntax: nodebalancers:read_write + title: OAuth scopes + url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth + x-linode-cli-action: config-update + x-linode-grant: read_write + x-akamai: + file-path: paths/node-balancer-config.yaml + path-info: /{apiVersion}/nodebalancers/{nodeBalancerId}/configs/{configId} + x-linode-cli-command: nodebalancers + /{apiVersion}/nodebalancers/{nodeBalancerId}/configs/{configId}/nodes: + get: + description: |- + Returns a paginated list of NodeBalancer nodes associated with this Config. These are the backends that will be sent traffic for this port. + + + <> + + --- + + + - __CLI__. + + ``` + linode-cli nodebalancers nodes-list 12345 4567 + ``` + + [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) + + - __OAuth scopes__. + + ``` + nodebalancers:read_only + ``` + + [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + externalDocs: + description: See documentation for this operation in Akamai's Linode API + url: https://techdocs.akamai.com/linode-api/reference/get-node-balancer-config-nodes + operationId: get-node-balancer-config-nodes + parameters: + - description: The page of a collection to return. + in: query + name: page + required: false + schema: + default: 1 + example: 6 + minimum: 1 + type: integer + x-akamai: + file-path: parameters/page-offset.yaml + - description: The number of items to return per page. + in: query + name: page_size + schema: + default: 100 + example: 50 + maximum: 500 + minimum: 25 + type: integer + x-akamai: + file-path: parameters/page-size.yaml + responses: + '200': + content: + application/json: + schema: + additionalProperties: false + properties: + data: + items: + description: A NodeBalancer node represents a single backend serving requests for a single port of a NodeBalancer. Nodes are specific to NodeBalancer configs, and serve traffic over their private IP. If the same Linode is serving traffic for more than one port on the same NodeBalancer, one NodeBalancer node is required for each config (port) it should serve requests on. For example, if you have four backends, and each should respond to both HTTP and HTTPS requests, you will need two NodeBalancer configs (port 80 and port 443) and four backends each, one for each of the Linodes serving requests for that port. + oneOf: + - additionalProperties: false + description: A NodeBalancer node represents a single backend serving requests for a single port of a NodeBalancer. Nodes are specific to NodeBalancer configs, and serve traffic over their private IP. If the same Linode is serving traffic for more than one port on the same NodeBalancer, one NodeBalancer node is required for each config (port) it should serve requests on. For example, if you have four backends, and each should respond to both HTTP and HTTPS requests, you will need two NodeBalancer configs (port 80 and port 443) and four backends each, one for each of the Linodes serving requests for that port. + properties: + address: + description: The private IP Address where this backend can be reached. This _must_ be a private IP address. + example: 192.168.210.120:80 + format: ip + type: string + x-linode-cli-display: 3 + config_id: + description: __Read-only__ The NodeBalancer Config ID that this Node belongs to. + example: 4567 + readOnly: true + type: integer + id: + description: __Read-only__ This node's unique ID. + example: 54321 + readOnly: true + type: integer + x-linode-cli-display: 1 + label: + description: The label for this node. This is for display purposes only. + example: node54321 + maxLength: 32 + minLength: 3 + pattern: '[a-zA-Z0-9-_.]{3,32}' + type: string + x-linode-cli-display: 2 + mode: + description: |- + The mode this NodeBalancer should use when sending traffic to this backend. + + - If set to `accept` this backend is accepting traffic. + - If set to `reject` this backend will not receive traffic. + - If set to `drain` this backend will not receive _new_ traffic, but connections already pinned to it will continue to be routed to it. + - If set to `backup`, this backend will only receive traffic if all `accept` nodes are down. + enum: + - accept + - reject + - drain + - backup + example: accept + type: string + x-linode-cli-display: 6 + nodebalancer_id: + description: __Read-only__ The NodeBalancer ID that this Node belongs to. + example: 12345 + readOnly: true + type: integer + status: + description: __Read-only__ The current status of this node, based on the configured checks of its NodeBalancer Config. + enum: + - unknown + - UP + - DOWN + example: UP + readOnly: true + type: string + x-linode-cli-color: + DOWN: red + UP: green + default_: white + unknown: yellow + x-linode-cli-display: 4 + weight: + description: Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. + example: 50 + maximum: 255 + minimum: 1 + type: integer + x-linode-cli-display: 5 + title: TCP, HTTP, or HTTPS config + x-akamai: + file-path: schemas/node-balancer-node-tcp-http-https.yaml + x-akamai: + file-path: schemas/node-balancer-node.yaml + type: array + page: + description: __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). + example: 1 + readOnly: true + type: integer + pages: + description: __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). + example: 1 + readOnly: true + type: integer + results: + description: __Read-only__ The total number of results. + example: 1 + readOnly: true + type: integer + type: object + x-akamai: + file-path: schemas/added-get-node-balancer-config-nodes-200.yaml + x-example: + x-ref: ../examples/get-node-balancer-config-nodes-200.json + x-linode-cli-use-schema: + additionalProperties: false + properties: + address: + description: The private IP address where this backend can be reached. This _must_ be a private IP address. + example: 192.168.210.120:80 + format: ip + type: string + x-linode-cli-display: 3 + config_id: + description: __Read-only__ The NodeBalancer config ID that this node belongs to. + example: 4567 + readOnly: true + type: integer + id: + description: __Read-only__ This node's unique ID. + example: 54321 + readOnly: true + type: integer + x-linode-cli-display: 1 + label: + description: The label for this node. This is for display purposes only. + example: node54321 + maxLength: 32 + minLength: 3 + pattern: ^[a-zA-Z0-9-_.]{3,32}$ + type: string + x-linode-cli-display: 2 + mode: + description: |- + The mode this NodeBalancer should use when sending traffic to this backend. + + - If set to `accept`, this backend is accepting traffic. + - If set to `reject`, this backend will not receive traffic. + - If set to `drain`, this backend will not receive _new_ traffic, but connections already pinned to it will continue to be routed to it. + - If set to `backup`, this backend will only receive traffic if all `accept` nodes are down. + enum: + - accept + - reject + - drain + - backup + example: accept + type: string + x-linode-cli-display: 6 + nodebalancer_id: + description: __Read-only__ The NodeBalancer ID that this node belongs to. + example: 12345 + readOnly: true + type: integer + status: + description: __Read-only__ The current status of this node, based on the configured checks of its NodeBalancer Config. + enum: + - unknown + - UP + - DOWN + example: UP + readOnly: true + type: string + x-linode-cli-color: + DOWN: red + UP: green + default_: white + unknown: yellow + x-linode-cli-display: 4 + weight: + description: Used when picking a backend to serve a request and is not yet pinned to a single backend. Nodes with a higher weight receive more traffic. + example: 50 + maximum: 255 + minimum: 1 + type: integer + x-linode-cli-display: 5 + type: object + x-akamai: + file-path: schemas/node-balancer-node-cli.yaml + description: A paginated list of NodeBalancer nodes. + default: + content: + application/json: + schema: + additionalProperties: false + properties: + errors: + items: + additionalProperties: false + description: An object for describing a single error that occurred during the processing of a request. + properties: + field: + description: The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request. + example: fieldname + type: string + reason: + description: What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully. + example: fieldname must be a valid value + type: string + type: object + x-akamai: + file-path: schemas/error-object.yaml + type: array + type: object + description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes. + security: + - personalAccessToken: [] + - oauth: + - nodebalancers:read_only + summary: List nodes + tags: + - NodeBalancers + x-akamai: + tabs: + - syntax: linode-cli nodebalancers nodes-list 12345 4567 + title: CLI + url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli + - syntax: nodebalancers:read_only + title: OAuth scopes + url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth + x-linode-cli-action: nodes-list + x-linode-grant: read_only + parameters: + - description: __Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta. + in: path + name: apiVersion + required: true + schema: + enum: + - v4 + - v4beta + type: string + x-akamai: + file-path: parameters/api-version-path.yaml + - description: The ID of the NodeBalancer to access. + in: path + name: nodeBalancerId + required: true + schema: + type: integer + x-akamai: + file-path: parameters/node-balancer-id.yaml + - description: The ID of the NodeBalancer config to access. + in: path + name: configId + required: true + schema: + example: 521 + type: integer + x-akamai: + file-path: parameters/config-id-node-balancer.yaml + post: + description: |- + Creates a NodeBalancer node, a backend that can accept traffic for this NodeBalancer Config. Nodes are routed requests on the configured port based on their status. + + + <> + + --- + + + - __CLI: TCP, HTTP, HTTPS__. + + ``` + linode-cli nodebalancers node-create \ + 12345 4567 \ + --address 192.168.210.120:80 \ + --label node54321 \ + --weight 50 \ + --mode accept + ``` + + [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) + + - __OAuth scopes__. + + ``` + nodebalancers:read_write + ``` + + [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + externalDocs: + description: See documentation for this operation in Akamai's Linode API + url: https://techdocs.akamai.com/linode-api/reference/post-node-balancer-node + operationId: post-node-balancer-node + requestBody: + content: + application/json: + schema: + allOf: + - description: A NodeBalancer node represents a single backend serving requests for a single port of a NodeBalancer. Nodes are specific to NodeBalancer configs, and serve traffic over their private IP. If the same Linode is serving traffic for more than one port on the same NodeBalancer, one NodeBalancer node is required for each config (port) it should serve requests on. For example, if you have four backends, and each should respond to both HTTP and HTTPS requests, you will need two NodeBalancer configs (port 80 and port 443) and four backends each, one for each of the Linodes serving requests for that port. + oneOf: + - additionalProperties: false + description: A NodeBalancer node represents a single backend serving requests for a single port of a NodeBalancer. Nodes are specific to NodeBalancer configs, and serve traffic over their private IP. If the same Linode is serving traffic for more than one port on the same NodeBalancer, one NodeBalancer node is required for each config (port) it should serve requests on. For example, if you have four backends, and each should respond to both HTTP and HTTPS requests, you will need two NodeBalancer configs (port 80 and port 443) and four backends each, one for each of the Linodes serving requests for that port. + properties: + address: + description: The private IP Address where this backend can be reached. This _must_ be a private IP address. + example: 192.168.210.120:80 + format: ip + type: string + x-linode-cli-display: 3 + config_id: + description: __Read-only__ The NodeBalancer Config ID that this Node belongs to. + example: 4567 + readOnly: true + type: integer + id: + description: __Read-only__ This node's unique ID. + example: 54321 + readOnly: true + type: integer + x-linode-cli-display: 1 + label: + description: The label for this node. This is for display purposes only. + example: node54321 + maxLength: 32 + minLength: 3 + pattern: '[a-zA-Z0-9-_.]{3,32}' + type: string + x-linode-cli-display: 2 + mode: + description: |- + The mode this NodeBalancer should use when sending traffic to this backend. + + - If set to `accept` this backend is accepting traffic. + - If set to `reject` this backend will not receive traffic. + - If set to `drain` this backend will not receive _new_ traffic, but connections already pinned to it will continue to be routed to it. + - If set to `backup`, this backend will only receive traffic if all `accept` nodes are down. + enum: + - accept + - reject + - drain + - backup + example: accept + type: string + x-linode-cli-display: 6 + nodebalancer_id: + description: __Read-only__ The NodeBalancer ID that this Node belongs to. + example: 12345 + readOnly: true + type: integer + status: + description: __Read-only__ The current status of this node, based on the configured checks of its NodeBalancer Config. + enum: + - unknown + - UP + - DOWN + example: UP + readOnly: true + type: string + x-linode-cli-color: + DOWN: red + UP: green + default_: white + unknown: yellow + x-linode-cli-display: 4 + weight: + description: Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. + example: 50 + maximum: 255 + minimum: 1 + type: integer + x-linode-cli-display: 5 + title: TCP, HTTP, or HTTPS config + x-akamai: + file-path: schemas/node-balancer-node-tcp-http-https.yaml + x-akamai: + file-path: schemas/node-balancer-node.yaml + required: + - label + - address + x-akamai: + file-path: schemas/added-post-node-balancer-node.yaml + x-example: + x-ref: ../examples/post-node-balancer-node.json + x-linode-cli-use-schema: + additionalProperties: false + properties: + address: + description: The private IP address where this backend can be reached. This _must_ be a private IP address. + example: 192.168.210.120:80 + format: ip + type: string + x-linode-cli-display: 3 + config_id: + description: __Read-only__ The NodeBalancer config ID that this node belongs to. + example: 4567 + readOnly: true + type: integer + id: + description: __Read-only__ This node's unique ID. + example: 54321 + readOnly: true + type: integer + x-linode-cli-display: 1 + label: + description: The label for this node. This is for display purposes only. + example: node54321 + maxLength: 32 + minLength: 3 + pattern: ^[a-zA-Z0-9-_.]{3,32}$ + type: string + x-linode-cli-display: 2 + mode: + description: |- + The mode this NodeBalancer should use when sending traffic to this backend. + + - If set to `accept`, this backend is accepting traffic. + - If set to `reject`, this backend will not receive traffic. + - If set to `drain`, this backend will not receive _new_ traffic, but connections already pinned to it will continue to be routed to it. + - If set to `backup`, this backend will only receive traffic if all `accept` nodes are down. + enum: + - accept + - reject + - drain + - backup + example: accept + type: string + x-linode-cli-display: 6 + nodebalancer_id: + description: __Read-only__ The NodeBalancer ID that this node belongs to. + example: 12345 + readOnly: true + type: integer + status: + description: __Read-only__ The current status of this node, based on the configured checks of its NodeBalancer Config. + enum: + - unknown + - UP + - DOWN + example: UP + readOnly: true + type: string + x-linode-cli-color: + DOWN: red + UP: green + default_: white + unknown: yellow + x-linode-cli-display: 4 + weight: + description: Used when picking a backend to serve a request and is not yet pinned to a single backend. Nodes with a higher weight receive more traffic. + example: 50 + maximum: 255 + minimum: 1 + type: integer + x-linode-cli-display: 5 + type: object + x-akamai: + file-path: schemas/node-balancer-node-cli.yaml + description: Information about the Node to create. + required: true + responses: + '200': + content: + application/json: + schema: + description: A NodeBalancer node represents a single backend serving requests for a single port of a NodeBalancer. Nodes are specific to NodeBalancer configs, and serve traffic over their private IP. If the same Linode is serving traffic for more than one port on the same NodeBalancer, one NodeBalancer node is required for each config (port) it should serve requests on. For example, if you have four backends, and each should respond to both HTTP and HTTPS requests, you will need two NodeBalancer configs (port 80 and port 443) and four backends each, one for each of the Linodes serving requests for that port. + oneOf: + - additionalProperties: false + description: A NodeBalancer node represents a single backend serving requests for a single port of a NodeBalancer. Nodes are specific to NodeBalancer configs, and serve traffic over their private IP. If the same Linode is serving traffic for more than one port on the same NodeBalancer, one NodeBalancer node is required for each config (port) it should serve requests on. For example, if you have four backends, and each should respond to both HTTP and HTTPS requests, you will need two NodeBalancer configs (port 80 and port 443) and four backends each, one for each of the Linodes serving requests for that port. + properties: + address: + description: The private IP Address where this backend can be reached. This _must_ be a private IP address. + example: 192.168.210.120:80 + format: ip + type: string + x-linode-cli-display: 3 + config_id: + description: __Read-only__ The NodeBalancer Config ID that this Node belongs to. + example: 4567 + readOnly: true + type: integer + id: + description: __Read-only__ This node's unique ID. + example: 54321 + readOnly: true + type: integer + x-linode-cli-display: 1 + label: + description: The label for this node. This is for display purposes only. + example: node54321 + maxLength: 32 + minLength: 3 + pattern: '[a-zA-Z0-9-_.]{3,32}' + type: string + x-linode-cli-display: 2 + mode: + description: |- + The mode this NodeBalancer should use when sending traffic to this backend. + + - If set to `accept` this backend is accepting traffic. + - If set to `reject` this backend will not receive traffic. + - If set to `drain` this backend will not receive _new_ traffic, but connections already pinned to it will continue to be routed to it. + - If set to `backup`, this backend will only receive traffic if all `accept` nodes are down. + enum: + - accept + - reject + - drain + - backup + example: accept + type: string + x-linode-cli-display: 6 + nodebalancer_id: + description: __Read-only__ The NodeBalancer ID that this Node belongs to. + example: 12345 + readOnly: true + type: integer + status: + description: __Read-only__ The current status of this node, based on the configured checks of its NodeBalancer Config. + enum: + - unknown + - UP + - DOWN + example: UP + readOnly: true + type: string + x-linode-cli-color: + DOWN: red + UP: green + default_: white + unknown: yellow + x-linode-cli-display: 4 + weight: + description: Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. + example: 50 + maximum: 255 + minimum: 1 + type: integer + x-linode-cli-display: 5 + title: TCP, HTTP, or HTTPS config + x-akamai: + file-path: schemas/node-balancer-node-tcp-http-https.yaml + x-akamai: + file-path: schemas/node-balancer-node.yaml + x-example: + x-ref: ../examples/post-node-balancer-node-200.json + x-linode-cli-use-schema: + additionalProperties: false + properties: + address: + description: The private IP address where this backend can be reached. This _must_ be a private IP address. + example: 192.168.210.120:80 + format: ip + type: string + x-linode-cli-display: 3 + config_id: + description: __Read-only__ The NodeBalancer config ID that this node belongs to. + example: 4567 + readOnly: true + type: integer + id: + description: __Read-only__ This node's unique ID. + example: 54321 + readOnly: true + type: integer + x-linode-cli-display: 1 + label: + description: The label for this node. This is for display purposes only. + example: node54321 + maxLength: 32 + minLength: 3 + pattern: ^[a-zA-Z0-9-_.]{3,32}$ + type: string + x-linode-cli-display: 2 + mode: + description: |- + The mode this NodeBalancer should use when sending traffic to this backend. + + - If set to `accept`, this backend is accepting traffic. + - If set to `reject`, this backend will not receive traffic. + - If set to `drain`, this backend will not receive _new_ traffic, but connections already pinned to it will continue to be routed to it. + - If set to `backup`, this backend will only receive traffic if all `accept` nodes are down. + enum: + - accept + - reject + - drain + - backup + example: accept + type: string + x-linode-cli-display: 6 + nodebalancer_id: + description: __Read-only__ The NodeBalancer ID that this node belongs to. + example: 12345 + readOnly: true + type: integer + status: + description: __Read-only__ The current status of this node, based on the configured checks of its NodeBalancer Config. + enum: + - unknown + - UP + - DOWN + example: UP + readOnly: true + type: string + x-linode-cli-color: + DOWN: red + UP: green + default_: white + unknown: yellow + x-linode-cli-display: 4 + weight: + description: Used when picking a backend to serve a request and is not yet pinned to a single backend. Nodes with a higher weight receive more traffic. + example: 50 + maximum: 255 + minimum: 1 + type: integer + x-linode-cli-display: 5 + type: object + x-akamai: + file-path: schemas/node-balancer-node-cli.yaml + description: Node created successfully. + default: + content: + application/json: + schema: + additionalProperties: false + properties: + errors: + items: + additionalProperties: false + description: An object for describing a single error that occurred during the processing of a request. + properties: + field: + description: The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request. + example: fieldname + type: string + reason: + description: What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully. + example: fieldname must be a valid value + type: string + type: object + x-akamai: + file-path: schemas/error-object.yaml + type: array + type: object + description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes. + security: + - personalAccessToken: [] + - oauth: + - nodebalancers:read_write + summary: Create a node + tags: + - NodeBalancers + x-akamai: + tabs: + - syntax: |- + linode-cli nodebalancers node-create \ + 12345 4567 \ + --address 192.168.210.120:80 \ + --label node54321 \ + --weight 50 \ + --mode accept + title: 'CLI: TCP, HTTP, HTTPS' + url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli + - syntax: nodebalancers:read_write + title: OAuth scopes + url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth + x-linode-cli-action: node-create + x-linode-grant: read_write + x-akamai: + file-path: paths/nodes.yaml + path-info: /{apiVersion}/nodebalancers/{nodeBalancerId}/configs/{configId}/nodes + x-linode-cli-command: nodebalancers + /{apiVersion}/nodebalancers/{nodeBalancerId}/configs/{configId}/nodes/{nodeId}: + delete: + description: |- + Deletes a Node from this Config. This backend will no longer receive traffic for the configured port of this NodeBalancer. + + This does not change or remove the Linode whose address was used in the creation of this Node. + + + <> + + --- + + + - __CLI__. + + ``` + linode-cli nodebalancers node-delete \ + 12345 4567 54321 + ``` + + [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) + + - __OAuth scopes__. + + ``` + nodebalancers:read_write + ``` + + [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + externalDocs: + description: See documentation for this operation in Akamai's Linode API + url: https://techdocs.akamai.com/linode-api/reference/delete-node-balancer-config-node + operationId: delete-node-balancer-config-node + responses: + '200': + content: + application/json: + schema: + description: The API responds with an empty object. + maxProperties: 0 + type: object + x-akamai: + file-path: schemas/added-empty-obj.yaml + x-example: + x-ref: ../examples/delete-node-balancer-config-node-200.json + description: Node deleted successfully. + default: + content: + application/json: + schema: + additionalProperties: false + properties: + errors: + items: + additionalProperties: false + description: An object for describing a single error that occurred during the processing of a request. + properties: + field: + description: The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request. + example: fieldname + type: string + reason: + description: What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully. + example: fieldname must be a valid value + type: string + type: object + x-akamai: + file-path: schemas/error-object.yaml + type: array + type: object + description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes. + security: + - personalAccessToken: [] + - oauth: + - nodebalancers:read_write + summary: Delete a NodeBalancer's node + tags: + - NodeBalancers + x-akamai: + tabs: + - syntax: |- + linode-cli nodebalancers node-delete \ + 12345 4567 54321 + title: CLI + url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli + - syntax: nodebalancers:read_write + title: OAuth scopes + url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth + x-linode-cli-action: node-delete + x-linode-grant: read_write + get: + description: |- + Returns information about a single Node, a backend for this NodeBalancer's configured port. + + + <> + + --- + + + - __CLI__. + + ``` + linode-cli nodebalancers node-view 12345 4567 54321 + ``` + + [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) + + - __OAuth scopes__. + + ``` + nodebalancers:read_write + ``` + + [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + externalDocs: + description: See documentation for this operation in Akamai's Linode API + url: https://techdocs.akamai.com/linode-api/reference/get-node-balancer-node + operationId: get-node-balancer-node + responses: + '200': + content: + application/json: + schema: + description: A NodeBalancer node represents a single backend serving requests for a single port of a NodeBalancer. Nodes are specific to NodeBalancer configs, and serve traffic over their private IP. If the same Linode is serving traffic for more than one port on the same NodeBalancer, one NodeBalancer node is required for each config (port) it should serve requests on. For example, if you have four backends, and each should respond to both HTTP and HTTPS requests, you will need two NodeBalancer configs (port 80 and port 443) and four backends each, one for each of the Linodes serving requests for that port. + oneOf: + - additionalProperties: false + description: A NodeBalancer node represents a single backend serving requests for a single port of a NodeBalancer. Nodes are specific to NodeBalancer configs, and serve traffic over their private IP. If the same Linode is serving traffic for more than one port on the same NodeBalancer, one NodeBalancer node is required for each config (port) it should serve requests on. For example, if you have four backends, and each should respond to both HTTP and HTTPS requests, you will need two NodeBalancer configs (port 80 and port 443) and four backends each, one for each of the Linodes serving requests for that port. + properties: + address: + description: The private IP Address where this backend can be reached. This _must_ be a private IP address. + example: 192.168.210.120:80 + format: ip + type: string + x-linode-cli-display: 3 + config_id: + description: __Read-only__ The NodeBalancer Config ID that this Node belongs to. + example: 4567 + readOnly: true + type: integer + id: + description: __Read-only__ This node's unique ID. + example: 54321 + readOnly: true + type: integer + x-linode-cli-display: 1 + label: + description: The label for this node. This is for display purposes only. + example: node54321 + maxLength: 32 + minLength: 3 + pattern: '[a-zA-Z0-9-_.]{3,32}' + type: string + x-linode-cli-display: 2 + mode: + description: |- + The mode this NodeBalancer should use when sending traffic to this backend. + + - If set to `accept` this backend is accepting traffic. + - If set to `reject` this backend will not receive traffic. + - If set to `drain` this backend will not receive _new_ traffic, but connections already pinned to it will continue to be routed to it. + - If set to `backup`, this backend will only receive traffic if all `accept` nodes are down. + enum: + - accept + - reject + - drain + - backup + example: accept + type: string + x-linode-cli-display: 6 + nodebalancer_id: + description: __Read-only__ The NodeBalancer ID that this Node belongs to. + example: 12345 + readOnly: true + type: integer + status: + description: __Read-only__ The current status of this node, based on the configured checks of its NodeBalancer Config. + enum: + - unknown + - UP + - DOWN + example: UP + readOnly: true + type: string + x-linode-cli-color: + DOWN: red + UP: green + default_: white + unknown: yellow + x-linode-cli-display: 4 + weight: + description: Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. + example: 50 + maximum: 255 + minimum: 1 + type: integer + x-linode-cli-display: 5 + title: TCP, HTTP, or HTTPS config + x-akamai: + file-path: schemas/node-balancer-node-tcp-http-https.yaml + x-akamai: + file-path: schemas/node-balancer-node.yaml + x-example: + x-ref: ../examples/get-node-balancer-node-200.json + x-linode-cli-use-schema: + additionalProperties: false + properties: + address: + description: The private IP address where this backend can be reached. This _must_ be a private IP address. + example: 192.168.210.120:80 + format: ip + type: string + x-linode-cli-display: 3 + config_id: + description: __Read-only__ The NodeBalancer config ID that this node belongs to. + example: 4567 + readOnly: true + type: integer + id: + description: __Read-only__ This node's unique ID. + example: 54321 + readOnly: true + type: integer + x-linode-cli-display: 1 + label: + description: The label for this node. This is for display purposes only. + example: node54321 + maxLength: 32 + minLength: 3 + pattern: ^[a-zA-Z0-9-_.]{3,32}$ + type: string + x-linode-cli-display: 2 + mode: + description: |- + The mode this NodeBalancer should use when sending traffic to this backend. + + - If set to `accept`, this backend is accepting traffic. + - If set to `reject`, this backend will not receive traffic. + - If set to `drain`, this backend will not receive _new_ traffic, but connections already pinned to it will continue to be routed to it. + - If set to `backup`, this backend will only receive traffic if all `accept` nodes are down. + enum: + - accept + - reject + - drain + - backup + example: accept + type: string + x-linode-cli-display: 6 + nodebalancer_id: + description: __Read-only__ The NodeBalancer ID that this node belongs to. + example: 12345 + readOnly: true + type: integer + status: + description: __Read-only__ The current status of this node, based on the configured checks of its NodeBalancer Config. + enum: + - unknown + - UP + - DOWN + example: UP + readOnly: true + type: string + x-linode-cli-color: + DOWN: red + UP: green + default_: white + unknown: yellow + x-linode-cli-display: 4 + weight: + description: Used when picking a backend to serve a request and is not yet pinned to a single backend. Nodes with a higher weight receive more traffic. + example: 50 + maximum: 255 + minimum: 1 + type: integer + x-linode-cli-display: 5 + type: object + x-akamai: + file-path: schemas/node-balancer-node-cli.yaml + description: A paginated list of NodeBalancer nodes. + default: + content: + application/json: + schema: + additionalProperties: false + properties: + errors: + items: + additionalProperties: false + description: An object for describing a single error that occurred during the processing of a request. + properties: + field: + description: The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request. + example: fieldname + type: string + reason: + description: What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully. + example: fieldname must be a valid value + type: string + type: object + x-akamai: + file-path: schemas/error-object.yaml + type: array + type: object + description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes. + security: + - personalAccessToken: [] + - oauth: + - nodebalancers:read_write + summary: Get a NodeBalancer's node + tags: + - NodeBalancers + x-akamai: + tabs: + - syntax: linode-cli nodebalancers node-view 12345 4567 54321 + title: CLI + url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli + - syntax: nodebalancers:read_write + title: OAuth scopes + url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth + x-linode-cli-action: node-view + x-linode-grant: read_only + parameters: + - description: __Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta. + in: path + name: apiVersion + required: true + schema: + enum: + - v4 + - v4beta + type: string + x-akamai: + file-path: parameters/api-version-path.yaml + - description: The ID of the NodeBalancer to access. + in: path + name: nodeBalancerId + required: true + schema: + type: integer + x-akamai: + file-path: parameters/node-balancer-id.yaml + - description: The ID of the Config to access. + in: path + name: configId + required: true + schema: + example: 521 + type: integer + x-akamai: + file-path: parameters/config-id.yaml + - description: The ID of the Node to access. + in: path + name: nodeId + required: true + schema: + type: string + x-akamai: + file-path: parameters/node-id.yaml + put: + description: |- + Updates information about a Node, a backend for this NodeBalancer's configured port. + + + <> + + --- + + + - __CLI: TCP, HTTP, HTTPS__. + + ``` + linode-cli nodebalancers node-update \ + 12345 4567 54321 \ + --address 192.168.210.120:80 \ + --label node54321 \ + --weight 50 \ + --mode accept + ``` + + [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) + + - __OAuth scopes__. + + ``` + nodebalancers:read_write + ``` + + [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + externalDocs: + description: See documentation for this operation in Akamai's Linode API + url: https://techdocs.akamai.com/linode-api/reference/put-node-balancer-node + operationId: put-node-balancer-node + requestBody: + content: + application/json: + schema: + description: A NodeBalancer node represents a single backend serving requests for a single port of a NodeBalancer. Nodes are specific to NodeBalancer configs, and serve traffic over their private IP. If the same Linode is serving traffic for more than one port on the same NodeBalancer, one NodeBalancer node is required for each config (port) it should serve requests on. For example, if you have four backends, and each should respond to both HTTP and HTTPS requests, you will need two NodeBalancer configs (port 80 and port 443) and four backends each, one for each of the Linodes serving requests for that port. + oneOf: + - additionalProperties: false + description: A NodeBalancer node represents a single backend serving requests for a single port of a NodeBalancer. Nodes are specific to NodeBalancer configs, and serve traffic over their private IP. If the same Linode is serving traffic for more than one port on the same NodeBalancer, one NodeBalancer node is required for each config (port) it should serve requests on. For example, if you have four backends, and each should respond to both HTTP and HTTPS requests, you will need two NodeBalancer configs (port 80 and port 443) and four backends each, one for each of the Linodes serving requests for that port. + properties: + address: + description: The private IP Address where this backend can be reached. This _must_ be a private IP address. + example: 192.168.210.120:80 + format: ip + type: string + x-linode-cli-display: 3 + config_id: + description: __Read-only__ The NodeBalancer Config ID that this Node belongs to. + example: 4567 + readOnly: true + type: integer + id: + description: __Read-only__ This node's unique ID. + example: 54321 + readOnly: true + type: integer + x-linode-cli-display: 1 + label: + description: The label for this node. This is for display purposes only. + example: node54321 + maxLength: 32 + minLength: 3 + pattern: '[a-zA-Z0-9-_.]{3,32}' + type: string + x-linode-cli-display: 2 + mode: + description: |- + The mode this NodeBalancer should use when sending traffic to this backend. + + - If set to `accept` this backend is accepting traffic. + - If set to `reject` this backend will not receive traffic. + - If set to `drain` this backend will not receive _new_ traffic, but connections already pinned to it will continue to be routed to it. + - If set to `backup`, this backend will only receive traffic if all `accept` nodes are down. + enum: + - accept + - reject + - drain + - backup + example: accept + type: string + x-linode-cli-display: 6 + nodebalancer_id: + description: __Read-only__ The NodeBalancer ID that this Node belongs to. + example: 12345 + readOnly: true + type: integer + status: + description: __Read-only__ The current status of this node, based on the configured checks of its NodeBalancer Config. + enum: + - unknown + - UP + - DOWN + example: UP + readOnly: true + type: string + x-linode-cli-color: + DOWN: red + UP: green + default_: white + unknown: yellow + x-linode-cli-display: 4 + weight: + description: Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. + example: 50 + maximum: 255 + minimum: 1 + type: integer + x-linode-cli-display: 5 + title: TCP, HTTP, or HTTPS config + x-akamai: + file-path: schemas/node-balancer-node-tcp-http-https.yaml + x-akamai: + file-path: schemas/node-balancer-node.yaml + x-example: + x-ref: ../examples/put-node-balancer-node.json + x-linode-cli-use-schema: + additionalProperties: false + properties: + address: + description: The private IP address where this backend can be reached. This _must_ be a private IP address. + example: 192.168.210.120:80 + format: ip + type: string + x-linode-cli-display: 3 + config_id: + description: __Read-only__ The NodeBalancer config ID that this node belongs to. + example: 4567 + readOnly: true + type: integer + id: + description: __Read-only__ This node's unique ID. + example: 54321 + readOnly: true + type: integer + x-linode-cli-display: 1 + label: + description: The label for this node. This is for display purposes only. + example: node54321 + maxLength: 32 + minLength: 3 + pattern: ^[a-zA-Z0-9-_.]{3,32}$ + type: string + x-linode-cli-display: 2 + mode: + description: |- + The mode this NodeBalancer should use when sending traffic to this backend. + + - If set to `accept`, this backend is accepting traffic. + - If set to `reject`, this backend will not receive traffic. + - If set to `drain`, this backend will not receive _new_ traffic, but connections already pinned to it will continue to be routed to it. + - If set to `backup`, this backend will only receive traffic if all `accept` nodes are down. + enum: + - accept + - reject + - drain + - backup + example: accept + type: string + x-linode-cli-display: 6 + nodebalancer_id: + description: __Read-only__ The NodeBalancer ID that this node belongs to. + example: 12345 + readOnly: true + type: integer + status: + description: __Read-only__ The current status of this node, based on the configured checks of its NodeBalancer Config. + enum: + - unknown + - UP + - DOWN + example: UP + readOnly: true + type: string + x-linode-cli-color: + DOWN: red + UP: green + default_: white + unknown: yellow + x-linode-cli-display: 4 + weight: + description: Used when picking a backend to serve a request and is not yet pinned to a single backend. Nodes with a higher weight receive more traffic. + example: 50 + maximum: 255 + minimum: 1 + type: integer + x-linode-cli-display: 5 + type: object + x-akamai: + file-path: schemas/node-balancer-node-cli.yaml + description: The fields to update. + required: true + responses: + '200': + content: + application/json: + schema: + description: A NodeBalancer node represents a single backend serving requests for a single port of a NodeBalancer. Nodes are specific to NodeBalancer configs, and serve traffic over their private IP. If the same Linode is serving traffic for more than one port on the same NodeBalancer, one NodeBalancer node is required for each config (port) it should serve requests on. For example, if you have four backends, and each should respond to both HTTP and HTTPS requests, you will need two NodeBalancer configs (port 80 and port 443) and four backends each, one for each of the Linodes serving requests for that port. + oneOf: + - additionalProperties: false + description: A NodeBalancer node represents a single backend serving requests for a single port of a NodeBalancer. Nodes are specific to NodeBalancer configs, and serve traffic over their private IP. If the same Linode is serving traffic for more than one port on the same NodeBalancer, one NodeBalancer node is required for each config (port) it should serve requests on. For example, if you have four backends, and each should respond to both HTTP and HTTPS requests, you will need two NodeBalancer configs (port 80 and port 443) and four backends each, one for each of the Linodes serving requests for that port. + properties: + address: + description: The private IP Address where this backend can be reached. This _must_ be a private IP address. + example: 192.168.210.120:80 + format: ip + type: string + x-linode-cli-display: 3 + config_id: + description: __Read-only__ The NodeBalancer Config ID that this Node belongs to. + example: 4567 + readOnly: true + type: integer + id: + description: __Read-only__ This node's unique ID. + example: 54321 + readOnly: true + type: integer + x-linode-cli-display: 1 + label: + description: The label for this node. This is for display purposes only. + example: node54321 + maxLength: 32 + minLength: 3 + pattern: '[a-zA-Z0-9-_.]{3,32}' + type: string + x-linode-cli-display: 2 + mode: + description: |- + The mode this NodeBalancer should use when sending traffic to this backend. + + - If set to `accept` this backend is accepting traffic. + - If set to `reject` this backend will not receive traffic. + - If set to `drain` this backend will not receive _new_ traffic, but connections already pinned to it will continue to be routed to it. + - If set to `backup`, this backend will only receive traffic if all `accept` nodes are down. + enum: + - accept + - reject + - drain + - backup + example: accept + type: string + x-linode-cli-display: 6 + nodebalancer_id: + description: __Read-only__ The NodeBalancer ID that this Node belongs to. + example: 12345 + readOnly: true + type: integer + status: + description: __Read-only__ The current status of this node, based on the configured checks of its NodeBalancer Config. + enum: + - unknown + - UP + - DOWN + example: UP + readOnly: true + type: string + x-linode-cli-color: + DOWN: red + UP: green + default_: white + unknown: yellow + x-linode-cli-display: 4 + weight: + description: Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. + example: 50 + maximum: 255 + minimum: 1 + type: integer + x-linode-cli-display: 5 + title: TCP, HTTP, or HTTPS config + x-akamai: + file-path: schemas/node-balancer-node-tcp-http-https.yaml + x-akamai: + file-path: schemas/node-balancer-node.yaml + x-example: + x-ref: ../examples/get-node-balancer-node-200.json + x-linode-cli-use-schema: + additionalProperties: false + properties: + address: + description: The private IP address where this backend can be reached. This _must_ be a private IP address. + example: 192.168.210.120:80 + format: ip + type: string + x-linode-cli-display: 3 + config_id: + description: __Read-only__ The NodeBalancer config ID that this node belongs to. + example: 4567 + readOnly: true + type: integer + id: + description: __Read-only__ This node's unique ID. + example: 54321 + readOnly: true + type: integer + x-linode-cli-display: 1 + label: + description: The label for this node. This is for display purposes only. + example: node54321 + maxLength: 32 + minLength: 3 + pattern: ^[a-zA-Z0-9-_.]{3,32}$ + type: string + x-linode-cli-display: 2 + mode: + description: |- + The mode this NodeBalancer should use when sending traffic to this backend. + + - If set to `accept`, this backend is accepting traffic. + - If set to `reject`, this backend will not receive traffic. + - If set to `drain`, this backend will not receive _new_ traffic, but connections already pinned to it will continue to be routed to it. + - If set to `backup`, this backend will only receive traffic if all `accept` nodes are down. + enum: + - accept + - reject + - drain + - backup + example: accept + type: string + x-linode-cli-display: 6 + nodebalancer_id: + description: __Read-only__ The NodeBalancer ID that this node belongs to. + example: 12345 + readOnly: true + type: integer + status: + description: __Read-only__ The current status of this node, based on the configured checks of its NodeBalancer Config. + enum: + - unknown + - UP + - DOWN + example: UP + readOnly: true + type: string + x-linode-cli-color: + DOWN: red + UP: green + default_: white + unknown: yellow + x-linode-cli-display: 4 + weight: + description: Used when picking a backend to serve a request and is not yet pinned to a single backend. Nodes with a higher weight receive more traffic. + example: 50 + maximum: 255 + minimum: 1 + type: integer + x-linode-cli-display: 5 + type: object + x-akamai: + file-path: schemas/node-balancer-node-cli.yaml + description: Node updated successfully. + default: + content: + application/json: + schema: + additionalProperties: false + properties: + errors: + items: + additionalProperties: false + description: An object for describing a single error that occurred during the processing of a request. + properties: + field: + description: The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request. + example: fieldname + type: string + reason: + description: What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully. + example: fieldname must be a valid value + type: string + type: object + x-akamai: + file-path: schemas/error-object.yaml + type: array + type: object + description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes. + security: + - personalAccessToken: [] + - oauth: + - nodebalancers:read_write + summary: Update a node + tags: + - NodeBalancers + x-akamai: + tabs: + - syntax: |- + linode-cli nodebalancers node-update \ + 12345 4567 54321 \ + --address 192.168.210.120:80 \ + --label node54321 \ + --weight 50 \ + --mode accept + title: 'CLI: TCP, HTTP, HTTPS' + url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli + - syntax: nodebalancers:read_write + title: OAuth scopes + url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth + x-linode-cli-action: node-update + x-linode-grant: read_write + x-akamai: + file-path: paths/config-node.yaml + path-info: /{apiVersion}/nodebalancers/{nodeBalancerId}/configs/{configId}/nodes/{nodeId} + x-linode-cli-command: nodebalancers + /{apiVersion}/nodebalancers/{nodeBalancerId}/configs/{configId}/rebuild: + parameters: + - description: __Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta. + in: path + name: apiVersion + required: true + schema: + enum: + - v4 + - v4beta + type: string + x-akamai: + file-path: parameters/api-version-path.yaml + - description: The ID of the NodeBalancer to access. + in: path + name: nodeBalancerId + required: true + schema: + type: integer + x-akamai: + file-path: parameters/node-balancer-id.yaml + - description: The ID of the Config to access. + in: path + name: configId + required: true + schema: + example: 521 + type: integer + x-akamai: + file-path: parameters/config-id.yaml + post: + description: |- + Rebuilds a NodeBalancer Config and its Nodes that you have permission to modify. + + Use this operation to update a NodeBalancer's Config and Nodes with a single request. + + + <> + + --- + + + - __CLI: HTTPS__. + + ``` + linode-cli nodebalancers config-rebuild \ + 12345 4567 \ + --port 443 \ + --protocol https \ + --algorithm roundrobin \ + --stickiness http_cookie \ + --check http_body \ + --check_interval 90 \ + --check_timeout 10 \ + --check_attempts 3 \ + --check_path "/test" \ + --check_body "it works" \ + --check_passive true \ + --proxy_protocol "none" \ + --ssl_cert "-----BEGIN CERTIFICATE----- + CERTIFICATE_INFORMATION + -----END CERTIFICATE-----" \ + --ssl_key "-----BEGIN PRIVATE KEY----- + PRIVATE_KEY_INFORMATION + -----END PRIVATE KEY-----" \ + --cipher_suite recommended \ + --nodes.label "node1" --nodes.address "192.168.210.120:80" --nodes.mode "accept" --nodes.weight 50 \ + --nodes '[{"address":"192.168.210.122:80","label":"node2","weight":50,"mode":"accept"}]' + ``` + + [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) + + - __CLI: TCP__. + + ``` + linode-cli nodebalancers config-rebuild \ + 12345 4567 \ + --port 80 \ + --protocol tcp \ + --algorithm roundrobin \ + --stickiness none \ + --proxy_protocol "v2" + --nodes.label "node1" --nodes.address "192.168.210.120:80" --nodes.mode "accept" --nodes.weight 50 \ + --nodes '[{"address":"192.168.210.122:80","label":"node2","weight":50,"mode":"accept"}]' + ``` + + [Learn more...](https://www.linode.com/docs/products/tools/cli/get-started/) + + - __CLI: HTTP__. + + ``` + linode-cli nodebalancers config-rebuild \ + 12345 4567 \ + --port 440 \ + --protocol http \ + --algorithm roundrobin \ + --stickiness none \ + --check http_body \ + --check_interval 90 \ + --check_timeout 10 \ + --check_attempts 3 \ + --check_path "/test" \ + --check_body "it works" \ + --nodes.label "node1" --nodes.address "192.168.210.120:80" --nodes.mode "accept" --nodes.weight 50 \ + --nodes '[{"address":"192.168.210.122:80","label":"node2","weight":50,"mode":"accept"}]' + ``` + + [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) + + - __OAuth scopes__. + + ``` + nodebalancers:read_write + ``` + + [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) + externalDocs: + description: See documentation for this operation in Akamai's Linode API + url: https://techdocs.akamai.com/linode-api/reference/post-rebuild-node-balancer-config + operationId: post-rebuild-node-balancer-config + requestBody: + content: + application/json: + schema: + allOf: + - description: NodeBalancer `config` options for each protocol. + oneOf: + - additionalProperties: false + description: A NodeBalancer configuration defines the protocol and settings for a specific port on the NodeBalancer. These fields apply to TCP configurations. + properties: + algorithm: + default: roundrobin + description: The algorithm this TCP NodeBalancer uses to route traffic to backends. + enum: + - roundrobin + - leastconn + - source + example: leastconn + type: string + x-linode-cli-display: 4 + check: + default: none + description: |- + The type of check to perform against backends to ensure they are serving requests. This is used to determine if backends are up or down. + + - If `none`, no check is performed. + - `connection` requires only a connection to the backend to succeed. + - `http` and `http_body` rely on the backend serving HTTP, and that the response returned matches what is expected. + enum: + - none + - connection + - http + - http_body + example: http_body + type: string + check_attempts: + default: 3 + description: How many times to attempt a check before considering a backend to be down. + example: 3 + maximum: 30 + minimum: 1 + type: integer + check_body: + description: This value must be present in the response body of the check in order for it to pass. If this value is not present in the response body of a check request, the backend is considered to be down. + example: it works + type: string + check_interval: + default: 5 + description: |- + How often, in seconds, to check that backends are up and serving requests. + + Must be greater than `check_timeout`. + example: 90 + maximum: 3600 + minimum: 2 + type: integer + check_passive: + default: true + description: If `true`, any response from this backend with a `5xx` status code will be enough for it to be considered unhealthy and taken out of rotation. + example: true + type: boolean + x-linode-cli-display: 6 + check_path: + description: The URL path to check on each backend. If the backend does not respond to this request it is considered to be down. + example: /test + pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ + type: string + check_timeout: + default: 30 + description: |- + How long, in seconds, to wait for a check attempt before considering it failed. + + Must be less than `check_interval`. + example: 10 + maximum: 30 + minimum: 1 + type: integer + cipher_suite: + description: __Read-only__ Not applicable for HTTP configs. + example: recommended + readOnly: true + type: string + x-linode-cli-color: + default_: white + legacy: red + x-linode-cli-display: 7 + id: + description: __Read-only__ This config's unique ID. + example: 6000 + readOnly: true + type: integer + x-linode-cli-display: 1 + nodebalancer_id: + description: __Read-only__ The ID for the NodeBalancer this config belongs to. + example: 12345 + readOnly: true + type: integer + nodes: + description: The NodeBalancer nodes that serve this configuration. + items: + additionalProperties: false + description: A NodeBalancer node represents a single backend serving requests for a single port of a NodeBalancer. Nodes are specific to NodeBalancer configs, and serve traffic over their private IP. If the same Linode is serving traffic for more than one port on the same NodeBalancer, one NodeBalancer node is required for each config (port) it should serve requests on. For example, if you have four backends, and each should respond to both HTTP and HTTPS requests, you will need two NodeBalancer configs (port 80 and port 443) and four backends each, one for each of the Linodes serving requests for that port. + properties: + address: + description: The private IP Address where this backend can be reached. This _must_ be a private IP address. + example: 192.168.210.120:80 + format: ip + type: string + x-linode-cli-display: 3 + config_id: + description: __Read-only__ The NodeBalancer Config ID that this Node belongs to. + example: 4567 + readOnly: true + type: integer + id: + description: __Read-only__ This node's unique ID. + example: 54321 + readOnly: true + type: integer + x-linode-cli-display: 1 + label: + description: The label for this node. This is for display purposes only. + example: node54321 + maxLength: 32 + minLength: 3 + pattern: '[a-zA-Z0-9-_.]{3,32}' + type: string + x-linode-cli-display: 2 + mode: + description: |- + The mode this NodeBalancer should use when sending traffic to this backend. + + - If set to `accept` this backend is accepting traffic. + - If set to `reject` this backend will not receive traffic. + - If set to `drain` this backend will not receive _new_ traffic, but connections already pinned to it will continue to be routed to it. + - If set to `backup`, this backend will only receive traffic if all `accept` nodes are down. + enum: + - accept + - reject + - drain + - backup + example: accept + type: string + x-linode-cli-display: 6 + nodebalancer_id: + description: __Read-only__ The NodeBalancer ID that this Node belongs to. + example: 12345 + readOnly: true + type: integer + status: + description: __Read-only__ The current status of this node, based on the configured checks of its NodeBalancer Config. + enum: + - unknown + - UP + - DOWN + example: UP + readOnly: true + type: string + x-linode-cli-color: + DOWN: red + UP: green + default_: white + unknown: yellow + x-linode-cli-display: 4 + weight: + description: Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. + example: 50 + maximum: 255 + minimum: 1 + type: integer + x-linode-cli-display: 5 + title: TCP, HTTP, or HTTPS config + x-akamai: + file-path: schemas/node-balancer-node-tcp-http-https.yaml + type: array + nodes_status: + additionalProperties: false + description: __Read-only__ Describes the health of the backends for this port. This data updates periodically as checks are performed against backends. + properties: + down: + description: __Read-only__ The number of backends considered to be `DOWN` and unhealthy. These are not in rotation, and not serving requests. + example: 0 + readOnly: true + type: integer + up: + description: __Read-only__ The number of backends considered to be `UP` and healthy, and that are serving requests. + example: 4 + readOnly: true + type: integer + readOnly: true + type: object + x-linode-cli-display: 10 + port: + default: 80 + description: This is the port the NodeBalancer listens on for this configuration. Port numbers must be unique across TCP, HTTP, and HTTPS configurations on a single NodeBalancer. However, ports assigned to TCP, HTTP, or HTTPS configurations can also be reused for UDP configurations. For example, Port 80 can simultaneously serve a TCP and a UDP configuration on the same NodeBalancer, but it can't be shared by both a TCP and an HTTP configuration. Although certain ports are traditionally associated with specific protocols, this isn't strictly enforced, and you may configure your NodeBalancer however you find useful. + example: 22 + maximum: 65535 + minimum: 1 + type: integer + x-linode-cli-display: 2 + protocol: + default: http + description: |- + The protocol the port is configured to serve, `tcp` in this case. + + Review our guide on [Available protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols) for information on protocol features. + enum: + - tcp + example: tcp + type: string + x-linode-cli-display: 3 + proxy_protocol: + default: none + description: |- + Proxy protocol is a TCP extension that sends initial TCP connection information such as source or destination IPs and ports to backend devices. Proxy protocol preserves initial TCP information that would be lost otherwise. Backend devices must be configured to work with `proxy_protocol` if enabled. + + - If omitted, or set to `none`, the NodeBalancer doesn't send any auxiliary data over TCP connections. This is the default. + - If set to `v1`, the human-readable header format (Version 1) is used. Requires `tcp` protocol. + - If set to `v2`, the binary header format (Version 2) is used. Requires `tcp` protocol. + enum: + - none + - v1 + - v2 + example: none + type: string + ssl_cert: + description: __Read-only__ Not applicable for TCP configs. + example: null + nullable: true + readOnly: true + type: string + ssl_commonname: + description: __Read-only__ Not applicable for TCP configs. + example: '' + readOnly: true + type: string + x-linode-cli-display: 8 + ssl_fingerprint: + description: __Read-only__ Not applicable for TCP configs. + example: '' + readOnly: true + type: string + x-linode-cli-display: 9 + ssl_key: + description: __Read-only__ Not applicable for HTTP configs. + example: null + nullable: true + readOnly: true + type: string + stickiness: + default: none + description: |- + __Read-only__ Controls how session stickiness is handled on this port. + + Not applicable to TCP configurations. + enum: + - none + - table + - http_cookie + example: none + readOnly: true + type: string + x-linode-cli-display: 5 + required: + - nodes + title: TCP + type: object + x-akamai: + file-path: schemas/node-balancer-config-tcp.yaml + - additionalProperties: false + description: A NodeBalancer configuration defines the protocol and settings for a specific port on the NodeBalancer. These fields apply to HTTP configurations. + properties: + algorithm: + default: roundrobin + description: The algorithm this HTTP NodeBalancer uses for routing traffic to backends. + enum: + - roundrobin + - leastconn + - source + example: roundrobin + type: string + x-linode-cli-display: 4 + check: + default: none + description: |- + The type of check to perform against backends to ensure they are serving requests. This determines if backends are up or down. + + - If `none`, no check is performed. + - `connection` requires only a connection to the backend to succeed. + - `http` and `http_body` rely on the backend serving HTTP, and that the response returned matches what is expected. + enum: + - none + - connection + - http + - http_body + example: http_body + type: string + check_attempts: + default: 3 + description: How many times to attempt a check before considering a backend to be down. + example: 3 + maximum: 30 + minimum: 1 + type: integer + check_body: + description: Use when the active health `check` type is `http_body`. This value must be present in the response body of the check in order for it to pass. If this value is not present in the response body of a check request, the backend is considered to be down. + example: it works + type: string + check_interval: + default: 5 + description: |- + How often, in seconds, to check that backends are up and serving requests. + + Must be greater than `check_timeout`. + example: 90 + maximum: 3600 + minimum: 2 + type: integer + check_passive: + default: true + description: If `true`, any response from this backend with a `5xx` status code will be enough for it to be considered unhealthy and taken out of rotation. + example: true + type: boolean + x-linode-cli-display: 6 + check_path: + description: The URL path to check on each backend. Use when the active health `check` type is `http`. If the backend doesn't respond to this request, it's considered to be down. + example: /test + pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ + type: string + check_timeout: + default: 3 + description: |- + How long, in seconds, to wait for a check attempt before considering it failed. + + Must be less than `check_interval`. + example: 10 + maximum: 30 + minimum: 1 + type: integer + cipher_suite: + description: __Read-only__ Not applicable for HTTP configs. + example: recommended + readOnly: true + type: string + x-linode-cli-color: + default_: white + legacy: red + x-linode-cli-display: 7 + id: + description: __Read-only__ This config's unique ID. + example: 4000 + readOnly: true + type: integer + x-linode-cli-display: 1 + nodebalancer_id: + description: __Read-only__ Identifies the NodeBalancer this config belongs to. + example: 12345 + readOnly: true + type: integer + nodes: + description: The NodeBalancer nodes that serve this configuration. + items: + additionalProperties: false + description: A NodeBalancer node represents a single backend serving requests for a single port of a NodeBalancer. Nodes are specific to NodeBalancer configs, and serve traffic over their private IP. If the same Linode is serving traffic for more than one port on the same NodeBalancer, one NodeBalancer node is required for each config (port) it should serve requests on. For example, if you have four backends, and each should respond to both HTTP and HTTPS requests, you will need two NodeBalancer configs (port 80 and port 443) and four backends each, one for each of the Linodes serving requests for that port. + properties: + address: + description: The private IP Address where this backend can be reached. This _must_ be a private IP address. + example: 192.168.210.120:80 + format: ip + type: string + x-linode-cli-display: 3 + config_id: + description: __Read-only__ The NodeBalancer Config ID that this Node belongs to. + example: 4567 + readOnly: true + type: integer + id: + description: __Read-only__ This node's unique ID. + example: 54321 + readOnly: true + type: integer + x-linode-cli-display: 1 + label: + description: The label for this node. This is for display purposes only. + example: node54321 + maxLength: 32 + minLength: 3 + pattern: '[a-zA-Z0-9-_.]{3,32}' + type: string + x-linode-cli-display: 2 + mode: + description: |- + The mode this NodeBalancer should use when sending traffic to this backend. + + - If set to `accept` this backend is accepting traffic. + - If set to `reject` this backend will not receive traffic. + - If set to `drain` this backend will not receive _new_ traffic, but connections already pinned to it will continue to be routed to it. + - If set to `backup`, this backend will only receive traffic if all `accept` nodes are down. + enum: + - accept + - reject + - drain + - backup + example: accept + type: string + x-linode-cli-display: 6 + nodebalancer_id: + description: __Read-only__ The NodeBalancer ID that this Node belongs to. + example: 12345 + readOnly: true + type: integer + status: + description: __Read-only__ The current status of this node, based on the configured checks of its NodeBalancer Config. + enum: + - unknown + - UP + - DOWN + example: UP + readOnly: true + type: string + x-linode-cli-color: + DOWN: red + UP: green + default_: white + unknown: yellow + x-linode-cli-display: 4 + weight: + description: Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. + example: 50 + maximum: 255 + minimum: 1 + type: integer + x-linode-cli-display: 5 + title: TCP, HTTP, or HTTPS config + x-akamai: + file-path: schemas/node-balancer-node-tcp-http-https.yaml + type: array + nodes_status: + additionalProperties: false + description: __Read-only__ Describes the health of the backends for this port. This data updates periodically as checks are performed against backends. + properties: + down: + description: __Read-only__ The number of backends considered to be `DOWN` and unhealthy. These are not in rotation, and not serving requests. + example: 0 + readOnly: true + type: integer + up: + description: __Read-only__ The number of backends considered to be `UP` and healthy, and that are serving requests. + example: 4 + readOnly: true + type: integer + readOnly: true + type: object + x-linode-cli-display: 10 + port: + default: 80 + description: This is the port the NodeBalancer listens on for this configuration. Port numbers need to be unique across TCP, HTTP, and HTTPS configurations on a single NodeBalancer. However, ports assigned to TCP, HTTP, or HTTPS configurations can also be reused for UDP configurations. For example, Port 80 can simultaneously serve a TCP and a UDP configuration on the same NodeBalancer, but it can't be shared by both a TCP and an HTTP configuration. Although certain ports are traditionally associated with specific protocols, this is not strictly enforced. You may configure your NodeBalancer however is useful to you. + example: 80 + maximum: 65535 + minimum: 1 + type: integer + x-linode-cli-display: 2 + protocol: + default: http + description: |- + The protocol the port is configured to serve, `http` in this case. + Review our guide on [Available protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols) for information on protocol features. + enum: + - http + example: http + type: string + x-linode-cli-display: 3 + proxy_protocol: + default: none + description: __Read-only__ Not applicable for HTTP configs. + example: none + readOnly: true + type: string + ssl_cert: + description: __Read-only__ Not applicable for HTTP configs. + example: null + nullable: true + readOnly: true + type: string + ssl_commonname: + description: __Read-only__ Not applicable for HTTP configs. + example: '' + readOnly: true + type: string + x-linode-cli-display: 8 + ssl_fingerprint: + description: __Read-only__ Not applicable for HTTP configs. + example: '' + readOnly: true + type: string + x-linode-cli-display: 9 + ssl_key: + description: __Read-only__ Not applicable for HTTP configs. + example: null + nullable: true + readOnly: true + type: string + stickiness: + default: table + description: |- + Controls how session stickiness is handled on this port. + + - If set to `none`, connections will always be assigned a backend based on the algorithm configured. + - If set to `table`, sessions from the same remote address will be routed to the same backend. + - If set to `http_cookie`, sessions are routed to the same backend based on a cookie set by the NodeBalancer. + enum: + - none + - table + - http_cookie + example: http_cookie + type: string + x-linode-cli-display: 5 + required: + - nodes + title: HTTP + type: object + x-akamai: + file-path: schemas/node-balancer-config-http.yaml + - additionalProperties: false + description: A NodeBalancer configuration defines the protocol and settings for a specific port on the NodeBalancer. These fields apply to HTTPS configurations. + properties: + algorithm: + default: roundrobin + description: The algorithm this HTTPS NodeBalancer uses for routing traffic to backends. + enum: + - roundrobin + - leastconn + - source + example: roundrobin + type: string + x-linode-cli-display: 4 + check: + default: none + description: |- + The type of check to perform against backends to ensure they are serving requests. This is used to determine if backends are up or down. + + - If `none` no check is performed. + - `connection` requires only a connection to the backend to succeed. + - `http` and `http_body` rely on the backend serving HTTP, and that the response returned matches what is expected. + enum: + - none + - connection + - http + - http_body + example: http_body + type: string + check_attempts: + default: 3 + description: How many times to attempt a check before considering a backend to be down. + example: 3 + maximum: 30 + minimum: 1 + type: integer + check_body: + description: Use when the active health `check` type is `http_body`. This value must be present in the response body of the check in order for it to pass. If this value is not present in the response body of a check request, the backend is considered to be down. + example: it works + type: string + check_interval: + default: 5 + description: |- + How often, in seconds, to check that backends are up and serving requests. + + Must be greater than `check_timeout`. + example: 90 + maximum: 3600 + minimum: 2 + type: integer + check_passive: + default: true + description: If `true`, any response from this backend with a `5xx` status code will be enough for it to be considered unhealthy and taken out of rotation. + example: true + type: boolean + x-linode-cli-display: 6 + check_path: + description: The URL path to check on each backend. Use when the active health `check` type is `http`. If the backend doesn't respond to this request, it's considered to be down. + example: /test + pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ + type: string + check_timeout: + default: 3 + description: |- + How long, in seconds, to wait for a check attempt before considering it failed. + + Must be less than `check_interval`. + example: 10 + maximum: 30 + minimum: 1 + type: integer + cipher_suite: + default: recommended + description: |- + What ciphers to use for SSL connections served by this NodeBalancer. + + - `legacy` is considered insecure and should only be used if necessary. + enum: + - recommended + - legacy + example: recommended + type: string + x-linode-cli-color: + default_: white + legacy: red + x-linode-cli-display: 7 + id: + description: __Read-only__ This config's unique ID. + example: 5000 + readOnly: true + type: integer + x-linode-cli-display: 1 + nodebalancer_id: + description: __Read-only__ The ID for the NodeBalancer this config belongs to. + example: 12345 + readOnly: true + type: integer + nodes: + description: The NodeBalancer nodes that serve this configuration. + items: + additionalProperties: false + description: A NodeBalancer node represents a single backend serving requests for a single port of a NodeBalancer. Nodes are specific to NodeBalancer configs, and serve traffic over their private IP. If the same Linode is serving traffic for more than one port on the same NodeBalancer, one NodeBalancer node is required for each config (port) it should serve requests on. For example, if you have four backends, and each should respond to both HTTP and HTTPS requests, you will need two NodeBalancer configs (port 80 and port 443) and four backends each, one for each of the Linodes serving requests for that port. + properties: + address: + description: The private IP Address where this backend can be reached. This _must_ be a private IP address. + example: 192.168.210.120:80 + format: ip + type: string + x-linode-cli-display: 3 + config_id: + description: __Read-only__ The NodeBalancer Config ID that this Node belongs to. + example: 4567 + readOnly: true + type: integer + id: + description: __Read-only__ This node's unique ID. + example: 54321 + readOnly: true + type: integer + x-linode-cli-display: 1 + label: + description: The label for this node. This is for display purposes only. + example: node54321 + maxLength: 32 + minLength: 3 + pattern: '[a-zA-Z0-9-_.]{3,32}' + type: string + x-linode-cli-display: 2 + mode: + description: |- + The mode this NodeBalancer should use when sending traffic to this backend. + + - If set to `accept` this backend is accepting traffic. + - If set to `reject` this backend will not receive traffic. + - If set to `drain` this backend will not receive _new_ traffic, but connections already pinned to it will continue to be routed to it. + - If set to `backup`, this backend will only receive traffic if all `accept` nodes are down. + enum: + - accept + - reject + - drain + - backup + example: accept + type: string + x-linode-cli-display: 6 + nodebalancer_id: + description: __Read-only__ The NodeBalancer ID that this Node belongs to. + example: 12345 + readOnly: true + type: integer + status: + description: __Read-only__ The current status of this node, based on the configured checks of its NodeBalancer Config. + enum: + - unknown + - UP + - DOWN + example: UP + readOnly: true + type: string + x-linode-cli-color: + DOWN: red + UP: green + default_: white + unknown: yellow + x-linode-cli-display: 4 + weight: + description: Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. + example: 50 + maximum: 255 + minimum: 1 + type: integer + x-linode-cli-display: 5 + title: TCP, HTTP, or HTTPS config + x-akamai: + file-path: schemas/node-balancer-node-tcp-http-https.yaml + type: array + nodes_status: + additionalProperties: false + description: __Read-only__ Describes the health of the backends for this port. This data updates periodically as checks are performed against backends. + properties: + down: + description: __Read-only__ The number of backends considered to be `DOWN` and unhealthy. These are not in rotation, and not serving requests. + example: 0 + readOnly: true + type: integer + up: + description: __Read-only__ The number of backends considered to be `UP` and healthy, and that are serving requests. + example: 4 + readOnly: true + type: integer + readOnly: true + type: object + x-linode-cli-display: 10 + port: + default: 80 + description: This is the port the NodeBalancer listens on for this configuration. Port numbers must be unique across TCP, HTTP, and HTTPS configurations on a single NodeBalancer. However, ports assigned to TCP, HTTP, or HTTPS configurations can also be reused for UDP configurations. For example, Port 80 can simultaneously serve a TCP and a UDP configuration on the same NodeBalancer, but it can't be shared by both a TCP and an HTTP configuration. Although certain ports are traditionally associated with specific protocols, this isn't strictly enforced, and you may configure your NodeBalancer however you find useful. + example: 443 + maximum: 65535 + minimum: 1 + type: integer + x-linode-cli-display: 2 + protocol: + default: http + description: |- + The protocol the port is configured to serve, `https` in this case. + + - The `https` protocol is mutually required with `ssl_cert` and `ssl_key`. + + Review our guide on [Available protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols) for information on protocol features. + enum: + - https + example: https + type: string + x-linode-cli-display: 3 + proxy_protocol: + default: none + description: __Read-only__ Not applicable for HTTPS configs. + example: none + readOnly: true + type: string + ssl_cert: + description: |2- + + The PEM-formatted public SSL certificate (or the combined PEM-formatted SSL certificate and Certificate Authority chain) that should be served on this NodeBalancerConfig's port. + + Line breaks must be represented as `\n` in the string for requests (but not when using the Linode CLI). + + [Diffie-Hellman Parameters](https://www.linode.com/docs/products/networking/nodebalancers/guides/ssl-termination/#diffie-hellman-parameters) can be included in this value to enable forward secrecy. + + The contents of this field will not be shown in any responses that display the NodeBalancerConfig. Instead, `` will be printed where the field appears. + + The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancerConfig response are automatically derived from your certificate. Please refer to these fields to verify that the appropriate certificate was assigned to your NodeBalancerConfig. + example: + format: ssl-cert + nullable: true + type: string + ssl_commonname: + description: __Read-only__ The read-only common name automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig. + example: www.example.com + readOnly: true + type: string + x-linode-cli-display: 8 + ssl_fingerprint: + description: __Read-only__ The read-only SHA1-encoded fingerprint automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig. + example: 00:01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12:13 + readOnly: true + type: string + x-linode-cli-display: 9 + ssl_key: + description: |- + The PEM-formatted private key for the SSL certificate set in the `ssl_cert` field. + + Line breaks must be represented as `\n` in the string for requests (but not when using the Linode CLI). + + The contents of this field will not be shown in any responses that display + the NodeBalancerConfig. Instead, `` will be printed where the field + appears. + + The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancerConfig + response are automatically derived from your certificate. Please refer to these fields to + verify that the appropriate certificate was assigned to your NodeBalancerConfig. + example: + format: ssl-key + nullable: true + type: string + stickiness: + default: table + description: |- + Controls how session stickiness is handled on this port. + + - If set to `none`, connections will always be assigned a backend based on the algorithm configured. + - If set to `table`, sessions from the same remote address will be routed to the same backend. + - For HTTP or HTTPS clients, `http_cookie` allows sessions to be routed to the same backend based on a cookie set by the NodeBalancer. + enum: + - none + - table + - http_cookie + example: http_cookie + type: string + x-linode-cli-display: 5 + required: + - nodes + title: HTTPS + type: object + x-akamai: + file-path: schemas/node-balancer-config-https.yaml + x-akamai: + file-path: schemas/node-balancer-config.yaml + - additionalProperties: false + properties: + nodes: + description: |- + The NodeBalancer nodes that serve this config. + + Some considerations for Nodes when rebuilding a config: + + - Current Nodes excluded from the request body will be deleted from the Config. + - Current Nodes (identified by their Node ID) will be updated. + - New Nodes (included without a Node ID) will be created. + items: + additionalProperties: false + description: NodeBalancer node request object including ID. + properties: + address: + description: The private IP Address where this backend can be reached. This _must_ be a private IP address. + example: 192.168.210.120:80 + format: ip + type: string + x-linode-cli-display: 3 + id: + description: The unique ID of the Node to update. + example: 54321 + type: integer + label: + description: The label for this node. This is for display purposes only. + example: node54321 + maxLength: 32 + minLength: 3 + pattern: '[a-zA-Z0-9-_.]{3,32}' + type: string + x-linode-cli-display: 2 + mode: + description: |- + The mode this NodeBalancer should use when sending traffic to this backend. + + - If set to `accept` this backend is accepting traffic. + - If set to `reject` this backend will not receive traffic. + - If set to `drain` this backend will not receive _new_ traffic, but connections already pinned to it will continue to be routed to it. + - If set to `backup`, this backend will only receive traffic if all `accept` nodes are down. + enum: + - accept + - reject + - drain + - backup + example: accept + type: string + x-linode-cli-display: 6 + weight: + description: Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. + example: 50 + maximum: 255 + minimum: 1 + type: integer + x-linode-cli-display: 5 + type: object + type: array + required: + - nodes + type: object + x-akamai: + file-path: schemas/added-post-rebuild-node-balancer-config.yaml + x-example: + x-ref: ../examples/post-rebuild-node-balancer-config.json + x-linode-cli-use-schema: + additionalProperties: false + properties: + algorithm: + default: roundrobin + description: |- + The algorithm this NodeBalancer should use to route traffic to backends. + - If set to `roundrobin`, connections are allocated in a weighted circular order across the backends. + - If set to `leastconn`, allocates new connections to the backend with the least connections. + - If set to `source`, allocates the client's IP to the same backend on subsequent requests. Session `stickiness` affects this algorithm. + enum: + - roundrobin + - leastconn + - source + example: roundrobin + type: string + x-linode-cli-display: 4 + check: + default: none + description: |- + The type of check to perform against backends to ensure they're serving requests. This determines if backends are up or down. + - If `none`, no check is performed. + - If `connection`, requires a successful TCP handshake with a backend node. + - If `http`, requires a 2xx or 3xx response from the backend node. + - If `http_body`, requires the provided regular expression matches against the request's result body. + enum: + - none + - connection + - http + - http_body + example: http_body + type: string + check_attempts: + default: 3 + description: How many times to attempt a check before considering a backend to be down. + example: 3 + maximum: 30 + minimum: 1 + type: integer + check_body: + description: This value must be present in the response body of the check in order for it to pass. If this value isn't present in the response body of a check request, the backend is considered to be down. + example: it works + type: string + check_interval: + default: 31 + description: |- + How often, in seconds, to check that backends are up and serving requests. + + Must be greater than `check_timeout`. + example: 90 + type: integer + check_passive: + default: true + description: If `true`, any response from this backend with a `5xx` status code will be enough for it to be considered unhealthy and taken out of rotation. + example: true + type: boolean + x-linode-cli-display: 6 + check_path: + description: The URL path to check on each backend. If the backend doesn't respond to this request it's considered to be down. + example: /test + pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ + type: string + check_timeout: + default: 30 + description: How long, in seconds, to wait for a check attempt before considering it failed. Must be less than `check_interval`. + example: 10 + maximum: 30 + minimum: 1 + type: integer + cipher_suite: + default: recommended + description: |- + What ciphers to use for SSL connections served by this NodeBalancer. + + - The `legacy` cipher is considered insecure and should only be used if necessary. + enum: + - recommended + - legacy + example: recommended + type: string + x-linode-cli-color: + default_: white + legacy: red + x-linode-cli-display: 7 + id: + description: __Read-only__ This config's unique ID. + example: 4567 + readOnly: true + type: integer + x-linode-cli-display: 1 + nodebalancer_id: + description: __Read-only__ The ID for the NodeBalancer this config belongs to. + example: 12345 + readOnly: true + type: integer + nodes: + description: The NodeBalancer nodes that serve this configuration. + items: + additionalProperties: false + description: NodeBalancer Node request object including ID. + properties: + address: + description: The private IP Address where this backend can be reached. This _must_ be a private IP address. + example: 192.168.210.120:80 + format: ip + type: string + x-linode-cli-display: 3 + id: + description: __Read-only__ This node's unique ID. + example: 54321 + readOnly: true + type: integer + x-linode-cli-display: 1 + label: + description: The label for this node. This is for display purposes only. + example: node54321 + maxLength: 32 + minLength: 3 + pattern: '[a-zA-Z0-9-_.]{3,32}' + type: string + x-linode-cli-display: 2 + mode: + description: |- + The mode this NodeBalancer should use when sending traffic to this backend. + + - If set to `accept` this backend is accepting traffic. + - If set to `reject` this backend will not receive traffic. + - If set to `drain` this backend will not receive _new_ traffic, but connections already pinned to it will continue to be routed to it. + - If set to `backup`, this backend will only receive traffic if all `accept` nodes are down. + enum: + - accept + - reject + - drain + - backup + example: accept + type: string + x-linode-cli-display: 6 + status: + description: __Read-only__ The current status of this node, based on the configured checks of its NodeBalancer Config. + enum: + - unknown + - UP + - DOWN + example: UP + readOnly: true + type: string + x-linode-cli-color: + DOWN: red + UP: green + default_: white + unknown: yellow + x-linode-cli-display: 4 + weight: + description: Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. + example: 50 + maximum: 255 + minimum: 1 + type: integer + x-linode-cli-display: 5 + type: object + type: array + nodes_status: + additionalProperties: false + description: __Read-only__ A structure containing information about the health of the backends for this port. This information is updated periodically as checks are performed against backends. + properties: + down: + description: __Read-only__ The number of backends considered to be "DOWN" and unhealthy. These are not in rotation, and not serving requests. + example: 0 + readOnly: true + type: integer + up: + description: __Read-only__ The number of backends considered to be "UP" and healthy, and that are serving requests. + example: 4 + readOnly: true + type: integer + readOnly: true + type: object + x-linode-cli-display: 10 + port: + default: 80 + description: The port for this config. Ports need to be unique across configs for each NodeBalancer. For example, you can't have two configs for port 80. While some protocols are typically assigned specific ports, there's no enforcement, and you can configure your NodeBalancer however you find useful. For example, while port 443 is generally used for HTTPS, you don't need SSL configured to have a NodeBalancer listening on port 443. + example: 80 + maximum: 65535 + minimum: 1 + type: integer + x-linode-cli-display: 2 + protocol: + default: http + description: |- + The protocol this port is configured to serve. + + - The `http` and `tcp` protocols don't support `ssl_cert` and `ssl_key`. + + - For the `https` protocol, you need `ssl_cert` and `ssl_key`. + + Review our guide on [Available protocols](https://www.linode.com/docs/products/networking/nodebalancers/guides/protocols/) for information on protocol features. + enum: + - http + - https + - tcp + example: http + type: string + x-linode-cli-display: 3 + proxy_protocol: + default: none + description: |- + 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. + + - If omitted, or set to `none`, the NodeBalancer doesn't send any auxiliary data over TCP connections. This is the default. + - If set to `v1`, the human-readable header format (Version 1) is used. Requires `tcp` protocol. + - If set to `v2`, the binary header format (Version 2) is used. Requires `tcp` protocol. + enum: + - none + - v1 + - v2 + example: none + type: string + ssl_cert: + description: |2- + + The PEM-formatted public SSL certificate (or the combined PEM-formatted SSL certificate and Certificate Authority chain) that should be served on this NodeBalancerConfig's port. + + Line breaks must be represented as `\n` in the string for requests (but not when using the Linode CLI). + + [Diffie-Hellman Parameters](https://www.linode.com/docs/products/networking/nodebalancers/guides/ssl-termination/#diffie-hellman-parameters) can be included in this value to enable forward secrecy. + + The contents of this field will not be shown in any responses that display the NodeBalancerConfig. Instead, `` will be printed where the field appears. + + The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancerConfig response are automatically derived from your certificate. Please refer to these fields to verify that the appropriate certificate was assigned to your NodeBalancerConfig. + example: + format: ssl-cert + nullable: true + type: string + ssl_commonname: + description: __Read-only__ The read-only common name automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig. + example: www.example.com + readOnly: true + type: string + x-linode-cli-display: 8 + ssl_fingerprint: + description: __Read-only__ The read-only SHA1-encoded fingerprint automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig. + example: 00:01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12:13 + readOnly: true + type: string + x-linode-cli-display: 9 + ssl_key: + description: |- + The PEM-formatted private key for the SSL certificate set in the `ssl_cert` field. + + Line breaks must be represented as `\n` in the string for requests (but not when using the Linode CLI). + + The contents of this field will not be shown in any responses that display + the NodeBalancerConfig. Instead, `` will be printed where the field + appears. + + The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancerConfig + response are automatically derived from your certificate. Please refer to these fields to + verify that the appropriate certificate was assigned to your NodeBalancerConfig. + example: + format: ssl-key + nullable: true + type: string + stickiness: + default: none + description: |- + Controls how session stickiness is handled on this port. + - If set to `none`, connections will always be assigned a backend based on the algorithm configured. + - If set to `table`, sessions from the same remote address will be routed to the same backend. + - For HTTP or HTTPS clients, `http_cookie` allows sessions to be routed to the same backend based on a cookie set by the NodeBalancer. + enum: + - none + - table + - http_cookie + example: http_cookie + type: string + x-linode-cli-display: 5 + type: object + x-akamai: + file-path: schemas/node-balancer-config-rebuild-cli.yaml + x-linode-cli-subtables: + - nodes + description: Information about the NodeBalancer Config to rebuild. + required: true + responses: + '200': + content: + application/json: + schema: + description: NodeBalancer `config` options for each protocol. + oneOf: + - additionalProperties: false + description: A NodeBalancer configuration defines the protocol and settings for a specific port on the NodeBalancer. These fields apply to TCP configurations. + properties: + algorithm: + default: roundrobin + description: The algorithm this TCP NodeBalancer uses to route traffic to backends. + enum: + - roundrobin + - leastconn + - source + example: leastconn + type: string + x-linode-cli-display: 4 + check: + default: none + description: |- + The type of check to perform against backends to ensure they are serving requests. This is used to determine if backends are up or down. + + - If `none`, no check is performed. + - `connection` requires only a connection to the backend to succeed. + - `http` and `http_body` rely on the backend serving HTTP, and that the response returned matches what is expected. + enum: + - none + - connection + - http + - http_body + example: http_body + type: string + check_attempts: + default: 3 + description: How many times to attempt a check before considering a backend to be down. + example: 3 + maximum: 30 + minimum: 1 + type: integer + check_body: + description: This value must be present in the response body of the check in order for it to pass. If this value is not present in the response body of a check request, the backend is considered to be down. + example: it works + type: string + check_interval: + default: 5 + description: |- + How often, in seconds, to check that backends are up and serving requests. + + Must be greater than `check_timeout`. + example: 90 + maximum: 3600 + minimum: 2 + type: integer + check_passive: + default: true + description: If `true`, any response from this backend with a `5xx` status code will be enough for it to be considered unhealthy and taken out of rotation. + example: true + type: boolean + x-linode-cli-display: 6 + check_path: + description: The URL path to check on each backend. If the backend does not respond to this request it is considered to be down. + example: /test + pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ + type: string + check_timeout: + default: 30 + description: |- + How long, in seconds, to wait for a check attempt before considering it failed. + + Must be less than `check_interval`. + example: 10 + maximum: 30 + minimum: 1 + type: integer + cipher_suite: + description: __Read-only__ Not applicable for HTTP configs. + example: recommended + readOnly: true + type: string + x-linode-cli-color: + default_: white + legacy: red + x-linode-cli-display: 7 + id: + description: __Read-only__ This config's unique ID. + example: 6000 + readOnly: true + type: integer + x-linode-cli-display: 1 + nodebalancer_id: + description: __Read-only__ The ID for the NodeBalancer this config belongs to. + example: 12345 + readOnly: true + type: integer + nodes: + description: The NodeBalancer nodes that serve this configuration. + items: + additionalProperties: false + description: A NodeBalancer node represents a single backend serving requests for a single port of a NodeBalancer. Nodes are specific to NodeBalancer configs, and serve traffic over their private IP. If the same Linode is serving traffic for more than one port on the same NodeBalancer, one NodeBalancer node is required for each config (port) it should serve requests on. For example, if you have four backends, and each should respond to both HTTP and HTTPS requests, you will need two NodeBalancer configs (port 80 and port 443) and four backends each, one for each of the Linodes serving requests for that port. + properties: + address: + description: The private IP Address where this backend can be reached. This _must_ be a private IP address. + example: 192.168.210.120:80 + format: ip + type: string + x-linode-cli-display: 3 + config_id: + description: __Read-only__ The NodeBalancer Config ID that this Node belongs to. + example: 4567 + readOnly: true + type: integer + id: + description: __Read-only__ This node's unique ID. + example: 54321 + readOnly: true + type: integer + x-linode-cli-display: 1 + label: + description: The label for this node. This is for display purposes only. + example: node54321 + maxLength: 32 + minLength: 3 + pattern: '[a-zA-Z0-9-_.]{3,32}' + type: string + x-linode-cli-display: 2 + mode: + description: |- + The mode this NodeBalancer should use when sending traffic to this backend. + + - If set to `accept` this backend is accepting traffic. + - If set to `reject` this backend will not receive traffic. + - If set to `drain` this backend will not receive _new_ traffic, but connections already pinned to it will continue to be routed to it. + - If set to `backup`, this backend will only receive traffic if all `accept` nodes are down. + enum: + - accept + - reject + - drain + - backup + example: accept + type: string + x-linode-cli-display: 6 + nodebalancer_id: + description: __Read-only__ The NodeBalancer ID that this Node belongs to. + example: 12345 + readOnly: true + type: integer + status: + description: __Read-only__ The current status of this node, based on the configured checks of its NodeBalancer Config. + enum: + - unknown + - UP + - DOWN + example: UP + readOnly: true + type: string + x-linode-cli-color: + DOWN: red + UP: green + default_: white + unknown: yellow + x-linode-cli-display: 4 + weight: + description: Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. + example: 50 + maximum: 255 + minimum: 1 + type: integer + x-linode-cli-display: 5 + title: TCP, HTTP, or HTTPS config + x-akamai: + file-path: schemas/node-balancer-node-tcp-http-https.yaml + type: array + nodes_status: + additionalProperties: false + description: __Read-only__ Describes the health of the backends for this port. This data updates periodically as checks are performed against backends. + properties: + down: + description: __Read-only__ The number of backends considered to be `DOWN` and unhealthy. These are not in rotation, and not serving requests. + example: 0 + readOnly: true + type: integer + up: + description: __Read-only__ The number of backends considered to be `UP` and healthy, and that are serving requests. + example: 4 + readOnly: true + type: integer + readOnly: true + type: object + x-linode-cli-display: 10 + port: + default: 80 + description: This is the port the NodeBalancer listens on for this configuration. Port numbers must be unique across TCP, HTTP, and HTTPS configurations on a single NodeBalancer. However, ports assigned to TCP, HTTP, or HTTPS configurations can also be reused for UDP configurations. For example, Port 80 can simultaneously serve a TCP and a UDP configuration on the same NodeBalancer, but it can't be shared by both a TCP and an HTTP configuration. Although certain ports are traditionally associated with specific protocols, this isn't strictly enforced, and you may configure your NodeBalancer however you find useful. + example: 22 + maximum: 65535 + minimum: 1 + type: integer + x-linode-cli-display: 2 + protocol: + default: http + description: |- + The protocol the port is configured to serve, `tcp` in this case. + + Review our guide on [Available protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols) for information on protocol features. + enum: + - tcp + example: tcp + type: string + x-linode-cli-display: 3 + proxy_protocol: + default: none + description: |- + Proxy protocol is a TCP extension that sends initial TCP connection information such as source or destination IPs and ports to backend devices. Proxy protocol preserves initial TCP information that would be lost otherwise. Backend devices must be configured to work with `proxy_protocol` if enabled. + + - If omitted, or set to `none`, the NodeBalancer doesn't send any auxiliary data over TCP connections. This is the default. + - If set to `v1`, the human-readable header format (Version 1) is used. Requires `tcp` protocol. + - If set to `v2`, the binary header format (Version 2) is used. Requires `tcp` protocol. + enum: + - none + - v1 + - v2 + example: none + type: string + ssl_cert: + description: __Read-only__ Not applicable for TCP configs. + example: null + nullable: true + readOnly: true + type: string + ssl_commonname: + description: __Read-only__ Not applicable for TCP configs. + example: '' + readOnly: true + type: string + x-linode-cli-display: 8 + ssl_fingerprint: + description: __Read-only__ Not applicable for TCP configs. + example: '' + readOnly: true + type: string + x-linode-cli-display: 9 + ssl_key: + description: __Read-only__ Not applicable for HTTP configs. + example: null + nullable: true + readOnly: true + type: string + stickiness: + default: none + description: |- + __Read-only__ Controls how session stickiness is handled on this port. + + Not applicable to TCP configurations. + enum: + - none + - table + - http_cookie + example: none + readOnly: true + type: string + x-linode-cli-display: 5 + required: + - nodes + title: TCP + type: object + x-akamai: + file-path: schemas/node-balancer-config-tcp.yaml + - additionalProperties: false + description: A NodeBalancer configuration defines the protocol and settings for a specific port on the NodeBalancer. These fields apply to HTTP configurations. + properties: + algorithm: + default: roundrobin + description: The algorithm this HTTP NodeBalancer uses for routing traffic to backends. + enum: + - roundrobin + - leastconn + - source + example: roundrobin + type: string + x-linode-cli-display: 4 + check: + default: none + description: |- + The type of check to perform against backends to ensure they are serving requests. This determines if backends are up or down. + + - If `none`, no check is performed. + - `connection` requires only a connection to the backend to succeed. + - `http` and `http_body` rely on the backend serving HTTP, and that the response returned matches what is expected. + enum: + - none + - connection + - http + - http_body + example: http_body + type: string + check_attempts: + default: 3 + description: How many times to attempt a check before considering a backend to be down. + example: 3 + maximum: 30 + minimum: 1 + type: integer + check_body: + description: Use when the active health `check` type is `http_body`. This value must be present in the response body of the check in order for it to pass. If this value is not present in the response body of a check request, the backend is considered to be down. + example: it works + type: string + check_interval: + default: 5 + description: |- + How often, in seconds, to check that backends are up and serving requests. + + Must be greater than `check_timeout`. + example: 90 + maximum: 3600 + minimum: 2 + type: integer + check_passive: + default: true + description: If `true`, any response from this backend with a `5xx` status code will be enough for it to be considered unhealthy and taken out of rotation. + example: true + type: boolean + x-linode-cli-display: 6 + check_path: + description: The URL path to check on each backend. Use when the active health `check` type is `http`. If the backend doesn't respond to this request, it's considered to be down. + example: /test + pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ + type: string + check_timeout: + default: 3 + description: |- + How long, in seconds, to wait for a check attempt before considering it failed. + + Must be less than `check_interval`. + example: 10 + maximum: 30 + minimum: 1 + type: integer + cipher_suite: + description: __Read-only__ Not applicable for HTTP configs. + example: recommended + readOnly: true + type: string + x-linode-cli-color: + default_: white + legacy: red + x-linode-cli-display: 7 + id: + description: __Read-only__ This config's unique ID. + example: 4000 + readOnly: true + type: integer + x-linode-cli-display: 1 + nodebalancer_id: + description: __Read-only__ Identifies the NodeBalancer this config belongs to. + example: 12345 + readOnly: true + type: integer + nodes: + description: The NodeBalancer nodes that serve this configuration. + items: + additionalProperties: false + description: A NodeBalancer node represents a single backend serving requests for a single port of a NodeBalancer. Nodes are specific to NodeBalancer configs, and serve traffic over their private IP. If the same Linode is serving traffic for more than one port on the same NodeBalancer, one NodeBalancer node is required for each config (port) it should serve requests on. For example, if you have four backends, and each should respond to both HTTP and HTTPS requests, you will need two NodeBalancer configs (port 80 and port 443) and four backends each, one for each of the Linodes serving requests for that port. + properties: + address: + description: The private IP Address where this backend can be reached. This _must_ be a private IP address. + example: 192.168.210.120:80 + format: ip + type: string + x-linode-cli-display: 3 + config_id: + description: __Read-only__ The NodeBalancer Config ID that this Node belongs to. + example: 4567 + readOnly: true + type: integer + id: + description: __Read-only__ This node's unique ID. + example: 54321 + readOnly: true + type: integer + x-linode-cli-display: 1 + label: + description: The label for this node. This is for display purposes only. + example: node54321 + maxLength: 32 + minLength: 3 + pattern: '[a-zA-Z0-9-_.]{3,32}' + type: string + x-linode-cli-display: 2 + mode: + description: |- + The mode this NodeBalancer should use when sending traffic to this backend. + + - If set to `accept` this backend is accepting traffic. + - If set to `reject` this backend will not receive traffic. + - If set to `drain` this backend will not receive _new_ traffic, but connections already pinned to it will continue to be routed to it. + - If set to `backup`, this backend will only receive traffic if all `accept` nodes are down. + enum: + - accept + - reject + - drain + - backup + example: accept + type: string + x-linode-cli-display: 6 + nodebalancer_id: + description: __Read-only__ The NodeBalancer ID that this Node belongs to. + example: 12345 + readOnly: true + type: integer + status: + description: __Read-only__ The current status of this node, based on the configured checks of its NodeBalancer Config. + enum: + - unknown + - UP + - DOWN + example: UP + readOnly: true + type: string + x-linode-cli-color: + DOWN: red + UP: green + default_: white + unknown: yellow + x-linode-cli-display: 4 + weight: + description: Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. + example: 50 + maximum: 255 + minimum: 1 + type: integer + x-linode-cli-display: 5 + title: TCP, HTTP, or HTTPS config + x-akamai: + file-path: schemas/node-balancer-node-tcp-http-https.yaml + type: array + nodes_status: + additionalProperties: false + description: __Read-only__ Describes the health of the backends for this port. This data updates periodically as checks are performed against backends. + properties: + down: + description: __Read-only__ The number of backends considered to be `DOWN` and unhealthy. These are not in rotation, and not serving requests. + example: 0 + readOnly: true + type: integer + up: + description: __Read-only__ The number of backends considered to be `UP` and healthy, and that are serving requests. + example: 4 + readOnly: true + type: integer + readOnly: true + type: object + x-linode-cli-display: 10 + port: + default: 80 + description: This is the port the NodeBalancer listens on for this configuration. Port numbers need to be unique across TCP, HTTP, and HTTPS configurations on a single NodeBalancer. However, ports assigned to TCP, HTTP, or HTTPS configurations can also be reused for UDP configurations. For example, Port 80 can simultaneously serve a TCP and a UDP configuration on the same NodeBalancer, but it can't be shared by both a TCP and an HTTP configuration. Although certain ports are traditionally associated with specific protocols, this is not strictly enforced. You may configure your NodeBalancer however is useful to you. + example: 80 + maximum: 65535 + minimum: 1 + type: integer + x-linode-cli-display: 2 + protocol: + default: http + description: |- + The protocol the port is configured to serve, `http` in this case. + Review our guide on [Available protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols) for information on protocol features. + enum: + - http + example: http + type: string + x-linode-cli-display: 3 + proxy_protocol: + default: none + description: __Read-only__ Not applicable for HTTP configs. + example: none + readOnly: true + type: string + ssl_cert: + description: __Read-only__ Not applicable for HTTP configs. + example: null + nullable: true + readOnly: true + type: string + ssl_commonname: + description: __Read-only__ Not applicable for HTTP configs. + example: '' + readOnly: true + type: string + x-linode-cli-display: 8 + ssl_fingerprint: + description: __Read-only__ Not applicable for HTTP configs. + example: '' + readOnly: true + type: string + x-linode-cli-display: 9 + ssl_key: + description: __Read-only__ Not applicable for HTTP configs. + example: null + nullable: true + readOnly: true + type: string + stickiness: + default: table + description: |- + Controls how session stickiness is handled on this port. - [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) + - If set to `none`, connections will always be assigned a backend based on the algorithm configured. + - If set to `table`, sessions from the same remote address will be routed to the same backend. + - If set to `http_cookie`, sessions are routed to the same backend based on a cookie set by the NodeBalancer. + enum: + - none + - table + - http_cookie + example: http_cookie + type: string + x-linode-cli-display: 5 + required: + - nodes + title: HTTP + type: object + x-akamai: + file-path: schemas/node-balancer-config-http.yaml + - additionalProperties: false + description: A NodeBalancer configuration defines the protocol and settings for a specific port on the NodeBalancer. These fields apply to HTTPS configurations. + properties: + algorithm: + default: roundrobin + description: The algorithm this HTTPS NodeBalancer uses for routing traffic to backends. + enum: + - roundrobin + - leastconn + - source + example: roundrobin + type: string + x-linode-cli-display: 4 + check: + default: none + description: |- + The type of check to perform against backends to ensure they are serving requests. This is used to determine if backends are up or down. - - __OAuth scopes__. + - If `none` no check is performed. + - `connection` requires only a connection to the backend to succeed. + - `http` and `http_body` rely on the backend serving HTTP, and that the response returned matches what is expected. + enum: + - none + - connection + - http + - http_body + example: http_body + type: string + check_attempts: + default: 3 + description: How many times to attempt a check before considering a backend to be down. + example: 3 + maximum: 30 + minimum: 1 + type: integer + check_body: + description: Use when the active health `check` type is `http_body`. This value must be present in the response body of the check in order for it to pass. If this value is not present in the response body of a check request, the backend is considered to be down. + example: it works + type: string + check_interval: + default: 5 + description: |- + How often, in seconds, to check that backends are up and serving requests. - ``` - nodebalancers:read_write - ``` + Must be greater than `check_timeout`. + example: 90 + maximum: 3600 + minimum: 2 + type: integer + check_passive: + default: true + description: If `true`, any response from this backend with a `5xx` status code will be enough for it to be considered unhealthy and taken out of rotation. + example: true + type: boolean + x-linode-cli-display: 6 + check_path: + description: The URL path to check on each backend. Use when the active health `check` type is `http`. If the backend doesn't respond to this request, it's considered to be down. + example: /test + pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ + type: string + check_timeout: + default: 3 + description: |- + How long, in seconds, to wait for a check attempt before considering it failed. - [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - externalDocs: - description: See documentation for this operation in Akamai's Linode API - url: https://techdocs.akamai.com/linode-api/reference/put-node-balancer-node - operationId: put-node-balancer-node - requestBody: - content: - application/json: - schema: - additionalProperties: false - description: A NodeBalancerNode represents a single backend serving requests for a single port of a NodeBalancer. Nodes are specific to NodeBalancer Configs, and serve traffic over their private IP. If the same Linode is serving traffic for more than one port on the same NodeBalancer, one NodeBalancer Node is required for each config (port) it should serve requests on. For example, if you have four backends, and each should response to both HTTP and HTTPS requests, you will need two NodeBalancerConfigs (port 80 and port 443) and four backends each - one for each of the Linodes serving requests for that port. - properties: - address: - description: The private IP Address where this backend can be reached. This _must_ be a private IP address. - example: 192.168.210.120:80 - format: ip - type: string - x-linode-cli-display: 3 - config_id: - description: __Read-only__ The NodeBalancer Config ID that this Node belongs to. - example: 4567 - readOnly: true - type: integer - id: - description: __Read-only__ This node's unique ID. - example: 54321 - readOnly: true - type: integer - x-linode-cli-display: 1 - label: - description: The label for this node. This is for display purposes only. - example: node54321 - maxLength: 32 - minLength: 3 - pattern: '[a-zA-Z0-9-_.]{3,32}' - type: string - x-linode-cli-display: 2 - mode: - description: |- - The mode this NodeBalancer should use when sending traffic to this backend. + Must be less than `check_interval`. + example: 10 + maximum: 30 + minimum: 1 + type: integer + cipher_suite: + default: recommended + description: |- + What ciphers to use for SSL connections served by this NodeBalancer. - - If set to `accept` this backend is accepting traffic. - - If set to `reject` this backend will not receive traffic. - - If set to `drain` this backend will not receive _new_ traffic, but connections already pinned to it will continue to be routed to it. - - If set to `backup`, this backend will only receive traffic if all `accept` nodes are down. - enum: - - accept - - reject - - drain - - backup - example: accept - type: string - x-linode-cli-display: 6 - nodebalancer_id: - description: __Read-only__ The NodeBalancer ID that this Node belongs to. - example: 12345 - readOnly: true - type: integer - status: - description: __Read-only__ The current status of this node, based on the configured checks of its NodeBalancer Config. - enum: - - unknown - - UP - - DOWN - example: UP - readOnly: true - type: string - x-linode-cli-color: - DOWN: red - UP: green - default_: white - unknown: yellow - x-linode-cli-display: 4 - weight: - description: Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. - example: 50 - maximum: 255 - minimum: 1 - type: integer - x-linode-cli-display: 5 - type: object - x-akamai: - file-path: schemas/node-balancer-node.yaml - x-example: - x-ref: ../examples/put-node-balancer-node.json - description: The fields to update. - required: true - responses: - '200': - content: - application/json: - schema: - additionalProperties: false - description: A NodeBalancerNode represents a single backend serving requests for a single port of a NodeBalancer. Nodes are specific to NodeBalancer Configs, and serve traffic over their private IP. If the same Linode is serving traffic for more than one port on the same NodeBalancer, one NodeBalancer Node is required for each config (port) it should serve requests on. For example, if you have four backends, and each should response to both HTTP and HTTPS requests, you will need two NodeBalancerConfigs (port 80 and port 443) and four backends each - one for each of the Linodes serving requests for that port. - properties: - address: - description: The private IP Address where this backend can be reached. This _must_ be a private IP address. - example: 192.168.210.120:80 - format: ip - type: string - x-linode-cli-display: 3 - config_id: - description: __Read-only__ The NodeBalancer Config ID that this Node belongs to. - example: 4567 - readOnly: true - type: integer - id: - description: __Read-only__ This node's unique ID. - example: 54321 - readOnly: true - type: integer - x-linode-cli-display: 1 - label: - description: The label for this node. This is for display purposes only. - example: node54321 - maxLength: 32 - minLength: 3 - pattern: '[a-zA-Z0-9-_.]{3,32}' - type: string - x-linode-cli-display: 2 - mode: - description: |- - The mode this NodeBalancer should use when sending traffic to this backend. + - `legacy` is considered insecure and should only be used if necessary. + enum: + - recommended + - legacy + example: recommended + type: string + x-linode-cli-color: + default_: white + legacy: red + x-linode-cli-display: 7 + id: + description: __Read-only__ This config's unique ID. + example: 5000 + readOnly: true + type: integer + x-linode-cli-display: 1 + nodebalancer_id: + description: __Read-only__ The ID for the NodeBalancer this config belongs to. + example: 12345 + readOnly: true + type: integer + nodes: + description: The NodeBalancer nodes that serve this configuration. + items: + additionalProperties: false + description: A NodeBalancer node represents a single backend serving requests for a single port of a NodeBalancer. Nodes are specific to NodeBalancer configs, and serve traffic over their private IP. If the same Linode is serving traffic for more than one port on the same NodeBalancer, one NodeBalancer node is required for each config (port) it should serve requests on. For example, if you have four backends, and each should respond to both HTTP and HTTPS requests, you will need two NodeBalancer configs (port 80 and port 443) and four backends each, one for each of the Linodes serving requests for that port. + properties: + address: + description: The private IP Address where this backend can be reached. This _must_ be a private IP address. + example: 192.168.210.120:80 + format: ip + type: string + x-linode-cli-display: 3 + config_id: + description: __Read-only__ The NodeBalancer Config ID that this Node belongs to. + example: 4567 + readOnly: true + type: integer + id: + description: __Read-only__ This node's unique ID. + example: 54321 + readOnly: true + type: integer + x-linode-cli-display: 1 + label: + description: The label for this node. This is for display purposes only. + example: node54321 + maxLength: 32 + minLength: 3 + pattern: '[a-zA-Z0-9-_.]{3,32}' + type: string + x-linode-cli-display: 2 + mode: + description: |- + The mode this NodeBalancer should use when sending traffic to this backend. - - If set to `accept` this backend is accepting traffic. - - If set to `reject` this backend will not receive traffic. - - If set to `drain` this backend will not receive _new_ traffic, but connections already pinned to it will continue to be routed to it. - - If set to `backup`, this backend will only receive traffic if all `accept` nodes are down. - enum: - - accept - - reject - - drain - - backup - example: accept - type: string - x-linode-cli-display: 6 - nodebalancer_id: - description: __Read-only__ The NodeBalancer ID that this Node belongs to. - example: 12345 - readOnly: true - type: integer - status: - description: __Read-only__ The current status of this node, based on the configured checks of its NodeBalancer Config. - enum: - - unknown - - UP - - DOWN - example: UP - readOnly: true - type: string - x-linode-cli-color: - DOWN: red - UP: green - default_: white - unknown: yellow - x-linode-cli-display: 4 - weight: - description: Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. - example: 50 - maximum: 255 - minimum: 1 - type: integer - x-linode-cli-display: 5 - type: object - x-akamai: - file-path: schemas/node-balancer-node.yaml - x-example: - x-ref: ../examples/get-node-balancer-node-200.json - description: Node updated successfully. - default: - content: - application/json: - schema: - additionalProperties: false - properties: - errors: - items: + - If set to `accept` this backend is accepting traffic. + - If set to `reject` this backend will not receive traffic. + - If set to `drain` this backend will not receive _new_ traffic, but connections already pinned to it will continue to be routed to it. + - If set to `backup`, this backend will only receive traffic if all `accept` nodes are down. + enum: + - accept + - reject + - drain + - backup + example: accept + type: string + x-linode-cli-display: 6 + nodebalancer_id: + description: __Read-only__ The NodeBalancer ID that this Node belongs to. + example: 12345 + readOnly: true + type: integer + status: + description: __Read-only__ The current status of this node, based on the configured checks of its NodeBalancer Config. + enum: + - unknown + - UP + - DOWN + example: UP + readOnly: true + type: string + x-linode-cli-color: + DOWN: red + UP: green + default_: white + unknown: yellow + x-linode-cli-display: 4 + weight: + description: Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. + example: 50 + maximum: 255 + minimum: 1 + type: integer + x-linode-cli-display: 5 + title: TCP, HTTP, or HTTPS config + x-akamai: + file-path: schemas/node-balancer-node-tcp-http-https.yaml + type: array + nodes_status: additionalProperties: false - description: An object for describing a single error that occurred during the processing of a request. + description: __Read-only__ Describes the health of the backends for this port. This data updates periodically as checks are performed against backends. properties: - field: - description: The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request. - example: fieldname - type: string - reason: - description: What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully. - example: fieldname must be a valid value - type: string + down: + description: __Read-only__ The number of backends considered to be `DOWN` and unhealthy. These are not in rotation, and not serving requests. + example: 0 + readOnly: true + type: integer + up: + description: __Read-only__ The number of backends considered to be `UP` and healthy, and that are serving requests. + example: 4 + readOnly: true + type: integer + readOnly: true type: object - x-akamai: - file-path: schemas/error-object.yaml - type: array - type: object - description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes. - security: - - personalAccessToken: [] - - oauth: - - nodebalancers:read_write - summary: Update a node - tags: - - NodeBalancers - x-akamai: - tabs: - - syntax: |- - linode-cli nodebalancers node-update \ - 12345 4567 54321 \ - --address 192.168.210.120:80 \ - --label node54321 \ - --weight 50 \ - --mode accept - title: CLI - url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli - - syntax: nodebalancers:read_write - title: OAuth scopes - url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth - x-linode-cli-action: node-update - x-linode-grant: read_write - x-akamai: - file-path: paths/config-node.yaml - path-info: /{apiVersion}/nodebalancers/{nodeBalancerId}/configs/{configId}/nodes/{nodeId} - x-linode-cli-command: nodebalancers - /{apiVersion}/nodebalancers/{nodeBalancerId}/configs/{configId}/rebuild: - parameters: - - description: __Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta. - in: path - name: apiVersion - required: true - schema: - enum: - - v4 - - v4beta - type: string - x-akamai: - file-path: parameters/api-version-path.yaml - - description: The ID of the NodeBalancer to access. - in: path - name: nodeBalancerId - required: true - schema: - type: integer - x-akamai: - file-path: parameters/node-balancer-id.yaml - - description: The ID of the Config to access. - in: path - name: configId - required: true - schema: - example: 521 - type: integer - x-akamai: - file-path: parameters/config-id.yaml - post: - description: |- - Rebuilds a NodeBalancer Config and its Nodes that you have permission to modify. + x-linode-cli-display: 10 + port: + default: 80 + description: This is the port the NodeBalancer listens on for this configuration. Port numbers must be unique across TCP, HTTP, and HTTPS configurations on a single NodeBalancer. However, ports assigned to TCP, HTTP, or HTTPS configurations can also be reused for UDP configurations. For example, Port 80 can simultaneously serve a TCP and a UDP configuration on the same NodeBalancer, but it can't be shared by both a TCP and an HTTP configuration. Although certain ports are traditionally associated with specific protocols, this isn't strictly enforced, and you may configure your NodeBalancer however you find useful. + example: 443 + maximum: 65535 + minimum: 1 + type: integer + x-linode-cli-display: 2 + protocol: + default: http + description: |- + The protocol the port is configured to serve, `https` in this case. - Use this operation to update a NodeBalancer's Config and Nodes with a single request. + - The `https` protocol is mutually required with `ssl_cert` and `ssl_key`. + Review our guide on [Available protocols](https://techdocs.akamai.com/cloud-computing/docs/available-protocols) for information on protocol features. + enum: + - https + example: https + type: string + x-linode-cli-display: 3 + proxy_protocol: + default: none + description: __Read-only__ Not applicable for HTTPS configs. + example: none + readOnly: true + type: string + ssl_cert: + description: |2- - <> + The PEM-formatted public SSL certificate (or the combined PEM-formatted SSL certificate and Certificate Authority chain) that should be served on this NodeBalancerConfig's port. - --- + Line breaks must be represented as `\n` in the string for requests (but not when using the Linode CLI). + [Diffie-Hellman Parameters](https://www.linode.com/docs/products/networking/nodebalancers/guides/ssl-termination/#diffie-hellman-parameters) can be included in this value to enable forward secrecy. - - __CLI__. + The contents of this field will not be shown in any responses that display the NodeBalancerConfig. Instead, `` will be printed where the field appears. - ``` - linode-cli nodebalancers config-rebuild \ - 12345 4567 \ - --port 443 \ - --protocol https \ - --algorithm roundrobin \ - --stickiness http_cookie \ - --check http_body \ - --check_interval 90 \ - --check_timeout 10 \ - --check_attempts 3 \ - --check_path "/test" \ - --check_body "it works" \ - --check_passive true \ - --proxy_protocol "none" \ - --ssl_cert "-----BEGIN CERTIFICATE----- - CERTIFICATE_INFORMATION - -----END CERTIFICATE-----" \ - --ssl_key "-----BEGIN PRIVATE KEY----- - PRIVATE_KEY_INFORMATION - -----END PRIVATE KEY-----" \ - --cipher_suite recommended \ - --nodes '{"address":"192.168.210.120:80","label":"node1","weight":50,"mode":"accept"}' \ - --nodes '{"address":"192.168.210.122:80","label":"node2","weight":50,"mode":"accept"}' - ``` + The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancerConfig response are automatically derived from your certificate. Please refer to these fields to verify that the appropriate certificate was assigned to your NodeBalancerConfig. + example: + format: ssl-cert + nullable: true + type: string + ssl_commonname: + description: __Read-only__ The read-only common name automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig. + example: www.example.com + readOnly: true + type: string + x-linode-cli-display: 8 + ssl_fingerprint: + description: __Read-only__ The read-only SHA1-encoded fingerprint automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig. + example: 00:01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12:13 + readOnly: true + type: string + x-linode-cli-display: 9 + ssl_key: + description: |- + The PEM-formatted private key for the SSL certificate set in the `ssl_cert` field. - [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) + Line breaks must be represented as `\n` in the string for requests (but not when using the Linode CLI). - - __OAuth scopes__. + The contents of this field will not be shown in any responses that display + the NodeBalancerConfig. Instead, `` will be printed where the field + appears. - ``` - nodebalancers:read_write - ``` + The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancerConfig + response are automatically derived from your certificate. Please refer to these fields to + verify that the appropriate certificate was assigned to your NodeBalancerConfig. + example: + format: ssl-key + nullable: true + type: string + stickiness: + default: table + description: |- + Controls how session stickiness is handled on this port. - [Learn more...](https://techdocs.akamai.com/linode-api/reference/get-started#oauth) - externalDocs: - description: See documentation for this operation in Akamai's Linode API - url: https://techdocs.akamai.com/linode-api/reference/post-rebuild-node-balancer-config - operationId: post-rebuild-node-balancer-config - requestBody: - content: - application/json: - schema: - allOf: - - additionalProperties: false - description: A NodeBalancer config represents the configuration of this NodeBalancer on a single port. For example, a NodeBalancer Config on port 80 would typically represent how this NodeBalancer response to HTTP requests. NodeBalancer configs have a list of backends, called "nodes," that they forward requests between based on their configuration. + - If set to `none`, connections will always be assigned a backend based on the algorithm configured. + - If set to `table`, sessions from the same remote address will be routed to the same backend. + - For HTTP or HTTPS clients, `http_cookie` allows sessions to be routed to the same backend based on a cookie set by the NodeBalancer. + enum: + - none + - table + - http_cookie + example: http_cookie + type: string + x-linode-cli-display: 5 + required: + - nodes + title: HTTPS + type: object + x-akamai: + file-path: schemas/node-balancer-config-https.yaml + x-akamai: + file-path: schemas/node-balancer-config.yaml + x-example: + x-ref: ../examples/post-rebuild-node-balancer-config-200.json + x-linode-cli-use-schema: + additionalProperties: false properties: algorithm: default: roundrobin - description: What algorithm this NodeBalancer should use for routing traffic to backends. + description: |- + The algorithm this NodeBalancer should use to route traffic to backends. + - If set to `roundrobin`, connections are allocated in a weighted circular order across the backends. + - If set to `leastconn`, allocates new connections to the backend with the least connections. + - If set to `source`, allocates the client's IP to the same backend on subsequent requests. Session `stickiness` affects this algorithm. enum: - roundrobin - leastconn @@ -73890,11 +81644,11 @@ paths: check: default: none description: |- - The type of check to perform against backends to ensure they are serving requests. This is used to determine if backends are up or down. - - - If `none` no check is performed. - - `connection` requires only a connection to the backend to succeed. - - `http` and `http_body` rely on the backend serving HTTP, and that the response returned matches what is expected. + The type of check to perform against backends to ensure they're serving requests. This determines if backends are up or down. + - If `none`, no check is performed. + - If `connection`, requires a successful TCP handshake with a backend node. + - If `http`, requires a 2xx or 3xx response from the backend node. + - If `http_body`, requires the provided regular expression matches against the request's result body. enum: - none - connection @@ -73910,7 +81664,7 @@ paths: minimum: 1 type: integer check_body: - description: This value must be present in the response body of the check in order for it to pass. If this value is not present in the response body of a check request, the backend is considered to be down. + description: This value must be present in the response body of the check in order for it to pass. If this value isn't present in the response body of a check request, the backend is considered to be down. example: it works type: string check_interval: @@ -73928,16 +81682,13 @@ paths: type: boolean x-linode-cli-display: 6 check_path: - description: The URL path to check on each backend. If the backend does not respond to this request it is considered to be down. + description: The URL path to check on each backend. If the backend doesn't respond to this request it's considered to be down. example: /test pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ type: string check_timeout: default: 30 - description: |- - How long, in seconds, to wait for a check attempt before considering it failed. - - Must be less than `check_interval`. + description: How long, in seconds, to wait for a check attempt before considering it failed. Must be less than `check_interval`. example: 10 maximum: 30 minimum: 1 @@ -73947,7 +81698,7 @@ paths: description: |- What ciphers to use for SSL connections served by this NodeBalancer. - - `legacy` is considered insecure and should only be used if necessary. + - The `legacy` cipher is considered insecure and should only be used if necessary. enum: - recommended - legacy @@ -73968,6 +81719,72 @@ paths: example: 12345 readOnly: true type: integer + nodes: + description: The NodeBalancer nodes that serve this configuration. + items: + additionalProperties: false + description: NodeBalancer Node request object including ID. + properties: + address: + description: The private IP Address where this backend can be reached. This _must_ be a private IP address. + example: 192.168.210.120:80 + format: ip + type: string + x-linode-cli-display: 3 + id: + description: __Read-only__ This node's unique ID. + example: 54321 + readOnly: true + type: integer + x-linode-cli-display: 1 + label: + description: The label for this node. This is for display purposes only. + example: node54321 + maxLength: 32 + minLength: 3 + pattern: '[a-zA-Z0-9-_.]{3,32}' + type: string + x-linode-cli-display: 2 + mode: + description: |- + The mode this NodeBalancer should use when sending traffic to this backend. + + - If set to `accept` this backend is accepting traffic. + - If set to `reject` this backend will not receive traffic. + - If set to `drain` this backend will not receive _new_ traffic, but connections already pinned to it will continue to be routed to it. + - If set to `backup`, this backend will only receive traffic if all `accept` nodes are down. + enum: + - accept + - reject + - drain + - backup + example: accept + type: string + x-linode-cli-display: 6 + status: + description: __Read-only__ The current status of this node, based on the configured checks of its NodeBalancer Config. + enum: + - unknown + - UP + - DOWN + example: UP + readOnly: true + type: string + x-linode-cli-color: + DOWN: red + UP: green + default_: white + unknown: yellow + x-linode-cli-display: 4 + weight: + description: Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. + example: 50 + maximum: 255 + minimum: 1 + type: integer + x-linode-cli-display: 5 + type: object + type: array nodes_status: additionalProperties: false description: __Read-only__ A structure containing information about the health of the backends for this port. This information is updated periodically as checks are performed against backends. @@ -73987,7 +81804,7 @@ paths: x-linode-cli-display: 10 port: default: 80 - description: The port this Config is for. These values must be unique across configs on a single NodeBalancer (you can't have two configs for port 80, for example). While some ports imply some protocols, no enforcement is done and you may configure your NodeBalancer however is useful to you. For example, while port 443 is generally used for HTTPS, you do not need SSL configured to have a NodeBalancer listening on port 443. + description: The port for this config. Ports need to be unique across configs for each NodeBalancer. For example, you can't have two configs for port 80. While some protocols are typically assigned specific ports, there's no enforcement, and you can configure your NodeBalancer however you find useful. For example, while port 443 is generally used for HTTPS, you don't need SSL configured to have a NodeBalancer listening on port 443. example: 80 maximum: 65535 minimum: 1 @@ -73998,11 +81815,11 @@ paths: description: |- The protocol this port is configured to serve. - - The `http` and `tcp` protocols do not support `ssl_cert` and `ssl_key`. + - The `http` and `tcp` protocols don't support `ssl_cert` and `ssl_key`. - - The `https` protocol is mutually required with `ssl_cert` and `ssl_key`. + - For the `https` protocol, you need `ssl_cert` and `ssl_key`. - Review our guide on [Available Protocols](https://www.linode.com/docs/products/networking/nodebalancers/guides/protocols/) for information on protocol features. + Review our guide on [Available protocols](https://www.linode.com/docs/products/networking/nodebalancers/guides/protocols/) for information on protocol features. enum: - http - https @@ -74073,9 +81890,8 @@ paths: default: none description: |- Controls how session stickiness is handled on this port. - - - If set to `none` connections will always be assigned a backend based on the algorithm configured. - - If set to `table` sessions from the same remote address will be routed to the same backend. + - If set to `none`, connections will always be assigned a backend based on the algorithm configured. + - If set to `table`, sessions from the same remote address will be routed to the same backend. - For HTTP or HTTPS clients, `http_cookie` allows sessions to be routed to the same backend based on a cookie set by the NodeBalancer. enum: - none @@ -74086,294 +81902,9 @@ paths: x-linode-cli-display: 5 type: object x-akamai: - file-path: schemas/node-balancer-config.yaml - - additionalProperties: false - properties: - nodes: - description: |- - The NodeBalancer Nodes that serve this Config. - - Some considerations for Nodes when rebuilding a config: - - - Current Nodes excluded from the request body will be deleted from the Config. - - Current Nodes (identified by their Node ID) will be updated. - - New Nodes (included without a Node ID) will be created. - items: - additionalProperties: false - description: NodeBalancer Node request object including ID. - properties: - address: - description: The private IP Address where this backend can be reached. This _must_ be a private IP address. - example: 192.168.210.120:80 - format: ip - type: string - x-linode-cli-display: 3 - id: - description: The unique ID of the Node to update. - example: 54321 - type: integer - label: - description: The label for this node. This is for display purposes only. - example: node54321 - maxLength: 32 - minLength: 3 - pattern: '[a-zA-Z0-9-_.]{3,32}' - type: string - x-linode-cli-display: 2 - mode: - description: |- - The mode this NodeBalancer should use when sending traffic to this backend. - - - If set to `accept` this backend is accepting traffic. - - If set to `reject` this backend will not receive traffic. - - If set to `drain` this backend will not receive _new_ traffic, but connections already pinned to it will continue to be routed to it. - - If set to `backup`, this backend will only receive traffic if all `accept` nodes are down. - enum: - - accept - - reject - - drain - - backup - example: accept - type: string - x-linode-cli-display: 6 - weight: - description: Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. - example: 50 - maximum: 255 - minimum: 1 - type: integer - x-linode-cli-display: 5 - type: object - type: array - required: + file-path: schemas/node-balancer-config-rebuild-cli.yaml + x-linode-cli-subtables: - nodes - type: object - x-akamai: - file-path: schemas/added-post-rebuild-node-balancer-config.yaml - x-example: - x-ref: ../examples/post-rebuild-node-balancer-config.json - description: Information about the NodeBalancer Config to rebuild. - required: true - responses: - '200': - content: - application/json: - schema: - additionalProperties: false - description: A NodeBalancer config represents the configuration of this NodeBalancer on a single port. For example, a NodeBalancer Config on port 80 would typically represent how this NodeBalancer response to HTTP requests. NodeBalancer configs have a list of backends, called "nodes," that they forward requests between based on their configuration. - properties: - algorithm: - default: roundrobin - description: What algorithm this NodeBalancer should use for routing traffic to backends. - enum: - - roundrobin - - leastconn - - source - example: roundrobin - type: string - x-linode-cli-display: 4 - check: - default: none - description: |- - The type of check to perform against backends to ensure they are serving requests. This is used to determine if backends are up or down. - - - If `none` no check is performed. - - `connection` requires only a connection to the backend to succeed. - - `http` and `http_body` rely on the backend serving HTTP, and that the response returned matches what is expected. - enum: - - none - - connection - - http - - http_body - example: http_body - type: string - check_attempts: - default: 3 - description: How many times to attempt a check before considering a backend to be down. - example: 3 - maximum: 30 - minimum: 1 - type: integer - check_body: - description: This value must be present in the response body of the check in order for it to pass. If this value is not present in the response body of a check request, the backend is considered to be down. - example: it works - type: string - check_interval: - default: 31 - description: |- - How often, in seconds, to check that backends are up and serving requests. - - Must be greater than `check_timeout`. - example: 90 - type: integer - check_passive: - default: true - description: If `true`, any response from this backend with a `5xx` status code will be enough for it to be considered unhealthy and taken out of rotation. - example: true - type: boolean - x-linode-cli-display: 6 - check_path: - description: The URL path to check on each backend. If the backend does not respond to this request it is considered to be down. - example: /test - pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ - type: string - check_timeout: - default: 30 - description: |- - How long, in seconds, to wait for a check attempt before considering it failed. - - Must be less than `check_interval`. - example: 10 - maximum: 30 - minimum: 1 - type: integer - cipher_suite: - default: recommended - description: |- - What ciphers to use for SSL connections served by this NodeBalancer. - - - `legacy` is considered insecure and should only be used if necessary. - enum: - - recommended - - legacy - example: recommended - type: string - x-linode-cli-color: - default_: white - legacy: red - x-linode-cli-display: 7 - id: - description: __Read-only__ This config's unique ID. - example: 4567 - readOnly: true - type: integer - x-linode-cli-display: 1 - nodebalancer_id: - description: __Read-only__ The ID for the NodeBalancer this config belongs to. - example: 12345 - readOnly: true - type: integer - nodes_status: - additionalProperties: false - description: __Read-only__ A structure containing information about the health of the backends for this port. This information is updated periodically as checks are performed against backends. - properties: - down: - description: __Read-only__ The number of backends considered to be "DOWN" and unhealthy. These are not in rotation, and not serving requests. - example: 0 - readOnly: true - type: integer - up: - description: __Read-only__ The number of backends considered to be "UP" and healthy, and that are serving requests. - example: 4 - readOnly: true - type: integer - readOnly: true - type: object - x-linode-cli-display: 10 - port: - default: 80 - description: The port this Config is for. These values must be unique across configs on a single NodeBalancer (you can't have two configs for port 80, for example). While some ports imply some protocols, no enforcement is done and you may configure your NodeBalancer however is useful to you. For example, while port 443 is generally used for HTTPS, you do not need SSL configured to have a NodeBalancer listening on port 443. - example: 80 - maximum: 65535 - minimum: 1 - type: integer - x-linode-cli-display: 2 - protocol: - default: http - description: |- - The protocol this port is configured to serve. - - - The `http` and `tcp` protocols do not support `ssl_cert` and `ssl_key`. - - - The `https` protocol is mutually required with `ssl_cert` and `ssl_key`. - - Review our guide on [Available Protocols](https://www.linode.com/docs/products/networking/nodebalancers/guides/protocols/) for information on protocol features. - enum: - - http - - https - - tcp - example: http - type: string - x-linode-cli-display: 3 - proxy_protocol: - default: none - description: |- - 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. - - - If omitted, or set to `none`, the NodeBalancer doesn't send any auxiliary data over TCP connections. This is the default. - - If set to `v1`, the human-readable header format (Version 1) is used. Requires `tcp` protocol. - - If set to `v2`, the binary header format (Version 2) is used. Requires `tcp` protocol. - enum: - - none - - v1 - - v2 - example: none - type: string - ssl_cert: - description: |2- - - The PEM-formatted public SSL certificate (or the combined PEM-formatted SSL certificate and Certificate Authority chain) that should be served on this NodeBalancerConfig's port. - - Line breaks must be represented as `\n` in the string for requests (but not when using the Linode CLI). - - [Diffie-Hellman Parameters](https://www.linode.com/docs/products/networking/nodebalancers/guides/ssl-termination/#diffie-hellman-parameters) can be included in this value to enable forward secrecy. - - The contents of this field will not be shown in any responses that display the NodeBalancerConfig. Instead, `` will be printed where the field appears. - - The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancerConfig response are automatically derived from your certificate. Please refer to these fields to verify that the appropriate certificate was assigned to your NodeBalancerConfig. - example: - format: ssl-cert - nullable: true - type: string - ssl_commonname: - description: __Read-only__ The read-only common name automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig. - example: www.example.com - readOnly: true - type: string - x-linode-cli-display: 8 - ssl_fingerprint: - description: __Read-only__ The read-only SHA1-encoded fingerprint automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig. - example: 00:01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12:13 - readOnly: true - type: string - x-linode-cli-display: 9 - ssl_key: - description: |- - The PEM-formatted private key for the SSL certificate set in the `ssl_cert` field. - - Line breaks must be represented as `\n` in the string for requests (but not when using the Linode CLI). - - The contents of this field will not be shown in any responses that display - the NodeBalancerConfig. Instead, `` will be printed where the field - appears. - - The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancerConfig - response are automatically derived from your certificate. Please refer to these fields to - verify that the appropriate certificate was assigned to your NodeBalancerConfig. - example: - format: ssl-key - nullable: true - type: string - stickiness: - default: none - description: |- - Controls how session stickiness is handled on this port. - - - If set to `none` connections will always be assigned a backend based on the algorithm configured. - - If set to `table` sessions from the same remote address will be routed to the same backend. - - For HTTP or HTTPS clients, `http_cookie` allows sessions to be routed to the same backend based on a cookie set by the NodeBalancer. - enum: - - none - - table - - http_cookie - example: http_cookie - type: string - x-linode-cli-display: 5 - type: object - x-akamai: - file-path: schemas/node-balancer-config.yaml - x-example: - x-ref: ../examples/post-rebuild-node-balancer-config-200.json description: NodeBalancer created successfully. default: content: @@ -74431,9 +81962,38 @@ paths: PRIVATE_KEY_INFORMATION -----END PRIVATE KEY-----" \ --cipher_suite recommended \ - --nodes '{"address":"192.168.210.120:80","label":"node1","weight":50,"mode":"accept"}' \ - --nodes '{"address":"192.168.210.122:80","label":"node2","weight":50,"mode":"accept"}' - title: CLI + --nodes.label "node1" --nodes.address "192.168.210.120:80" --nodes.mode "accept" --nodes.weight 50 \ + --nodes '[{"address":"192.168.210.122:80","label":"node2","weight":50,"mode":"accept"}]' + title: 'CLI: HTTPS' + url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli + - syntax: |- + linode-cli nodebalancers config-rebuild \ + 12345 4567 \ + --port 80 \ + --protocol tcp \ + --algorithm roundrobin \ + --stickiness none \ + --proxy_protocol "v2" + --nodes.label "node1" --nodes.address "192.168.210.120:80" --nodes.mode "accept" --nodes.weight 50 \ + --nodes '[{"address":"192.168.210.122:80","label":"node2","weight":50,"mode":"accept"}]' + title: 'CLI: TCP' + url: https://www.linode.com/docs/products/tools/cli/get-started/ + - syntax: |- + linode-cli nodebalancers config-rebuild \ + 12345 4567 \ + --port 440 \ + --protocol http \ + --algorithm roundrobin \ + --stickiness none \ + --check http_body \ + --check_interval 90 \ + --check_timeout 10 \ + --check_attempts 3 \ + --check_path "/test" \ + --check_body "it works" \ + --nodes.label "node1" --nodes.address "192.168.210.120:80" --nodes.mode "accept" --nodes.weight 50 \ + --nodes '[{"address":"192.168.210.122:80","label":"node2","weight":50,"mode":"accept"}]' + title: 'CLI: HTTP' url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli - syntax: nodebalancers:read_write title: OAuth scopes @@ -78213,7 +85773,8 @@ paths: type: array migrations: additionalProperties: false - description: Any compute instances that are being migrated to or from the placement group. Returns an empty object if no migrations are taking place. + description: Any compute instances that are being migrated to or from the placement group. Returned as `null` if no migrations are taking place. + nullable: true properties: inbound: description: The individual compute instances the system is migrating into the placement group. @@ -78716,7 +86277,8 @@ paths: type: array migrations: additionalProperties: false - description: Any compute instances that are being migrated to or from the placement group. Returns an empty object if no migrations are taking place. + description: Any compute instances that are being migrated to or from the placement group. Returned as `null` if no migrations are taking place. + nullable: true properties: inbound: description: The individual compute instances the system is migrating into the placement group. @@ -84927,7 +92489,7 @@ paths: /{apiVersion}/support/tickets: get: description: |- - Returns a collection of Support Tickets on your Account. Support Tickets can be both tickets you open with Linode for support, as well as tickets generated by Linode regarding your Account. This collection includes all Support Tickets generated on your Account, with open tickets returned first. + Returns a collection of all support tickets opened from your account. This includes tickets you've opened and tickets generated by Linode customer support regarding your account. Open tickets are returned first in the response. <> @@ -84987,10 +92549,10 @@ paths: data: items: additionalProperties: false - description: A Support Ticket opened on your Account. + description: A support ticket opened from your account. properties: attachments: - description: __Read-only__ A list of filenames representing attached files associated with this Ticket. + description: __Read-only__ A list of filenames representing attached files associated with this ticket. items: example: - screenshot.jpg @@ -84999,12 +92561,12 @@ paths: readOnly: true type: array closable: - description: Whether the Support Ticket may be closed. + description: Whether the ticket can be closed. example: false type: boolean closed: - description: __Filterable__, __Read-only__ The date and time this Ticket was closed. - example: '2015-06-04T16:07:03' + description: __Filterable__, __Read-only__ When this ticket was closed. + example: '2024-06-04T16:07:03' format: date-time nullable: true readOnly: true @@ -85015,7 +92577,7 @@ paths: x-linode-filterable: true description: description: __Read-only__ The full details of the issue or question. - example: I am having trouble setting the root password on my Linode. I tried following the instructions but something is not working. Can you please help me figure out how I can reset it? + example: I'm having trouble setting the root password on my Linode. I tried following the instructions, but something isn't working. Can you please help me figure out how I can reset it? maxLength: 65000 minLength: 1 readOnly: true @@ -85023,11 +92585,11 @@ paths: x-linode-cli-display: 5 entity: additionalProperties: false - description: __Read-only__ The entity this Ticket was opened for. + description: __Read-only__ The ticket was opened for this entity. An entity represents a specific object you've created, such as a Linode or a Managed Database. nullable: true properties: id: - description: __Read-only__ The unique ID for this Ticket's entity. + description: __Read-only__ The unique ID for this ticket's entity. Empty if the targeted entity doesn't use an `id`. example: 10400 readOnly: true type: integer @@ -85037,12 +92599,23 @@ paths: readOnly: true type: string type: - description: __Read-only__ The type of entity this is related to. + description: __Read-only__ The type of entity. + enum: + - database + - domain + - firewall + - linode + - lkecluster + - managed_service + - nodebalancer + - vlan + - volume + - vpc example: linode readOnly: true type: string url: - description: __Read-only__ The URL where you can access the object this event is for. If a relative URL, it is relative to the domain you retrieved the entity from. + description: __Read-only__ The URL where you can access the `entity`. If this is a relative URL, it's relative to the domain for the entity. example: /v4/linode/instances/123456 readOnly: true type: string @@ -85050,19 +92623,19 @@ paths: type: object x-linode-cli-display: 6 gravatar_id: - description: __Read-only__ The Gravatar ID of the User who opened this Ticket. + description: __Read-only__ The Gravatar ID of the user who opened this ticket. example: 474a1b7373ae0be4132649e69c36ce30 readOnly: true type: string id: - description: __Read-only__ The ID of the Support Ticket. + description: __Read-only__ The ID of the support ticket. example: 11223344 readOnly: true type: integer x-linode-cli-display: 1 opened: - description: __Filterable__, __Read-only__ The date and time this Ticket was created. - example: '2015-06-04T14:16:44' + description: __Filterable__, __Read-only__ When this ticket was created. + example: '2024-06-04T14:16:44' format: date-time readOnly: true type: string @@ -85072,13 +92645,13 @@ paths: x-linode-cli-display: 4 x-linode-filterable: true opened_by: - description: __Read-only__ The User who opened this Ticket. + description: __Read-only__ The user who opened this ticket. example: some_user readOnly: true type: string x-linode-cli-display: 3 status: - description: __Read-only__ The current status of this Ticket. + description: __Read-only__ The current status of this ticket. enum: - closed - new @@ -85087,16 +92660,16 @@ paths: readOnly: true type: string summary: - description: __Read-only__ The summary or title for this Ticket. - example: Having trouble resetting root password on my Linode + description: __Read-only__ The summary or title for this ticket. + example: Having trouble resetting Linode root password. maxLength: 64 minLength: 1 readOnly: true type: string x-linode-cli-display: 2 updated: - description: __Filterable__, __Read-only__ The date and time this Ticket was last updated. - example: '2015-06-04T16:07:03' + description: __Filterable__, __Read-only__ When this ticket was last updated. + example: '2024-06-04T16:07:03' format: date-time readOnly: true type: string @@ -85105,7 +92678,7 @@ paths: - Filterable x-linode-filterable: true updated_by: - description: __Read-only__ The User who last updated this Ticket. + description: __Read-only__ The user who last updated this ticket. example: some_other_user nullable: true readOnly: true @@ -85134,7 +92707,7 @@ paths: file-path: schemas/added-get-tickets-200.yaml x-example: x-ref: ../examples/get-tickets-200.json - description: Returns a paginated list of SupportTicket objects. + description: Returns a paginated list of support tickets. default: content: application/json: @@ -85193,7 +92766,7 @@ paths: file-path: parameters/api-version-path.yaml post: description: |- - Open a Support Ticket. Only one of the ID attributes (`linode_id`, `domain_id`, etc.) can be set on a single Support Ticket. + Open a support ticket. A ticket can only target a single, specific entity. For example, for an issue with a specific Linode, open a ticket and target it using its `linode_id`. Leave all other entities out of the request or set them to `null`. <> @@ -85228,80 +92801,87 @@ paths: application/json: schema: additionalProperties: false - description: An object representing a created Support Ticket - a question or issue and request for help from the Linode support team. Only one of the ID attributes (`linode_id`, `domain_id`, etc.) can be set on a single Support Ticket. + description: An object representing a created support ticket that contains a question or issue and request for help from the Linode support team. properties: + bucket: + description: The name of an Object Storage bucket entity for this ticket. Run the [List Object Storage buckets](https://techdocs.akamai.com/linode-api/reference/get-object-storage-buckets) operation and store the `label` for the target bucket. You also need to provide the specific `region` where the bucket is located. + example: null + nullable: true + type: string database_id: - description: The ID of the Managed Database this ticket is regarding, if relevant. + description: The ID of the Managed Database entity for the ticket. Run the [List Managed Databases](https://techdocs.akamai.com/linode-api/reference/get-databases-instances) operation and store the `id` for the target database. + example: null + nullable: true type: integer description: description: The full details of the issue or question. - example: I'm having trouble setting the root password on my Linode. I tried following the instructions but something is not working and I'm not sure what I'm doing wrong. Can you please help me figure out how I can reset it? + example: I'm having trouble setting the root password on my Linode. I tried following the instructions but something isn't working and I'm not sure what I'm doing wrong. Can you please help me figure out how I can reset it? maxLength: 65000 minLength: 1 type: string domain_id: - description: The ID of the Domain this ticket is regarding, if relevant. + description: The ID of the domain entity for the ticket. Run the [List domains](https://techdocs.akamai.com/linode-api/reference/get-domains) operation and store the `id` for the target domain. example: null nullable: true type: integer firewall_id: - description: The ID of the Firewall this ticket is regarding, if relevant. + description: The ID of the Firewall entity for the ticket. Run the [List a Linode's firewalls](https://techdocs.akamai.com/linode-api/reference/get-linode-firewalls) operation and store the `id` for the target Linode firewall. + example: null + nullable: true type: integer linode_id: - description: The ID of the Linode this ticket is regarding, if relevant. + description: The ID of the Linode entity for the ticket. Run the [List Linodes](https://techdocs.akamai.com/linode-api/reference/get-linode-instances) operation and store the `id` for the target Linode. example: 123 + nullable: true type: integer lkecluster_id: - description: The ID of the Kubernetes cluster this ticket is regarding, if relevant. - example: 123 + description: The ID of the Linode Kubernetes Engine (LKE) cluster entity for the ticket. Run the [List Kubernetes clusters](https://techdocs.akamai.com/linode-api/reference/get-lke-clusters) operation and store the `id` for the target LKE cluster. + example: null + nullable: true type: integer longviewclient_id: - description: The ID of the Longview client this ticket is regarding, if relevant. + description: The ID of the Longview client entity for the ticket. Run the [List Longview clients](https://techdocs.akamai.com/linode-api/reference/get-longview-clients) operation and store the `id` for the target client. example: null nullable: true type: integer managed_issue: + default: false description: |- - Designates if this ticket is related to a [Managed service](https://www.linode.com/products/managed/). If `true`, the following constraints will apply: + Whether this ticket is related to a [managed service](https://www.linode.com/products/managed/). If `true`, the following constraints apply: + + - You can't provide an entity, such as a `linode_id` or `bucket` with this request. - - No ID attributes (i.e. `linode_id`, `domain_id`, etc.) should be provided with this request. - - Your account must have a managed service [enabled](https://techdocs.akamai.com/linode-api/reference/post-enable-managed-service). + - Your account needs a managed service [enabled](https://techdocs.akamai.com/linode-api/reference/post-enable-managed-service). example: false type: boolean nodebalancer_id: - description: The ID of the NodeBalancer this ticket is regarding, if relevant. + description: The ID of the NodeBalancer entity for the ticket. Run the [List NodeBalancers](https://techdocs.akamai.com/linode-api/reference/get-node-balancers) operation and store the `id` for the target NodeBalancer. example: null nullable: true type: integer region: - description: |- - The [Region](https://techdocs.akamai.com/linode-api/reference/get-regions) ID for the associated VLAN this ticket is regarding. - - Only allowed when submitting a VLAN ticket. + description: "The ID of the [region](https://techdocs.akamai.com/linode-api/reference/get-regions) where this ticket's target entity resides. This only applies to tickets for a `vlan` or an Object Storage `bucket`.\n\n> \U0001F4D8\n>\n> Set this to the `clusterId` for a legacy Object Storage `bucket`." example: null nullable: true type: string summary: - description: The summary or title for this SupportTicket. - example: Having trouble resetting root password on my Linode + description: The summary or title for this support ticket. + example: Having trouble resetting root password on my Linode. maxLength: 64 minLength: 1 type: string vlan: - description: |- - The label of the VLAN this ticket is regarding, if relevant. To view your VLANs, run the [List VLANs](https://techdocs.akamai.com/linode-api/reference/get-vlans)) operation. - - Requires a specified `region` to identify the VLAN. + description: The label of the VLAN entity for the ticket. Run the [List VLANs](https://techdocs.akamai.com/linode-api/reference/get-vlans) operation and store the `id` for the target VLAN. You also need to provide the specific `region` where the VLAN is located. example: null nullable: true type: string volume_id: - description: The ID of the Volume this ticket is regarding, if relevant. + description: The ID of the volume entity for the ticket. Run the [List volumes](https://techdocs.akamai.com/linode-api/reference/get-volumes) operation and store the `id` for the target volume. example: null nullable: true type: integer vpc_id: - description: The ID of the VPC this ticket is regarding, if relevant. + description: The ID of the VPC entity for the ticket. Run the [List VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs) operation and store the `id` for the target VPC. example: null nullable: true type: integer @@ -85313,17 +92893,16 @@ paths: file-path: schemas/support-ticket-request.yaml x-example: x-ref: ../examples/post-ticket.json - description: Open a Support Ticket. responses: '200': content: application/json: schema: additionalProperties: false - description: A Support Ticket opened on your Account. + description: A support ticket opened from your account. properties: attachments: - description: __Read-only__ A list of filenames representing attached files associated with this Ticket. + description: __Read-only__ A list of filenames representing attached files associated with this ticket. items: example: - screenshot.jpg @@ -85332,12 +92911,12 @@ paths: readOnly: true type: array closable: - description: Whether the Support Ticket may be closed. + description: Whether the ticket can be closed. example: false type: boolean closed: - description: __Filterable__, __Read-only__ The date and time this Ticket was closed. - example: '2015-06-04T16:07:03' + description: __Filterable__, __Read-only__ When this ticket was closed. + example: '2024-06-04T16:07:03' format: date-time nullable: true readOnly: true @@ -85348,7 +92927,7 @@ paths: x-linode-filterable: true description: description: __Read-only__ The full details of the issue or question. - example: I am having trouble setting the root password on my Linode. I tried following the instructions but something is not working. Can you please help me figure out how I can reset it? + example: I'm having trouble setting the root password on my Linode. I tried following the instructions, but something isn't working. Can you please help me figure out how I can reset it? maxLength: 65000 minLength: 1 readOnly: true @@ -85356,11 +92935,11 @@ paths: x-linode-cli-display: 5 entity: additionalProperties: false - description: __Read-only__ The entity this Ticket was opened for. + description: __Read-only__ The ticket was opened for this entity. An entity represents a specific object you've created, such as a Linode or a Managed Database. nullable: true properties: id: - description: __Read-only__ The unique ID for this Ticket's entity. + description: __Read-only__ The unique ID for this ticket's entity. Empty if the targeted entity doesn't use an `id`. example: 10400 readOnly: true type: integer @@ -85370,12 +92949,23 @@ paths: readOnly: true type: string type: - description: __Read-only__ The type of entity this is related to. + description: __Read-only__ The type of entity. + enum: + - database + - domain + - firewall + - linode + - lkecluster + - managed_service + - nodebalancer + - vlan + - volume + - vpc example: linode readOnly: true type: string url: - description: __Read-only__ The URL where you can access the object this event is for. If a relative URL, it is relative to the domain you retrieved the entity from. + description: __Read-only__ The URL where you can access the `entity`. If this is a relative URL, it's relative to the domain for the entity. example: /v4/linode/instances/123456 readOnly: true type: string @@ -85383,19 +92973,19 @@ paths: type: object x-linode-cli-display: 6 gravatar_id: - description: __Read-only__ The Gravatar ID of the User who opened this Ticket. + description: __Read-only__ The Gravatar ID of the user who opened this ticket. example: 474a1b7373ae0be4132649e69c36ce30 readOnly: true type: string id: - description: __Read-only__ The ID of the Support Ticket. + description: __Read-only__ The ID of the support ticket. example: 11223344 readOnly: true type: integer x-linode-cli-display: 1 opened: - description: __Filterable__, __Read-only__ The date and time this Ticket was created. - example: '2015-06-04T14:16:44' + description: __Filterable__, __Read-only__ When this ticket was created. + example: '2024-06-04T14:16:44' format: date-time readOnly: true type: string @@ -85405,13 +92995,13 @@ paths: x-linode-cli-display: 4 x-linode-filterable: true opened_by: - description: __Read-only__ The User who opened this Ticket. + description: __Read-only__ The user who opened this ticket. example: some_user readOnly: true type: string x-linode-cli-display: 3 status: - description: __Read-only__ The current status of this Ticket. + description: __Read-only__ The current status of this ticket. enum: - closed - new @@ -85420,16 +93010,16 @@ paths: readOnly: true type: string summary: - description: __Read-only__ The summary or title for this Ticket. - example: Having trouble resetting root password on my Linode + description: __Read-only__ The summary or title for this ticket. + example: Having trouble resetting Linode root password. maxLength: 64 minLength: 1 readOnly: true type: string x-linode-cli-display: 2 updated: - description: __Filterable__, __Read-only__ The date and time this Ticket was last updated. - example: '2015-06-04T16:07:03' + description: __Filterable__, __Read-only__ When this ticket was last updated. + example: '2024-06-04T16:07:03' format: date-time readOnly: true type: string @@ -85438,7 +93028,7 @@ paths: - Filterable x-linode-filterable: true updated_by: - description: __Read-only__ The User who last updated this Ticket. + description: __Read-only__ The user who last updated this ticket. example: some_other_user nullable: true readOnly: true @@ -85448,7 +93038,7 @@ paths: file-path: schemas/support-ticket.yaml x-example: x-ref: ../examples/post-ticket-200.json - description: Support Ticket opened. + description: Support ticket opened. default: content: application/json: @@ -85502,7 +93092,7 @@ paths: /{apiVersion}/support/tickets/{ticketId}: get: description: |- - Returns a Support Ticket under your Account. + Returns a specific support ticket under your account. <> @@ -85535,10 +93125,10 @@ paths: application/json: schema: additionalProperties: false - description: A Support Ticket opened on your Account. + description: A support ticket opened from your account. properties: attachments: - description: __Read-only__ A list of filenames representing attached files associated with this Ticket. + description: __Read-only__ A list of filenames representing attached files associated with this ticket. items: example: - screenshot.jpg @@ -85547,12 +93137,12 @@ paths: readOnly: true type: array closable: - description: Whether the Support Ticket may be closed. + description: Whether the ticket can be closed. example: false type: boolean closed: - description: __Filterable__, __Read-only__ The date and time this Ticket was closed. - example: '2015-06-04T16:07:03' + description: __Filterable__, __Read-only__ When this ticket was closed. + example: '2024-06-04T16:07:03' format: date-time nullable: true readOnly: true @@ -85563,7 +93153,7 @@ paths: x-linode-filterable: true description: description: __Read-only__ The full details of the issue or question. - example: I am having trouble setting the root password on my Linode. I tried following the instructions but something is not working. Can you please help me figure out how I can reset it? + example: I'm having trouble setting the root password on my Linode. I tried following the instructions, but something isn't working. Can you please help me figure out how I can reset it? maxLength: 65000 minLength: 1 readOnly: true @@ -85571,11 +93161,11 @@ paths: x-linode-cli-display: 5 entity: additionalProperties: false - description: __Read-only__ The entity this Ticket was opened for. + description: __Read-only__ The ticket was opened for this entity. An entity represents a specific object you've created, such as a Linode or a Managed Database. nullable: true properties: id: - description: __Read-only__ The unique ID for this Ticket's entity. + description: __Read-only__ The unique ID for this ticket's entity. Empty if the targeted entity doesn't use an `id`. example: 10400 readOnly: true type: integer @@ -85585,12 +93175,23 @@ paths: readOnly: true type: string type: - description: __Read-only__ The type of entity this is related to. + description: __Read-only__ The type of entity. + enum: + - database + - domain + - firewall + - linode + - lkecluster + - managed_service + - nodebalancer + - vlan + - volume + - vpc example: linode readOnly: true type: string url: - description: __Read-only__ The URL where you can access the object this event is for. If a relative URL, it is relative to the domain you retrieved the entity from. + description: __Read-only__ The URL where you can access the `entity`. If this is a relative URL, it's relative to the domain for the entity. example: /v4/linode/instances/123456 readOnly: true type: string @@ -85598,19 +93199,19 @@ paths: type: object x-linode-cli-display: 6 gravatar_id: - description: __Read-only__ The Gravatar ID of the User who opened this Ticket. + description: __Read-only__ The Gravatar ID of the user who opened this ticket. example: 474a1b7373ae0be4132649e69c36ce30 readOnly: true type: string id: - description: __Read-only__ The ID of the Support Ticket. + description: __Read-only__ The ID of the support ticket. example: 11223344 readOnly: true type: integer x-linode-cli-display: 1 opened: - description: __Filterable__, __Read-only__ The date and time this Ticket was created. - example: '2015-06-04T14:16:44' + description: __Filterable__, __Read-only__ When this ticket was created. + example: '2024-06-04T14:16:44' format: date-time readOnly: true type: string @@ -85620,13 +93221,13 @@ paths: x-linode-cli-display: 4 x-linode-filterable: true opened_by: - description: __Read-only__ The User who opened this Ticket. + description: __Read-only__ The user who opened this ticket. example: some_user readOnly: true type: string x-linode-cli-display: 3 status: - description: __Read-only__ The current status of this Ticket. + description: __Read-only__ The current status of this ticket. enum: - closed - new @@ -85635,16 +93236,16 @@ paths: readOnly: true type: string summary: - description: __Read-only__ The summary or title for this Ticket. - example: Having trouble resetting root password on my Linode + description: __Read-only__ The summary or title for this ticket. + example: Having trouble resetting Linode root password. maxLength: 64 minLength: 1 readOnly: true type: string x-linode-cli-display: 2 updated: - description: __Filterable__, __Read-only__ The date and time this Ticket was last updated. - example: '2015-06-04T16:07:03' + description: __Filterable__, __Read-only__ When this ticket was last updated. + example: '2024-06-04T16:07:03' format: date-time readOnly: true type: string @@ -85653,7 +93254,7 @@ paths: - Filterable x-linode-filterable: true updated_by: - description: __Read-only__ The User who last updated this Ticket. + description: __Read-only__ The user who last updated this ticket. example: some_other_user nullable: true readOnly: true @@ -85663,7 +93264,7 @@ paths: file-path: schemas/support-ticket.yaml x-example: x-ref: ../examples/get-ticket-200.json - description: Returns a single SupportTicket object. + description: Returns a single support ticket. default: content: application/json: @@ -85718,7 +93319,7 @@ paths: type: string x-akamai: file-path: parameters/api-version-path.yaml - - description: The ID of the Support Ticket. + - description: The ID of the support ticket. in: path name: ticketId required: true @@ -85744,7 +93345,7 @@ paths: type: string x-akamai: file-path: parameters/api-version-path.yaml - - description: The ID of the Support Ticket. + - description: The ID of the support ticket. in: path name: ticketId required: true @@ -85755,11 +93356,7 @@ paths: file-path: parameters/ticket-id.yaml post: description: |- - Adds a file attachment to an existing Support Ticket on your Account. File attachments are used to assist our Support team in resolving your Ticket. Examples of attachments are screen shots and text files that provide additional information. - - The file attachment is submitted in the request as multipart/form-data. - - __Note__. Accepted file extensions include: .gif, .jpg, .jpeg, .pjpg, .pjpeg, .tif, .tiff, .png, .pdf, or .txt. + Adds a file attachment to an open support ticket on your account. Use an attachment to help customer support resolve your ticket. The file attachment is submitted in the request as `multipart/form-data` type. Accepted file extensions include: `.gif`, `.jpg`, `.jpeg`, `.pjpg`, `.pjpeg`, `.tif`, `.tiff`, `.png`, `.pdf`, or `.txt`. <> @@ -85785,14 +93382,13 @@ paths: additionalProperties: false properties: file: - description: The local, absolute path to the file you want to attach to your Support Ticket. + description: The local, absolute path to the file you want to attach to your support ticket. example: /Users/LinodeGuy/pictures/screen_shot.jpg type: string required: - file x-akamai: file-path: schemas/attachment-add-form-data.yaml - description: Add an attachment. required: true responses: '200': @@ -85864,7 +93460,7 @@ paths: type: string x-akamai: file-path: parameters/api-version-path.yaml - - description: The ID of the Support Ticket. + - description: The ID of the support ticket. in: path name: ticketId required: true @@ -85875,7 +93471,7 @@ paths: file-path: parameters/ticket-id.yaml post: description: |- - Closes a Support Ticket you have access to modify. + Closes a support ticket you have access to modify. <> @@ -85914,7 +93510,7 @@ paths: file-path: schemas/added-empty-obj.yaml x-example: x-ref: ../examples/post-close-ticket-200.json - description: Support Ticket closed successfully. + description: Support ticket closed successfully. default: content: application/json: @@ -85964,7 +93560,7 @@ paths: /{apiVersion}/support/tickets/{ticketId}/replies: get: description: |- - Returns a collection of replies to a Support Ticket on your Account. + Returns a collection of replies to a support ticket on your account. <> @@ -86024,38 +93620,38 @@ paths: data: items: additionalProperties: false - description: An object representing a reply to a Support Ticket. + description: An object representing a reply to a support ticket. properties: created: - description: __Read-only__ The date and time this Ticket reply was created. + description: __Read-only__ When this ticket reply was created. example: '2015-06-02T14:31:41' format: date-time readOnly: true type: string x-linode-cli-display: 3 created_by: - description: __Read-only__ The User who submitted this reply. + description: __Read-only__ The user who submitted this reply. example: John Q. Linode readOnly: true type: string x-linode-cli-display: 2 description: - description: __Read-only__ The body of this Support Ticket reply. - example: Hello,\nI'm sorry to hear that you are having trouble resetting the root password of your Linode. Just to be sure, have you tried to follow the instructions in our online documentation? The link is here:\n \nhttps://linode.com/docs/guides/reset-the-root-password-on-your-linode/ \n\nIf you have, please reply with any additional steps you have also taken.\n\nRegards, Linode Support Team + description: __Read-only__ The body of this support ticket reply. + example: 'Hello,\nI''m sorry to hear that you''re having trouble resetting the root password of your Linode. Just to be sure, have you tried to follow the instructions here: https://techdocs.akamai.com/cloud-computing/docs/reset-the-root-password-on-a-compute-instance? If you have, please reply with any additional steps you''ve also taken.\nRegards,\nLinode Support Team' readOnly: true type: string from_linode: - description: __Read-only__ If set to `true`, this reply came from a Linode employee. + description: __Read-only__ If `true`, this reply came from a Linode employee. example: true readOnly: true type: boolean gravatar_id: - description: __Read-only__ The Gravatar ID of the User who created this reply. + description: __Read-only__ The Gravatar ID of the user who created this reply. example: 474a1b7373ae0be4132649e69c36ce30 readOnly: true type: string id: - description: __Read-only__ The unique ID of this Support Ticket reply. + description: __Read-only__ The unique ID of this support ticket reply. example: 11223345 readOnly: true type: integer @@ -86084,7 +93680,7 @@ paths: file-path: schemas/added-get-ticket-replies-200.yaml x-example: x-ref: ../examples/get-ticket-replies-200.json - description: Returns a paginated list of SupportTicketReply objects. + description: Returns a paginated list of support ticket replies. default: content: application/json: @@ -86139,7 +93735,7 @@ paths: type: string x-akamai: file-path: parameters/api-version-path.yaml - - description: The ID of the Support Ticket. + - description: The ID of the support ticket. in: path name: ticketId required: true @@ -86150,7 +93746,7 @@ paths: file-path: parameters/ticket-id.yaml post: description: |- - Adds a reply to an existing Support Ticket. + Adds a reply to an existing support ticket. <> @@ -86197,7 +93793,6 @@ paths: file-path: schemas/added-post-ticket-reply.yaml x-example: x-ref: ../examples/post-ticket-reply.json - description: Add a reply. required: true responses: '200': @@ -86205,38 +93800,38 @@ paths: application/json: schema: additionalProperties: false - description: An object representing a reply to a Support Ticket. + description: An object representing a reply to a support ticket. properties: created: - description: __Read-only__ The date and time this Ticket reply was created. + description: __Read-only__ When this ticket reply was created. example: '2015-06-02T14:31:41' format: date-time readOnly: true type: string x-linode-cli-display: 3 created_by: - description: __Read-only__ The User who submitted this reply. + description: __Read-only__ The user who submitted this reply. example: John Q. Linode readOnly: true type: string x-linode-cli-display: 2 description: - description: __Read-only__ The body of this Support Ticket reply. - example: Hello,\nI'm sorry to hear that you are having trouble resetting the root password of your Linode. Just to be sure, have you tried to follow the instructions in our online documentation? The link is here:\n \nhttps://linode.com/docs/guides/reset-the-root-password-on-your-linode/ \n\nIf you have, please reply with any additional steps you have also taken.\n\nRegards, Linode Support Team + description: __Read-only__ The body of this support ticket reply. + example: 'Hello,\nI''m sorry to hear that you''re having trouble resetting the root password of your Linode. Just to be sure, have you tried to follow the instructions here: https://techdocs.akamai.com/cloud-computing/docs/reset-the-root-password-on-a-compute-instance? If you have, please reply with any additional steps you''ve also taken.\nRegards,\nLinode Support Team' readOnly: true type: string from_linode: - description: __Read-only__ If set to `true`, this reply came from a Linode employee. + description: __Read-only__ If `true`, this reply came from a Linode employee. example: true readOnly: true type: boolean gravatar_id: - description: __Read-only__ The Gravatar ID of the User who created this reply. + description: __Read-only__ The Gravatar ID of the user who created this reply. example: 474a1b7373ae0be4132649e69c36ce30 readOnly: true type: string id: - description: __Read-only__ The unique ID of this Support Ticket reply. + description: __Read-only__ The unique ID of this support ticket reply. example: 11223345 readOnly: true type: integer @@ -87418,15 +95013,15 @@ paths: file-path: schemas/volume.yaml x-linode-ref-name: volume - additionalProperties: false - description: Linode's load balancing solution. Can handle multiple ports, SSL termination, and any number of backends. NodeBalancer ports are configured with NodeBalancer Configs, and each config is given one or more NodeBalancer Node that accepts traffic. The traffic should be routed to the NodeBalancer's ip address, the NodeBalancer will handle routing individual requests to backends. + description: Linode's load balancing solution. Can handle multiple ports, SSL termination, and any number of backends. NodeBalancer ports are configured with NodeBalancer configs, and each config is given one or more NodeBalancer nodes that accepts traffic. The traffic should be routed to the NodeBalancer's IP address, for the NodeBalancer to handle routing individual requests to backends. properties: client_conn_throttle: - description: Throttle connections per second. Set to 0 (zero) to disable throttling. - example: 0 + description: Throttle TCP connections per second for TCP, HTTP, and HTTPS configurations. Set to `0` (zero) to disable throttling. + example: 10 maximum: 20 minimum: 0 type: integer - x-linode-cli-display: 6 + x-linode-cli-display: 7 created: description: __Read-only__ When this NodeBalancer was created. example: '2018-01-01T00:01:01'