diff --git a/openapi.yaml b/openapi.yaml index f9bca8b0d..43bd5b79c 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. @@ -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 15 to 30 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. + + - 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 @@ -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 15 to 30 minutes to provision.\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. + + - 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 @@ -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. - 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 @@ -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. - 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 @@ -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. - - To perform this operation, the database's status needs to be `active`. + Make changes to an existing PostgreSQL Managed Database. - Updating addresses in the `allow_list` overwrites any existing addresses. + - The user needs `read_write` [user grant](https://techdocs.akamai.com/linode-api/reference/get-user-grants) access to the database. - - IP addresses and ranges in this list can access the Managed Database. All other sources are blocked. + - The database's status needs to be `active`. - - If `0.0.0.0/0` is a value in this list, then all IP addresses can access the Managed Database. + - 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. - - Entering an empty array (`[]`) blocks all public and private connections to 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. - - 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. + - Also allows resizing the database cluster to a larger one. Clusters can't be resized to smaller plans. - 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. + - 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. - - 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. - 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 @@ -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. + + - 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 @@ -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. + 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. - 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 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 @@ -42032,7 +41901,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 +41916,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 +42142,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 +42229,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 +42244,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 +42485,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 +42500,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 +42697,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 +42712,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 +42891,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 +42906,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 +45632,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' @@ -51214,44 +51089,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 +51180,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 +53032,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 +53055,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 +53359,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 +53377,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 +53580,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 +53655,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 +53746,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 +53840,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 +53858,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 +53981,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 +54184,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 +54202,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 +54352,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 +54405,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 +54484,7 @@ paths: - value - effect type: object - minItems: 1 + minItems: 0 type: array type: object x-akamai: @@ -54738,25 +54564,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 +54582,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 +54678,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 +69169,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 +69365,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,268 +69404,816 @@ 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. + 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. - Line breaks must be represented as `\n` in the string for requests (but not when using the Linode 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. - [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 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. - The contents of this field will not be shown in any responses that display the NodeBalancerConfig. Instead, `` will be printed where the field appears. + 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 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 `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: + 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-key - nullable: true - type: string - stickiness: - default: none - description: |- - Controls how session stickiness is handled on this port. + - 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. - - 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 + - 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: @@ -69852,7 +70221,7 @@ paths: The ID of the Firewall to assign to the NodeBalancer. - A NodeBalancer can have only one Firewall assigned to it. - - Firewalls only apply to inbound TCP traffic to NodeBalancers. + - Firewalls control inbound network traffic to NodeBalancers. type: integer label: description: __Filterable__ This NodeBalancer's label. These must be unique on your Account. @@ -69895,15 +70264,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' @@ -70376,15 +70745,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 +70960,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 +71084,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 +71314,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. - - - 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. + 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. - - `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 `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. - - The `http` and `tcp` protocols do not support `ssl_cert` and `ssl_key`. + 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. - - The `https` protocol is mutually required with `ssl_cert` and `ssl_key`. + 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. - 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 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. - - 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- + 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 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. + - 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. - [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 `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 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 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 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. + 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. - Line breaks must be represented as `\n` in the string for requests (but not when using the Linode CLI). + - 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-key - nullable: true - type: string - stickiness: - default: none - description: |- - Controls how session stickiness is handled on this port. + - 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. - - 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 + 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 type: array @@ -71244,7 +72204,7 @@ paths: 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. + 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. <> @@ -71252,7 +72212,7 @@ paths: --- - - __CLI__. + - __CLI: HTTPS__. ``` linode-cli nodebalancers config-create 12345 \ @@ -71274,7 +72234,44 @@ paths: --ssl_key "-----BEGIN PRIVATE KEY----- PRIVATE_KEY_INFORMATION -----END PRIVATE KEY-----" \ - --cipher_suite recommended + --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 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-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) @@ -71294,238 +72291,19 @@ paths: 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. + 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: @@ -71533,7 +72311,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: @@ -71555,12 +72333,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 @@ -71584,15 +72364,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 @@ -71600,7 +72374,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 @@ -71609,17 +72383,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 @@ -71628,8 +72480,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 @@ -71637,24 +72489,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. @@ -71666,270 +72512,309 @@ 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. - - 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 + description: __Read-only__ Not applicable for TCP 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 TCP 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 TCP 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 description: |- - Controls how session stickiness is handled on this port. + __Read-only__ 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. + Not applicable to TCP configurations. enum: - none - table - http_cookie - example: 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.yaml - x-example: - x-ref: ../examples/post-node-balancer-config-200.json - description: Config created successfully. - default: - content: - application/json: - schema: - additionalProperties: false + 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: - 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 config - 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 - 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-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: - 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. - - - <> - - --- - - - - __CLI__. - - ``` - linode-cli nodebalancers config-delete \ - 12345 4567 - ``` - - [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) + 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 - 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: + 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: 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 + 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 - 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 + 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 - type: object + 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_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 - ``` + 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/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. + - 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: What algorithm this NodeBalancer should use for routing traffic to backends. + description: The algorithm this HTTPS NodeBalancer uses for routing traffic to backends. enum: - roundrobin - leastconn @@ -71960,16 +72845,18 @@ 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: 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: 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 @@ -71978,12 +72865,12 @@ 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. 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: 30 + default: 3 description: |- How long, in seconds, to wait for a check attempt before considering it failed. @@ -72009,7 +72896,7 @@ paths: x-linode-cli-display: 7 id: description: __Read-only__ This config's unique ID. - example: 4567 + example: 5000 readOnly: true type: integer x-linode-cli-display: 1 @@ -72018,17 +72905,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 +73002,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: 443 maximum: 65535 minimum: 1 type: integer @@ -72046,33 +73011,21 @@ 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, `https` 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: https 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 + description: __Read-only__ Not applicable for HTTPS configs. example: none + readOnly: true type: string ssl_cert: description: |2- @@ -72120,12 +73073,12 @@ paths: nullable: 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. + - 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 @@ -72134,26 +73087,843 @@ paths: example: http_cookie type: string x-linode-cli-display: 5 + required: + - nodes + title: HTTPS 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: + 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 + description: NodeBalancer configuration details for the port based on the routing protocol. + responses: + '200': 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 + 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/post-node-balancer-config-200.json + description: Config 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. @@ -72168,54 +73938,81 @@ paths: security: - personalAccessToken: [] - oauth: - - nodebalancers:read_only - summary: Get a config + - nodebalancers:read_write + summary: Create a config tags: - NodeBalancers x-akamai: tabs: - syntax: |- - linode-cli nodebalancers config-view \ - 12345 4567 - title: 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 \ + title: 'CLI: HTTPS' url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli - - syntax: nodebalancers:read_only + - syntax: |- + linode-cli nodebalancers config-create 12345 \ + --port 80 \ + --protocol tcp \ + --algorithm roundrobin \ + --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-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-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: + 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: description: |- - Updates the configuration for a single port on a NodeBalancer. + 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. <> @@ -72226,27 +74023,8 @@ paths: - __CLI__. ``` - 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 + linode-cli nodebalancers config-delete \ + 12345 4567 ``` [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) @@ -72260,450 +74038,21 @@ 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/put-node-balancer-config - operationId: put-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/put-node-balancer-config.json - description: The fields to update. - required: true + url: https://techdocs.akamai.com/linode-api/reference/delete-node-balancer-config + operationId: delete-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. - 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 + description: The API responds with an empty object. + maxProperties: 0 type: object x-akamai: - file-path: schemas/node-balancer-config.yaml + file-path: schemas/added-empty-obj.yaml x-example: - x-ref: ../examples/get-node-balancer-config-200.json - description: Config updated successfully. + x-ref: ../examples/delete-node-balancer-config-200.json + description: NodeBalancer Config deleted successfully. default: content: application/json: @@ -72733,48 +74082,24 @@ paths: - personalAccessToken: [] - oauth: - nodebalancers:read_write - summary: Update a config + summary: Delete 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 + 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-update + x-linode-cli-action: config-delete 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. + Returns configuration information for a single port of this NodeBalancer. <> @@ -72785,7 +74110,8 @@ paths: - __CLI__. ``` - linode-cli nodebalancers nodes-list 12345 4567 + linode-cli nodebalancers config-view \ + 12345 4567 ``` [Learn more...](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli) @@ -72799,136 +74125,820 @@ 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/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/get-node-balancer-config + operationId: get-node-balancer-config responses: '200': content: application/json: schema: - additionalProperties: false - properties: - data: - items: + 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: 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 + 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 - id: - description: __Read-only__ This node's unique ID. - example: 54321 + 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 - 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. + 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. - - 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 + 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 - x-linode-cli-display: 5 + 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/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-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/added-get-node-balancer-config-nodes-200.yaml + file-path: schemas/node-balancer-config.yaml x-example: - x-ref: ../examples/get-node-balancer-config-nodes-200.json - description: A paginated list of NodeBalancer nodes. + x-ref: ../examples/get-node-balancer-config-200.json + description: The requested NodeBalancer config. default: content: application/json: @@ -72958,18 +74968,20 @@ paths: - personalAccessToken: [] - oauth: - nodebalancers:read_only - summary: List nodes + summary: Get a config tags: - NodeBalancers x-akamai: tabs: - - syntax: linode-cli nodebalancers nodes-list 12345 4567 + - 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: nodes-list + 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. @@ -72991,7 +75003,7 @@ paths: type: integer x-akamai: file-path: parameters/node-balancer-id.yaml - - description: The ID of the NodeBalancer config to access. + - description: The ID of the Config to access. in: path name: configId required: true @@ -72999,10 +75011,10 @@ paths: example: 521 type: integer x-akamai: - file-path: parameters/config-id-node-balancer.yaml - post: + file-path: parameters/config-id.yaml + put: 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. + Updates the configuration for a single port on a NodeBalancer. <> @@ -73010,15 +75022,69 @@ paths: --- - - __CLI__. + - __CLI: HTTPS__. ``` - linode-cli nodebalancers node-create \ + linode-cli nodebalancers config-update \ 12345 4567 \ - --address 192.168.210.120:80 \ - --label node54321 \ - --weight 50 \ - --mode accept + --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 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) @@ -73032,854 +75098,536 @@ 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/post-node-balancer-node - operationId: post-node-balancer-node + url: https://techdocs.akamai.com/linode-api/reference/put-node-balancer-config + operationId: put-node-balancer-config requestBody: content: application/json: schema: - allOf: + description: NodeBalancer `config` options for each protocol. + oneOf: - 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: A NodeBalancer configuration defines the protocol and settings for a specific port on the NodeBalancer. These fields apply to TCP configurations. 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}' + 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: 2 - mode: + x-linode-cli-display: 4 + check: + default: none description: |- - The mode this NodeBalancer should use when sending traffic to this backend. + 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 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. + - 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: - - accept - - reject - - drain - - backup - example: accept + - 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 - nodebalancer_id: - description: __Read-only__ The NodeBalancer ID that this Node belongs to. - example: 12345 - readOnly: true + 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 - 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 + cipher_suite: + description: __Read-only__ Not applicable for HTTP configs. + example: recommended 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 - 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 + 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 - 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. + description: __Read-only__ The ID for 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 - 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: + 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 + 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 - 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 + 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 - 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. - - - <> - - --- - - - - __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 - ``` + x-linode-cli-display: 2 + mode: + description: |- + The mode this NodeBalancer should use when sending traffic to this backend. - [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 + - 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 - 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 + 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 - type: object + 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_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 - ``` + 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. - [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: - 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 + 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 - config_id: - description: __Read-only__ The NodeBalancer Config ID that this Node belongs to. - example: 4567 + 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: integer - id: - description: __Read-only__ This node's unique ID. - example: 54321 + type: string + ssl_commonname: + description: __Read-only__ Not applicable for TCP configs. + example: '' 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: + 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: |- - The mode this NodeBalancer should use when sending traffic to this backend. + __Read-only__ Controls how session stickiness is handled on this port. - - 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. + Not applicable to TCP configurations. enum: - - accept - - reject - - drain - - backup - example: accept + - 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 - nodebalancer_id: - description: __Read-only__ The NodeBalancer ID that this Node belongs to. - example: 12345 - readOnly: true + 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 - 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 + cipher_suite: + description: __Read-only__ Not applicable for HTTP configs. + example: recommended 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 + 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: 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. - default: - content: - application/json: - schema: - additionalProperties: false - properties: - errors: + 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: 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 + 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 - 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 + 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 - type: object + 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_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__. - - ``` - 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: - 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/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 + 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: 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: + protocol: + default: http 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. + 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: - - accept - - reject - - drain - - backup - example: accept + - http + example: http type: string - x-linode-cli-display: 6 - nodebalancer_id: - description: __Read-only__ The NodeBalancer ID that this Node belongs to. - example: 12345 + x-linode-cli-display: 3 + proxy_protocol: + default: none + description: __Read-only__ Not applicable for HTTP configs. + example: none 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 + type: string + ssl_cert: + description: __Read-only__ Not applicable for HTTP configs. + example: null + nullable: true 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 + 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-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: - 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 - 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__. - - ``` - 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"}' - ``` - - [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: + file-path: schemas/node-balancer-config-http.yaml - 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. + 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: What algorithm this NodeBalancer should use for routing traffic to backends. + description: The algorithm this HTTPS NodeBalancer uses for routing traffic to backends. enum: - roundrobin - leastconn @@ -73910,16 +75658,18 @@ 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: 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: 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 @@ -73928,12 +75678,12 @@ 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. 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: 30 + default: 3 description: |- How long, in seconds, to wait for a check attempt before considering it failed. @@ -73959,7 +75709,7 @@ paths: x-linode-cli-display: 7 id: description: __Read-only__ This config's unique ID. - example: 4567 + example: 5000 readOnly: true type: integer x-linode-cli-display: 1 @@ -73968,61 +75718,127 @@ paths: 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 + 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 - - tcp - example: http + example: https 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 + description: __Read-only__ Not applicable for HTTPS configs. example: none + readOnly: true type: string ssl_cert: description: |2- @@ -74070,12 +75886,12 @@ paths: nullable: 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. + - 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 @@ -74084,292 +75900,3772 @@ paths: 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 + 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 - - additionalProperties: false + x-example: + x-ref: ../examples/get-node-balancer-config-200.json + description: Config updated successfully. + default: + content: + application/json: + schema: + additionalProperties: false properties: - nodes: - description: |- - The NodeBalancer Nodes that serve this Config. + 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 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 + 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 + 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 + 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 + 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 + 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 + 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 '{"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"}' + ``` + + [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 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://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 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/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 + 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. - Some considerations for Nodes when rebuilding a config: + 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. - - 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: + - 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: NodeBalancer Node request object including ID. + 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 - id: - description: The unique ID of the Node to update. - example: 54321 + 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 - 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 + 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 - x-linode-cli-display: 5 + readOnly: true 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 - 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. + 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 `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 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. - 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. + - 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 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 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. - - `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. + 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 `http` and `tcp` protocols do not support `ssl_cert` and `ssl_key`. + - `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. - - The `https` protocol is mutually required with `ssl_cert` and `ssl_key`. + - 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. - 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. + - 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: |2- + 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. + 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). + 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. + [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 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. + 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). + 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 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. + 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 - type: object + - 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: @@ -74433,7 +79729,38 @@ paths: --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 + 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 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://www.linode.com/docs/products/tools/cli/get-started/ + - syntax: |- + linode-cli nodebalancers config-rebuild \ + 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 @@ -78213,7 +83540,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 +84044,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 +90256,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 +90316,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 +90328,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 +90344,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 +90352,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 +90366,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 +90390,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 +90412,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 +90427,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 +90445,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 +90474,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 +90533,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 +90568,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: - - 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). + - You can't provide an entity, such as a `linode_id` or `bucket` with this request. + + - 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 +90660,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 +90678,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 +90694,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 +90702,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 +90716,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 +90740,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 +90762,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 +90777,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 +90795,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 +90805,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 +90859,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 +90892,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 +90904,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 +90920,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 +90928,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 +90942,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 +90966,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 +90988,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 +91003,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 +91021,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 +91031,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 +91086,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 +91112,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 +91123,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 +91149,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 +91227,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 +91238,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 +91277,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 +91327,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 +91387,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 +91447,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 +91502,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 +91513,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 +91560,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 +91567,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 +92780,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' @@ -92949,4 +98311,4 @@ x-readme: samples-languages: - curl - python - - node + - node \ No newline at end of file