openapi: 3.2.0 info: contact: email: support@linode.com name: Linode url: https://linode.com description: Add a Cloud Computing instance so you can build, release, and scale applications faster with virtual machines. license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0.html title: 'Akamai: Linode Configurations API' version: 4.215.0 servers: - url: https://api.linode.com tags: - name: Configurations paths: /{apiVersion}/nodebalancers/{nodeBalancerId}/configs: parameters: - description: __Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta. example: '{{apiVersion}}' 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. example: '{{nodeBalancerId}}' in: path name: nodeBalancerId required: true schema: type: integer x-akamai: file-path: parameters/node-balancer-id.yaml x-akamai: file-path: paths/node-balancer-configs.yaml path-info: /{apiVersion}/nodebalancers/{nodeBalancerId}/configs x-linode-cli-command: nodebalancers post: description: '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. > 🚧 > > You can configure UDP on the same NodeBalancer that also uses TCP, HTTP, or HTTPS, but only when managing it through the API. If UDP is configured and you make changes to the TCP, HTTP or HTTPS settings in Cloud Manager, the existing UDP configuration will be overwritten. This is because Cloud Manager doesn''t currently support UDP. > --- - __CLI: HTTPS__. ``` linode-cli nodebalancers config-create 12345 \ --port 443 \ --protocol https \ --algorithm roundrobin \ --stickiness http_cookie \ --check http_body \ --check_interval 90 \ --check_timeout 10 \ --check_attempts 3 \ --check_path "/test" \ --check_body "it works" \ --check_passive true \ --proxy_protocol "none" \ --ssl_cert "-----BEGIN CERTIFICATE----- CERTIFICATE_INFORMATION -----END CERTIFICATE-----" \ --ssl_key "-----BEGIN PRIVATE KEY----- PRIVATE_KEY_INFORMATION -----END PRIVATE KEY-----" \ --cipher_suite recommended ``` Learn more... - __CLI: UDP__. ``` linode-cli nodebalancers config-create 12345 \ --port 80 \ --protocol udp \ --algorithm ring_hash \ --stickiness session \ --check http_body \ --check_interval 90 \ --check_timeout 10 \ --check_attempts 3 \ --check_path "/test" \ --check_body "it works" \ --udp_check_port 80 ``` Learn more... - __CLI: TCP__. ``` linode-cli nodebalancers config-create 12345 \ --port 80 \ --protocol tcp \ --algorithm roundrobin \ --stickiness none \ --check http_body \ --check_interval 90 \ --check_timeout 10 \ --check_attempts 3 \ --check_path "/test" \ --check_body "it works" \ --proxy_protocol "v2" ``` Learn more... - __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... - __OAuth scopes__. ``` nodebalancers:read_write ``` Learn more...' externalDocs: description: See documentation for this operation in Akamai's Linode API url: https://techdocs.akamai.com/linode-api/reference/post-node-balancer-config operationId: post-node-balancer-config requestBody: content: application/json: schema: allOf: - description: NodeBalancer `config` options for each protocol. oneOf: - additionalProperties: false description: __Beta__ A NodeBalancer configuration defines the protocol and settings for a specific port on the NodeBalancer. These fields apply to UDP configurations. properties: algorithm: default: roundrobin description: The algorithm this UDP NodeBalancer uses to route traffic to backends. enum: - roundrobin - leastconn - ring_hash 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 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: This value must be present in the response body of the check in order for it to pass. If this value isn't present in the response body of a check request, the backend is considered to be down. example: it works type: string check_interval: default: 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: description: __Read-only__ Must be `false` for UDP. example: false readOnly: true type: boolean x-linode-cli-display: 8 check_path: description: The URL path to check on each backend. If the backend does not respond to this request, it's considered to be down. example: /test pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ type: string check_timeout: default: 30 description: 'How long, in seconds, to wait for a check attempt before considering it failed. Must be less than `check_interval`.' example: 10 maximum: 30 minimum: 1 type: integer cipher_suite: description: __Read-only__ Not applicable for UDP configs. example: none 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: 7000 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: __Beta__ A NodeBalancer node represents a single backend serving requests for a single port of a NodeBalancer. Nodes are tied to individual NodeBalancer configurations and route traffic over their private IPv4 address, IPv6 address, or VPC IPv4 address. 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 UDP 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: "Backend nodes can be Linodes and Linodes within a VPC. The following IP types are supported:\n - For non-VPC backend nodes, the private IPv4 address and port where this backend can be reached.\n - For non-VPC backend nodes, the public IPv6 address and port where this backend can be reached.\n - For backend nodes within a VPC, the IPv4 address and port where this backend can be reached." example: - 192.168.210.120:443 - 10.100.5.5:80 - '[2300:5800::f03c:93ff:fe6e:1264]:8080' 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: __Read-only__ The mode this NodeBalancer should use when sending traffic to this backend. For backend nodes with a UDP config, the `mode` doesn't apply, so the value is `none`. enum: - none example: none readOnly: true 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 subnet_id: description: Required for VPC backend nodes only. The VPC's subnet. To display information about your VPCs and their subnets, run the [List VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs) operation. example: 1 type: integer 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: UDP config x-akamai: file-path: schemas/node-balancer-node-udp.yaml status: BETA 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: 11 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: 5795 maximum: 65535 minimum: 1 type: integer x-linode-cli-display: 2 protocol: default: http description: The protocol the port is configured to serve, `udp` 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: - udp example: udp type: string x-linode-cli-display: 3 proxy_protocol: description: __Read-only__ Must be `none` for UDP. example: none readOnly: true type: string ssl_cert: description: __Read-only__ Not applicable for UDP configs. example: null readOnly: true type: - string - 'null' ssl_commonname: description: __Read-only__ Not applicable for UPD configs. example: '' readOnly: true type: string x-linode-cli-display: 9 ssl_fingerprint: description: __Read-only__ Not applicable for UDP configs. example: '' readOnly: true type: string x-linode-cli-display: 10 ssl_key: description: __Read-only__ Not applicable for UDP configs. example: null readOnly: true type: - string - 'null' stickiness: default: session description: 'Controls how session stickiness is handled on this port. - If set to `none`, connections are assigned a backend server based on the algorithm configured. - If set to `session`, all packets with the same session identifiers are routed to the same backend server. Two packets are considered part of the same session if they share the same source and destination IP addresses or ports, and are received within a short time window. - If set to `source_ip`, the NodeBalancer uses the client''s source IP address to route all packets from the same client to the same backend server.' enum: - none - session - source_ip example: none type: string x-linode-cli-display: 5 udp_check_port: default: 80 description: UDP NodeBalancers use TCP and HTTP active health checks to ensure back-end nodes can receive traffic. You can specify the health check port that the backend node listens on, which may differ from the UDP port used to serve traffic. example: 5795 maximum: 65535 minimum: 1 type: integer x-linode-cli-display: 6 udp_session_timeout: default: 16 description: __Read-only__ The maximum duration in seconds, a UDP session can be idle before it is closed. example: 2 maximum: 300 minimum: 1 readOnly: true type: integer x-linode-cli-display: 12 required: - nodes title: UDP type: object x-akamai: file-path: schemas/node-balancer-config-udp.yaml status: BETA - 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. The `check` 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's considered to be down. example: /test pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ type: string check_timeout: default: 30 description: 'How long, in seconds, to wait for a check attempt before considering it failed. Must be less than `check_interval`.' example: 10 maximum: 30 minimum: 1 type: integer cipher_suite: description: __Read-only__ Not applicable for `tcp` configs. example: none 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 tied to individual NodeBalancer configurations and route traffic over their private IPv4 address, IPv6 address, or VPC IPv4 address. 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: "Backend nodes can be Linodes and Linodes within a VPC. The following IP types are supported:\n - For non-VPC backend nodes, the private IPv4 address and port where this backend can be reached.\n - For non-VPC backend nodes, the public IPv6 address and port where this backend can be reached.\n - For backend nodes within a VPC, the IPv4 address and port where this backend can be reached." example: - 192.168.210.120:443 - 10.100.5.5:80 - '[2300:5800::f03c:93ff:fe6e:1264]:8080' 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 subnet_id: description: Required for VPC backend nodes only. The VPC's subnet. To display information about your VPCs and their subnets, run the [List VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs) operation. example: 1 type: integer 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 readOnly: true type: - string - 'null' 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 readOnly: true type: - string - 'null' stickiness: default: none description: '__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.' enum: - none - table 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: none 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 tied to individual NodeBalancer configurations and route traffic over their private IPv4 address, IPv6 address, or VPC IPv4 address. 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: "Backend nodes can be Linodes and Linodes within a VPC. The following IP types are supported:\n - For non-VPC backend nodes, the private IPv4 address and port where this backend can be reached.\n - For non-VPC backend nodes, the public IPv6 address and port where this backend can be reached.\n - For backend nodes within a VPC, the IPv4 address and port where this backend can be reached." example: - 192.168.210.120:443 - 10.100.5.5:80 - '[2300:5800::f03c:93ff:fe6e:1264]:8080' 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 subnet_id: description: Required for VPC backend nodes only. The VPC's subnet. To display information about your VPCs and their subnets, run the [List VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs) operation. example: 1 type: integer 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 isn't strictly enforced. You may configure your NodeBalancer however you find useful. 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 readOnly: true type: - string - 'null' 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 readOnly: true type: - string - 'null' 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. The `check` 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. The `legacy` cipher is considered insecure and should only be used if necessary. For information on recommended and legacy ciphers, see [TLS cipher suites](https://techdocs.akamai.com/cloud-computing/docs/tls-ssl-termination-on-nodebalancers#tls-cipher-suites). enum: - recommended - legacy example: recommended type: string x-linode-cli-color: default_: white legacy: red x-linode-cli-display: 7 id: description: __Read-only__ This config's unique ID. example: 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 tied to individual NodeBalancer configurations and route traffic over their private IPv4 address, IPv6 address, or VPC IPv4 address. 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: "Backend nodes can be Linodes and Linodes within a VPC. The following IP types are supported:\n - For non-VPC backend nodes, the private IPv4 address and port where this backend can be reached.\n - For non-VPC backend nodes, the public IPv6 address and port where this backend can be reached.\n - For backend nodes within a VPC, the IPv4 address and port where this backend can be reached." example: - 192.168.210.120:443 - 10.100.5.5:80 - '[2300:5800::f03c:93ff:fe6e:1264]:8080' 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 subnet_id: description: Required for VPC backend nodes only. The VPC's subnet. To display information about your VPCs and their subnets, run the [List VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs) operation. example: 1 type: integer 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://techdocs.akamai.com/cloud-computing/docs/available-protocols) for information on protocol features. The `https` protocol needs to be specified with both `ssl_cert` and `ssl_key`. 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: ' 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 type: - string - 'null' 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 NodeBalancer configuration. Please refer to the `ssl_fingerprint` field to verify that the appropriate certificate is assigned to your NodeBalancer configuration. 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 type: - string - 'null' 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.\n\nSome considerations for Nodes when rebuilding a config:\n\n - Current Nodes excluded from the request body will be deleted from the Config.\n - Current Nodes (identified by their Node ID) will be updated.\n - New Nodes (included without a Node ID) will be created." items: additionalProperties: false description: NodeBalancer node request object including ID. properties: address: description: "Backend nodes can be Linodes and Linodes within a VPC. The following IP types are supported:\n - For non-VPC backend nodes, the private IPv4 address and port where this backend can be reached.\n - For non-VPC backend nodes, the public IPv6 address and port where this backend can be reached.\n - For backend nodes within a VPC, the IPv4 address and port where this backend can be reached." example: - 192.168.210.120:443 - 10.100.5.5:80 - '[2300:5800::f03c:93ff:fe6e:1264]:8080' 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 subnet_id: description: Required for VPC backend nodes only. The VPC's subnet. To display information about your VPCs and their subnets, run the [List VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs) operation. example: 1 type: integer x-linode-cli-display: 4 weight: description: Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. example: 50 maximum: 255 minimum: 1 type: integer x-linode-cli-display: 5 type: object type: array required: - nodes type: object x-akamai: file-path: schemas/added-post-node-balancer-config.yaml x-example: x-ref: ../examples/post-node-balancer-config.json x-linode-cli-use-schema: additionalProperties: false properties: algorithm: default: roundrobin description: 'The algorithm this NodeBalancer should use to route traffic to backends. - If set to `roundrobin`, connections are allocated in a weighted circular order across the backends. - If set to `leastconn`, allocates new connections to the backend with the least connections. - If set to `source`, allocates the client''s IP to the same backend on subsequent requests. Session `stickiness` affects this algorithm.' enum: - roundrobin - leastconn - source example: roundrobin type: string x-linode-cli-display: 4 check: default: none description: 'The type of check to perform against backends to ensure they''re serving requests. This determines if backends are up or down. - If `none`, no check is performed. - If `connection`, requires a successful TCP handshake with a backend node. - If `http`, requires a 2xx or 3xx response from the backend node. - If `http_body`, requires the provided regular expression matches against the request''s result body.' enum: - none - connection - http - http_body example: http_body type: string check_attempts: default: 3 description: How many times to attempt a check before considering a backend to be down. example: 3 maximum: 30 minimum: 1 type: integer check_body: description: The check's response body needs to include this value for it to pass. Otherwise the backend is identified as being down. example: it works type: string check_interval: default: 31 description: 'How often, in seconds, to check that backends are up and serving requests. Must be greater than `check_timeout`.' example: 90 type: integer check_passive: default: true description: If `true`, any response from this backend with a `5xx` status code will be enough for it to be considered unhealthy and taken out of rotation. example: true type: boolean x-linode-cli-display: 6 check_path: description: The URL path to check on each backend. If the backend doesn't respond to this request it's considered to be down. example: /test pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ type: string check_timeout: default: 30 description: How long, in seconds, to wait for a check attempt before considering it failed. Must be less than `check_interval`. example: 10 maximum: 30 minimum: 1 type: integer cipher_suite: default: recommended description: What ciphers to use for SSL connections served by this NodeBalancer. The `legacy` cipher is considered insecure and should only be used if necessary. For information on recommended and legacy ciphers, see [TLS cipher suites](https://techdocs.akamai.com/cloud-computing/docs/tls-ssl-termination-on-nodebalancers#tls-cipher-suites). enum: - recommended - legacy example: recommended type: string x-linode-cli-color: default_: white legacy: red x-linode-cli-display: 7 id: description: __Read-only__ This config's unique ID. example: 4567 readOnly: true type: integer x-linode-cli-display: 1 nodebalancer_id: description: __Read-only__ Identifies the NodeBalancer this config belongs to. example: 12345 readOnly: true type: integer nodes_status: additionalProperties: false description: __Read-only__ Information about the health of the backends for this port. It's updated periodically as checks are performed against backends. properties: down: description: __Read-only__ The number of backends considered to be `DOWN` and unhealthy. These are not in rotation, and not serving requests. example: 0 readOnly: true type: integer up: description: __Read-only__ The number of backends considered to be `UP` and healthy, and that are serving requests. example: 4 readOnly: true type: integer readOnly: true type: object x-linode-cli-display: 10 port: default: 80 description: The port for this config. Ports need to be unique across configs for each NodeBalancer. For example, you can't have two configs for port 80. While some protocols are typically assigned specific ports, there's no enforcement, and you can configure your NodeBalancer however you find useful. For example, while port 443 is generally used for HTTPS, you don't need SSL configured to have a NodeBalancer listening on port 443. example: 80 maximum: 65535 minimum: 1 type: integer x-linode-cli-display: 2 protocol: default: http description: 'The protocol this port is configured to serve. - The `http` and `tcp` protocols don''t support `ssl_cert` and `ssl_key`. - For the `https` protocol, you need `ssl_cert` and `ssl_key`. Review our guide on [Available Protocols](https://www.linode.com/docs/products/networking/nodebalancers/guides/protocols/) for information on protocol features.' enum: - http - https - tcp example: http type: string x-linode-cli-display: 3 proxy_protocol: default: none description: 'ProxyProtocol is a TCP extension that sends initial TCP connection information such as source IPs, destination IPs, and ports to backend devices. This information would be lost otherwise. Backend devices must be configured to work with ProxyProtocol if enabled. - If omitted or set to `none`, the NodeBalancer doesn''t send any auxiliary data over TCP connections. The default is `none`. - If set to `v1`, the human-readable header format (Version 1) is used. Requires `tcp` protocol. - If set to `v2`, the binary header format (Version 2) is used. Requires `tcp` protocol.' enum: - none - v1 - v2 example: none type: string ssl_cert: description: 'The PEM-formatted public SSL certificate (or the combined PEM-formatted SSL certificate and Certificate Authority chain) that should be served on this NodeBalancer config''s port. Line breaks must be represented as `\n` in the string for API requests, but not when using the Linode CLI. You can include [Diffie-Hellman parameters](https://www.linode.com/docs/products/networking/nodebalancers/guides/ssl-termination/#diffie-hellman-parameters) in this value to enable forward secrecy. The provided field don''t appear in any responses that display the NodeBalancer config. It''s replaced with ``. The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancer config response are automatically derived from your certificate. Please refer to these fields to verify that the appropriate certificate was assigned to your config.' example: format: ssl-cert type: - string - 'null' ssl_commonname: description: __Read-only__ The read-only common name automatically derived from the SSL certificate assigned to this NodeBalancer config. Please refer to this field to verify that the appropriate certificate is assigned to your config. example: www.example.com readOnly: true type: string x-linode-cli-display: 8 ssl_fingerprint: description: __Read-only__ The read-only SHA1-encoded fingerprint automatically derived from the SSL certificate assigned to this NodeBalancer configuration. You can use the `ssl_fingerprint` field to verify that the appropriate certificate is assigned to your NodeBalancer configuration. example: 00:01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12:13 readOnly: true type: string x-linode-cli-display: 9 ssl_key: description: 'The PEM-formatted private key for the SSL certificate set in the `ssl_cert` field. Line breaks must be represented as `\n` in the string for API requests, but not when using the Linode CLI. The contents of this field will not be shown in any responses that display the NodeBalancerConfig. Instead, `` will be printed where the field appears. The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancerConfig response are automatically derived from your certificate. Please refer to these fields to verify that the appropriate certificate was assigned to your NodeBalancerConfig.' example: format: ssl-key type: - string - 'null' stickiness: default: none description: 'Controls how session stickiness is handled on this port. - If set to `none`, connections are always assigned a backend based on the algorithm configured. - If set to `table`, sessions from the same remote address are routed to the same backend. - For HTTP or HTTPS clients, `http_cookie` allows sessions to be routed to the same backend based on a cookie set by the NodeBalancer.' enum: - none - table - http_cookie example: http_cookie type: string x-linode-cli-display: 5 type: object x-akamai: file-path: schemas/node-balancer-config-cli.yaml description: NodeBalancer configuration details for the port based on the routing protocol. responses: '200': content: application/json: schema: description: NodeBalancer `config` options for each protocol. oneOf: - additionalProperties: false description: __Beta__ A NodeBalancer configuration defines the protocol and settings for a specific port on the NodeBalancer. These fields apply to UDP configurations. properties: algorithm: default: roundrobin description: The algorithm this UDP NodeBalancer uses to route traffic to backends. enum: - roundrobin - leastconn - ring_hash 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 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: This value must be present in the response body of the check in order for it to pass. If this value isn't present in the response body of a check request, the backend is considered to be down. example: it works type: string check_interval: default: 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: description: __Read-only__ Must be `false` for UDP. example: false readOnly: true type: boolean x-linode-cli-display: 7 check_path: description: The URL path to check on each backend. If the backend does not respond to this request, it's considered to be down. example: /test pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ type: string check_timeout: default: 30 description: 'How long, in seconds, to wait for a check attempt before considering it failed. Must be less than `check_interval`.' example: 10 maximum: 30 minimum: 1 type: integer cipher_suite: description: __Read-only__ Not applicable for `udp` configs. example: none 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: 7000 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__ 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: 5795 maximum: 65535 minimum: 1 type: integer x-linode-cli-display: 2 protocol: default: http description: The protocol the port is configured to serve, `udp` 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: - udp example: udp type: string x-linode-cli-display: 3 proxy_protocol: description: __Read-only__ Must be `none` for UDP. example: none readOnly: true type: string ssl_cert: description: __Read-only__ Not applicable for UDP configs. example: null readOnly: true type: - string - 'null' ssl_commonname: description: __Read-only__ Not applicable for UPD configs. example: '' readOnly: true type: string x-linode-cli-display: 8 ssl_fingerprint: description: __Read-only__ Not applicable for UDP configs. example: '' readOnly: true type: string x-linode-cli-display: 9 ssl_key: description: __Read-only__ Not applicable for UDP configs. example: null readOnly: true type: - string - 'null' stickiness: default: session description: 'Controls how session stickiness is handled on this port. - If set to `none`, connections are assigned a backend server based on the algorithm configured. - If set to `session`, all packets with the same session identifiers are routed to the same backend server. Two packets are considered part of the same session if they share the same source and destination IP addresses or ports, and are received within a short time window. - If set to `source_ip`, the NodeBalancer uses the client''s source IP address to route all packets from the same client to the same backend server.' enum: - none - session - source_ip example: none type: string x-linode-cli-display: 5 udp_check_port: default: 80 description: UDP NodeBalancers use TCP and HTTP active health checks to ensure back-end nodes can receive traffic. You can specify the health check port that the backend node listens on, which may differ from the UDP port used to serve traffic. example: 5795 maximum: 65535 minimum: 1 type: integer x-linode-cli-display: 6 udp_session_timeout: default: 16 description: __Read-only__ The maximum duration in seconds, a UDP session can be idle before it is closed. example: 2 maximum: 300 minimum: 1 readOnly: true type: integer x-linode-cli-display: 11 required: - nodes title: UDP type: object x-akamai: file-path: schemas/node-balancer-config-udp-response.yaml status: BETA - 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 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: 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 is 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's considered to be down. example: /test pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ type: string check_timeout: default: 30 description: 'How long, in seconds, to wait for a check attempt before considering it failed. Must be less than `check_interval`.' example: 10 maximum: 30 minimum: 1 type: integer cipher_suite: description: __Read-only__ Not applicable for `tcp` configs. example: none 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_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 readOnly: true type: - string - 'null' 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 readOnly: true type: - string - 'null' 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-response.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 needs to be in the response body of the check in order for it to pass. Otherwise 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: none 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_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 isn't strictly enforced. You may configure your NodeBalancer however you find useful. 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 readOnly: true type: - string - 'null' 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 readOnly: true type: - string - 'null' stickiness: default: table description: 'Controls how session stickiness is handled on this port. - If set to `none`, connections are always assigned a backend based on the algorithm configured. - If set to `table`, sessions from the same remote address are routed to the same backend. - 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-response.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. The `check` 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: 'The number of seconds between each 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. The `legacy` cipher is considered insecure and should only be used if necessary. For information on recommended and legacy ciphers, see [TLS cipher suites](https://techdocs.akamai.com/cloud-computing/docs/tls-ssl-termination-on-nodebalancers#tls-cipher-suites). enum: - recommended - legacy example: recommended type: string x-linode-cli-color: default_: white legacy: red x-linode-cli-display: 7 id: description: __Read-only__ This config's unique ID. example: 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_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://techdocs.akamai.com/cloud-computing/docs/available-protocols) for information on protocol features. The `https` protocol needs to be specified with both `ssl_cert` and `ssl_key`. 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: ' 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 type: - string - 'null' 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 NodeBalancer configuration. Please refer to the `ssl_fingerprint` field to verify that the appropriate certificate is assigned to your NodeBalancer configuration. 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 type: - string - 'null' 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-response.yaml x-akamai: file-path: schemas/node-balancer-config-response.yaml x-example: x-ref: ../examples/post-node-balancer-config-200.json x-linode-cli-use-schema: additionalProperties: false properties: algorithm: default: roundrobin description: 'The algorithm this NodeBalancer should use to route traffic to backends. - If set to `roundrobin`, connections are allocated in a weighted circular order across the backends. - If set to `leastconn`, allocates new connections to the backend with the least connections. - If set to `source`, allocates the client''s IP to the same backend on subsequent requests. Session `stickiness` affects this algorithm.' enum: - roundrobin - leastconn - source example: roundrobin type: string x-linode-cli-display: 4 check: default: none description: 'The type of check to perform against backends to ensure they''re serving requests. This determines if backends are up or down. - If `none`, no check is performed. - If `connection`, requires a successful TCP handshake with a backend node. - If `http`, requires a 2xx or 3xx response from the backend node. - If `http_body`, requires the provided regular expression matches against the request''s result body.' enum: - none - connection - http - http_body example: http_body type: string check_attempts: default: 3 description: How many times to attempt a check before considering a backend to be down. example: 3 maximum: 30 minimum: 1 type: integer check_body: description: The check's response body needs to include this value for it to pass. Otherwise the backend is identified as being down. example: it works type: string check_interval: default: 31 description: 'How often, in seconds, to check that backends are up and serving requests. Must be greater than `check_timeout`.' example: 90 type: integer check_passive: default: true description: If `true`, any response from this backend with a `5xx` status code will be enough for it to be considered unhealthy and taken out of rotation. example: true type: boolean x-linode-cli-display: 6 check_path: description: The URL path to check on each backend. If the backend doesn't respond to this request it's considered to be down. example: /test pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ type: string check_timeout: default: 30 description: How long, in seconds, to wait for a check attempt before considering it failed. Must be less than `check_interval`. example: 10 maximum: 30 minimum: 1 type: integer cipher_suite: default: recommended description: What ciphers to use for SSL connections served by this NodeBalancer. The `legacy` cipher is considered insecure and should only be used if necessary. For information on recommended and legacy ciphers, see [TLS cipher suites](https://techdocs.akamai.com/cloud-computing/docs/tls-ssl-termination-on-nodebalancers#tls-cipher-suites). enum: - recommended - legacy example: recommended type: string x-linode-cli-color: default_: white legacy: red x-linode-cli-display: 7 id: description: __Read-only__ This config's unique ID. example: 4567 readOnly: true type: integer x-linode-cli-display: 1 nodebalancer_id: description: __Read-only__ Identifies the NodeBalancer this config belongs to. example: 12345 readOnly: true type: integer nodes_status: additionalProperties: false description: __Read-only__ Information about the health of the backends for this port. It's updated periodically as checks are performed against backends. properties: down: description: __Read-only__ The number of backends considered to be `DOWN` and unhealthy. These are not in rotation, and not serving requests. example: 0 readOnly: true type: integer up: description: __Read-only__ The number of backends considered to be `UP` and healthy, and that are serving requests. example: 4 readOnly: true type: integer readOnly: true type: object x-linode-cli-display: 10 port: default: 80 description: The port for this config. Ports need to be unique across configs for each NodeBalancer. For example, you can't have two configs for port 80. While some protocols are typically assigned specific ports, there's no enforcement, and you can configure your NodeBalancer however you find useful. For example, while port 443 is generally used for HTTPS, you don't need SSL configured to have a NodeBalancer listening on port 443. example: 80 maximum: 65535 minimum: 1 type: integer x-linode-cli-display: 2 protocol: default: http description: 'The protocol this port is configured to serve. - The `http` and `tcp` protocols don''t support `ssl_cert` and `ssl_key`. - For the `https` protocol, you need `ssl_cert` and `ssl_key`. Review our guide on [Available Protocols](https://www.linode.com/docs/products/networking/nodebalancers/guides/protocols/) for information on protocol features.' enum: - http - https - tcp example: http type: string x-linode-cli-display: 3 proxy_protocol: default: none description: 'ProxyProtocol is a TCP extension that sends initial TCP connection information such as source IPs, destination IPs, and ports to backend devices. This information would be lost otherwise. Backend devices must be configured to work with ProxyProtocol if enabled. - If omitted or set to `none`, the NodeBalancer doesn''t send any auxiliary data over TCP connections. The default is `none`. - If set to `v1`, the human-readable header format (Version 1) is used. Requires `tcp` protocol. - If set to `v2`, the binary header format (Version 2) is used. Requires `tcp` protocol.' enum: - none - v1 - v2 example: none type: string ssl_cert: description: 'The PEM-formatted public SSL certificate (or the combined PEM-formatted SSL certificate and Certificate Authority chain) that should be served on this NodeBalancer config''s port. Line breaks must be represented as `\n` in the string for API requests, but not when using the Linode CLI. You can include [Diffie-Hellman parameters](https://www.linode.com/docs/products/networking/nodebalancers/guides/ssl-termination/#diffie-hellman-parameters) in this value to enable forward secrecy. The provided field don''t appear in any responses that display the NodeBalancer config. It''s replaced with ``. The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancer config response are automatically derived from your certificate. Please refer to these fields to verify that the appropriate certificate was assigned to your config.' example: format: ssl-cert type: - string - 'null' ssl_commonname: description: __Read-only__ The read-only common name automatically derived from the SSL certificate assigned to this NodeBalancer config. Please refer to this field to verify that the appropriate certificate is assigned to your config. example: www.example.com readOnly: true type: string x-linode-cli-display: 8 ssl_fingerprint: description: __Read-only__ The read-only SHA1-encoded fingerprint automatically derived from the SSL certificate assigned to this NodeBalancer configuration. You can use the `ssl_fingerprint` field to verify that the appropriate certificate is assigned to your NodeBalancer configuration. example: 00:01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12:13 readOnly: true type: string x-linode-cli-display: 9 ssl_key: description: 'The PEM-formatted private key for the SSL certificate set in the `ssl_cert` field. Line breaks must be represented as `\n` in the string for API requests, but not when using the Linode CLI. The contents of this field will not be shown in any responses that display the NodeBalancerConfig. Instead, `` will be printed where the field appears. The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancerConfig response are automatically derived from your certificate. Please refer to these fields to verify that the appropriate certificate was assigned to your NodeBalancerConfig.' example: format: ssl-key type: - string - 'null' stickiness: default: none description: 'Controls how session stickiness is handled on this port. - If set to `none`, connections are always assigned a backend based on the algorithm configured. - If set to `table`, sessions from the same remote address are routed to the same backend. - For HTTP or HTTPS clients, `http_cookie` allows sessions to be routed to the same backend based on a cookie set by the NodeBalancer.' enum: - none - table - http_cookie example: http_cookie type: string x-linode-cli-display: 5 type: object x-akamai: file-path: schemas/node-balancer-config-cli.yaml description: Config 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 config tags: - Configurations x-akamai: tabs: - syntax: "linode-cli nodebalancers config-create 12345 \\\n --port 443 \\\n --protocol https \\\n --algorithm roundrobin \\\n --stickiness http_cookie \\\n --check http_body \\\n --check_interval 90 \\\n --check_timeout 10 \\\n --check_attempts 3 \\\n --check_path \"/test\" \\\n --check_body \"it works\" \\\n --check_passive true \\\n --proxy_protocol \"none\" \\\n --ssl_cert \"-----BEGIN CERTIFICATE-----\n CERTIFICATE_INFORMATION\n -----END CERTIFICATE-----\" \\\n --ssl_key \"-----BEGIN PRIVATE KEY-----\n PRIVATE_KEY_INFORMATION\n -----END PRIVATE KEY-----\" \\\n --cipher_suite recommended" title: 'CLI: HTTPS' url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli - syntax: "linode-cli nodebalancers config-create 12345 \\\n --port 80 \\\n --protocol udp \\\n --algorithm ring_hash \\\n --stickiness session \\\n --check http_body \\\n --check_interval 90 \\\n --check_timeout 10 \\\n --check_attempts 3 \\\n --check_path \"/test\" \\\n --check_body \"it works\" \\\n --udp_check_port 80" title: 'CLI: UDP' url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli - syntax: "linode-cli nodebalancers config-create 12345 \\\n --port 80 \\\n --protocol tcp \\\n --algorithm roundrobin \\\n --stickiness none \\\n --check http_body \\\n --check_interval 90 \\\n --check_timeout 10 \\\n --check_attempts 3 \\\n --check_path \"/test\" \\\n --check_body \"it works\" \\\n --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 \\\n --port 440 \\\n --protocol http \\\n --algorithm roundrobin \\\n --stickiness http_cookie \\\n --check http_body \\\n --check_interval 90 \\\n --check_timeout 10 \\\n --check_attempts 3 \\\n --check_path \"/test\" \\\n --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-create x-linode-grant: read_write get: description: 'Returns a paginated list of NodeBalancer Configs associated with this NodeBalancer. NodeBalancer Configs represent individual ports that this NodeBalancer will accept traffic on, one Config per port. For example, if you wanted to accept standard HTTP traffic, you would need a Config listening on port 80. > --- - __CLI__. ``` linode-cli nodebalancers configs-list 12345 ``` Learn more... - __OAuth scopes__. ``` nodebalancers:read_only ``` Learn more...' externalDocs: description: See documentation for this operation in Akamai's Linode API url: https://techdocs.akamai.com/linode-api/reference/get-node-balancer-configs operationId: get-node-balancer-configs parameters: - description: The page of a collection to return. example: '{{page}}' 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. example: '{{page_size}}' 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: description: NodeBalancer `config` options for each protocol. oneOf: - additionalProperties: false description: __Beta__ A NodeBalancer configuration defines the protocol and settings for a specific port on the NodeBalancer. These fields apply to UDP configurations. properties: algorithm: default: roundrobin description: The algorithm this UDP NodeBalancer uses to route traffic to backends. enum: - roundrobin - leastconn - ring_hash 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 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: This value must be present in the response body of the check in order for it to pass. If this value isn't present in the response body of a check request, the backend is considered to be down. example: it works type: string check_interval: default: 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: description: __Read-only__ Must be `false` for UDP. example: false readOnly: true type: boolean x-linode-cli-display: 7 check_path: description: The URL path to check on each backend. If the backend does not respond to this request, it's considered to be down. example: /test pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ type: string check_timeout: default: 30 description: 'How long, in seconds, to wait for a check attempt before considering it failed. Must be less than `check_interval`.' example: 10 maximum: 30 minimum: 1 type: integer cipher_suite: description: __Read-only__ Not applicable for `udp` configs. example: none 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: 7000 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__ 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: 5795 maximum: 65535 minimum: 1 type: integer x-linode-cli-display: 2 protocol: default: http description: The protocol the port is configured to serve, `udp` 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: - udp example: udp type: string x-linode-cli-display: 3 proxy_protocol: description: __Read-only__ Must be `none` for UDP. example: none readOnly: true type: string ssl_cert: description: __Read-only__ Not applicable for UDP configs. example: null readOnly: true type: - string - 'null' ssl_commonname: description: __Read-only__ Not applicable for UPD configs. example: '' readOnly: true type: string x-linode-cli-display: 8 ssl_fingerprint: description: __Read-only__ Not applicable for UDP configs. example: '' readOnly: true type: string x-linode-cli-display: 9 ssl_key: description: __Read-only__ Not applicable for UDP configs. example: null readOnly: true type: - string - 'null' stickiness: default: session description: 'Controls how session stickiness is handled on this port. - If set to `none`, connections are assigned a backend server based on the algorithm configured. - If set to `session`, all packets with the same session identifiers are routed to the same backend server. Two packets are considered part of the same session if they share the same source and destination IP addresses or ports, and are received within a short time window. - If set to `source_ip`, the NodeBalancer uses the client''s source IP address to route all packets from the same client to the same backend server.' enum: - none - session - source_ip example: none type: string x-linode-cli-display: 5 udp_check_port: default: 80 description: UDP NodeBalancers use TCP and HTTP active health checks to ensure back-end nodes can receive traffic. You can specify the health check port that the backend node listens on, which may differ from the UDP port used to serve traffic. example: 5795 maximum: 65535 minimum: 1 type: integer x-linode-cli-display: 6 udp_session_timeout: default: 16 description: __Read-only__ The maximum duration in seconds, a UDP session can be idle before it is closed. example: 2 maximum: 300 minimum: 1 readOnly: true type: integer x-linode-cli-display: 11 required: - nodes title: UDP type: object x-akamai: file-path: schemas/node-balancer-config-udp-response.yaml status: BETA - 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 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: 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 is 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's considered to be down. example: /test pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ type: string check_timeout: default: 30 description: 'How long, in seconds, to wait for a check attempt before considering it failed. Must be less than `check_interval`.' example: 10 maximum: 30 minimum: 1 type: integer cipher_suite: description: __Read-only__ Not applicable for `tcp` configs. example: none 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_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 readOnly: true type: - string - 'null' 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 readOnly: true type: - string - 'null' 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-response.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 needs to be in the response body of the check in order for it to pass. Otherwise 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: none 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_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 isn't strictly enforced. You may configure your NodeBalancer however you find useful. 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 readOnly: true type: - string - 'null' 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 readOnly: true type: - string - 'null' stickiness: default: table description: 'Controls how session stickiness is handled on this port. - If set to `none`, connections are always assigned a backend based on the algorithm configured. - If set to `table`, sessions from the same remote address are routed to the same backend. - 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-response.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. The `check` 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: 'The number of seconds between each 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. The `legacy` cipher is considered insecure and should only be used if necessary. For information on recommended and legacy ciphers, see [TLS cipher suites](https://techdocs.akamai.com/cloud-computing/docs/tls-ssl-termination-on-nodebalancers#tls-cipher-suites). enum: - recommended - legacy example: recommended type: string x-linode-cli-color: default_: white legacy: red x-linode-cli-display: 7 id: description: __Read-only__ This config's unique ID. example: 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_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://techdocs.akamai.com/cloud-computing/docs/available-protocols) for information on protocol features. The `https` protocol needs to be specified with both `ssl_cert` and `ssl_key`. 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: ' 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 type: - string - 'null' 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 NodeBalancer configuration. Please refer to the `ssl_fingerprint` field to verify that the appropriate certificate is assigned to your NodeBalancer configuration. 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 type: - string - 'null' 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-response.yaml x-akamai: file-path: schemas/node-balancer-config-response.yaml x-example: x-ref: ../examples/get-node-balancer-configs-200.json x-linode-cli-use-schema: additionalProperties: false properties: algorithm: default: roundrobin description: 'The algorithm this NodeBalancer should use to route traffic to backends. - If set to `roundrobin`, connections are allocated in a weighted circular order across the backends. - If set to `leastconn`, allocates new connections to the backend with the least connections. - If set to `source`, allocates the client''s IP to the same backend on subsequent requests. Session `stickiness` affects this algorithm.' enum: - roundrobin - leastconn - source example: roundrobin type: string x-linode-cli-display: 4 check: default: none description: 'The type of check to perform against backends to ensure they''re serving requests. This determines if backends are up or down. - If `none`, no check is performed. - If `connection`, requires a successful TCP handshake with a backend node. - If `http`, requires a 2xx or 3xx response from the backend node. - If `http_body`, requires the provided regular expression matches against the request''s result body.' enum: - none - connection - http - http_body example: http_body type: string check_attempts: default: 3 description: How many times to attempt a check before considering a backend to be down. example: 3 maximum: 30 minimum: 1 type: integer check_body: description: The check's response body needs to include this value for it to pass. Otherwise the backend is identified as being down. example: it works type: string check_interval: default: 31 description: 'How often, in seconds, to check that backends are up and serving requests. Must be greater than `check_timeout`.' example: 90 type: integer check_passive: default: true description: If `true`, any response from this backend with a `5xx` status code will be enough for it to be considered unhealthy and taken out of rotation. example: true type: boolean x-linode-cli-display: 6 check_path: description: The URL path to check on each backend. If the backend doesn't respond to this request it's considered to be down. example: /test pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ type: string check_timeout: default: 30 description: How long, in seconds, to wait for a check attempt before considering it failed. Must be less than `check_interval`. example: 10 maximum: 30 minimum: 1 type: integer cipher_suite: default: recommended description: What ciphers to use for SSL connections served by this NodeBalancer. The `legacy` cipher is considered insecure and should only be used if necessary. For information on recommended and legacy ciphers, see [TLS cipher suites](https://techdocs.akamai.com/cloud-computing/docs/tls-ssl-termination-on-nodebalancers#tls-cipher-suites). enum: - recommended - legacy example: recommended type: string x-linode-cli-color: default_: white legacy: red x-linode-cli-display: 7 id: description: __Read-only__ This config's unique ID. example: 4567 readOnly: true type: integer x-linode-cli-display: 1 nodebalancer_id: description: __Read-only__ Identifies the NodeBalancer this config belongs to. example: 12345 readOnly: true type: integer nodes_status: additionalProperties: false description: __Read-only__ Information about the health of the backends for this port. It's updated periodically as checks are performed against backends. properties: down: description: __Read-only__ The number of backends considered to be `DOWN` and unhealthy. These are not in rotation, and not serving requests. example: 0 readOnly: true type: integer up: description: __Read-only__ The number of backends considered to be `UP` and healthy, and that are serving requests. example: 4 readOnly: true type: integer readOnly: true type: object x-linode-cli-display: 10 port: default: 80 description: The port for this config. Ports need to be unique across configs for each NodeBalancer. For example, you can't have two configs for port 80. While some protocols are typically assigned specific ports, there's no enforcement, and you can configure your NodeBalancer however you find useful. For example, while port 443 is generally used for HTTPS, you don't need SSL configured to have a NodeBalancer listening on port 443. example: 80 maximum: 65535 minimum: 1 type: integer x-linode-cli-display: 2 protocol: default: http description: 'The protocol this port is configured to serve. - The `http` and `tcp` protocols don''t support `ssl_cert` and `ssl_key`. - For the `https` protocol, you need `ssl_cert` and `ssl_key`. Review our guide on [Available Protocols](https://www.linode.com/docs/products/networking/nodebalancers/guides/protocols/) for information on protocol features.' enum: - http - https - tcp example: http type: string x-linode-cli-display: 3 proxy_protocol: default: none description: 'ProxyProtocol is a TCP extension that sends initial TCP connection information such as source IPs, destination IPs, and ports to backend devices. This information would be lost otherwise. Backend devices must be configured to work with ProxyProtocol if enabled. - If omitted or set to `none`, the NodeBalancer doesn''t send any auxiliary data over TCP connections. The default is `none`. - If set to `v1`, the human-readable header format (Version 1) is used. Requires `tcp` protocol. - If set to `v2`, the binary header format (Version 2) is used. Requires `tcp` protocol.' enum: - none - v1 - v2 example: none type: string ssl_cert: description: 'The PEM-formatted public SSL certificate (or the combined PEM-formatted SSL certificate and Certificate Authority chain) that should be served on this NodeBalancer config''s port. Line breaks must be represented as `\n` in the string for API requests, but not when using the Linode CLI. You can include [Diffie-Hellman parameters](https://www.linode.com/docs/products/networking/nodebalancers/guides/ssl-termination/#diffie-hellman-parameters) in this value to enable forward secrecy. The provided field don''t appear in any responses that display the NodeBalancer config. It''s replaced with ``. The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancer config response are automatically derived from your certificate. Please refer to these fields to verify that the appropriate certificate was assigned to your config.' example: format: ssl-cert type: - string - 'null' ssl_commonname: description: __Read-only__ The read-only common name automatically derived from the SSL certificate assigned to this NodeBalancer config. Please refer to this field to verify that the appropriate certificate is assigned to your config. example: www.example.com readOnly: true type: string x-linode-cli-display: 8 ssl_fingerprint: description: __Read-only__ The read-only SHA1-encoded fingerprint automatically derived from the SSL certificate assigned to this NodeBalancer configuration. You can use the `ssl_fingerprint` field to verify that the appropriate certificate is assigned to your NodeBalancer configuration. example: 00:01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12:13 readOnly: true type: string x-linode-cli-display: 9 ssl_key: description: 'The PEM-formatted private key for the SSL certificate set in the `ssl_cert` field. Line breaks must be represented as `\n` in the string for API requests, but not when using the Linode CLI. The contents of this field will not be shown in any responses that display the NodeBalancerConfig. Instead, `` will be printed where the field appears. The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancerConfig response are automatically derived from your certificate. Please refer to these fields to verify that the appropriate certificate was assigned to your NodeBalancerConfig.' example: format: ssl-key type: - string - 'null' stickiness: default: none description: 'Controls how session stickiness is handled on this port. - If set to `none`, connections are always assigned a backend based on the algorithm configured. - If set to `table`, sessions from the same remote address are routed to the same backend. - For HTTP or HTTPS clients, `http_cookie` allows sessions to be routed to the same backend based on a cookie set by the NodeBalancer.' enum: - none - table - http_cookie example: http_cookie type: string x-linode-cli-display: 5 type: object x-akamai: file-path: schemas/node-balancer-config-cli.yaml description: A paginated list of NodeBalancer Configs. 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 configs tags: - Configurations x-akamai: tabs: - syntax: linode-cli nodebalancers configs-list 12345 title: CLI url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli - syntax: nodebalancers:read_only title: OAuth scopes url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth x-linode-cli-action: configs-list x-linode-grant: read_only /{apiVersion}/nodebalancers/{nodeBalancerId}/configs/{configId}: parameters: - description: __Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta. example: '{{apiVersion}}' 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. example: '{{nodeBalancerId}}' 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. example: '{{configId}}' in: path name: configId required: true schema: example: 521 type: integer x-akamai: file-path: parameters/config-id.yaml x-akamai: file-path: paths/node-balancer-config.yaml path-info: /{apiVersion}/nodebalancers/{nodeBalancerId}/configs/{configId} x-linode-cli-command: nodebalancers get: description: 'Returns configuration information for a single port of this NodeBalancer. > --- - __CLI__. ``` linode-cli nodebalancers config-view \ 12345 4567 ``` Learn more... - __OAuth scopes__. ``` nodebalancers:read_only ``` Learn more...' 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: description: NodeBalancer `config` options for each protocol. oneOf: - additionalProperties: false description: __Beta__ A NodeBalancer configuration defines the protocol and settings for a specific port on the NodeBalancer. These fields apply to UDP configurations. properties: algorithm: default: roundrobin description: The algorithm this UDP NodeBalancer uses to route traffic to backends. enum: - roundrobin - leastconn - ring_hash 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 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: This value must be present in the response body of the check in order for it to pass. If this value isn't present in the response body of a check request, the backend is considered to be down. example: it works type: string check_interval: default: 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: description: __Read-only__ Must be `false` for UDP. example: false readOnly: true type: boolean x-linode-cli-display: 7 check_path: description: The URL path to check on each backend. If the backend does not respond to this request, it's considered to be down. example: /test pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ type: string check_timeout: default: 30 description: 'How long, in seconds, to wait for a check attempt before considering it failed. Must be less than `check_interval`.' example: 10 maximum: 30 minimum: 1 type: integer cipher_suite: description: __Read-only__ Not applicable for `udp` configs. example: none 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: 7000 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__ 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: 5795 maximum: 65535 minimum: 1 type: integer x-linode-cli-display: 2 protocol: default: http description: The protocol the port is configured to serve, `udp` 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: - udp example: udp type: string x-linode-cli-display: 3 proxy_protocol: description: __Read-only__ Must be `none` for UDP. example: none readOnly: true type: string ssl_cert: description: __Read-only__ Not applicable for UDP configs. example: null readOnly: true type: - string - 'null' ssl_commonname: description: __Read-only__ Not applicable for UPD configs. example: '' readOnly: true type: string x-linode-cli-display: 8 ssl_fingerprint: description: __Read-only__ Not applicable for UDP configs. example: '' readOnly: true type: string x-linode-cli-display: 9 ssl_key: description: __Read-only__ Not applicable for UDP configs. example: null readOnly: true type: - string - 'null' stickiness: default: session description: 'Controls how session stickiness is handled on this port. - If set to `none`, connections are assigned a backend server based on the algorithm configured. - If set to `session`, all packets with the same session identifiers are routed to the same backend server. Two packets are considered part of the same session if they share the same source and destination IP addresses or ports, and are received within a short time window. - If set to `source_ip`, the NodeBalancer uses the client''s source IP address to route all packets from the same client to the same backend server.' enum: - none - session - source_ip example: none type: string x-linode-cli-display: 5 udp_check_port: default: 80 description: UDP NodeBalancers use TCP and HTTP active health checks to ensure back-end nodes can receive traffic. You can specify the health check port that the backend node listens on, which may differ from the UDP port used to serve traffic. example: 5795 maximum: 65535 minimum: 1 type: integer x-linode-cli-display: 6 udp_session_timeout: default: 16 description: __Read-only__ The maximum duration in seconds, a UDP session can be idle before it is closed. example: 2 maximum: 300 minimum: 1 readOnly: true type: integer x-linode-cli-display: 11 required: - nodes title: UDP type: object x-akamai: file-path: schemas/node-balancer-config-udp-response.yaml status: BETA - 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 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: 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 is 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's considered to be down. example: /test pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ type: string check_timeout: default: 30 description: 'How long, in seconds, to wait for a check attempt before considering it failed. Must be less than `check_interval`.' example: 10 maximum: 30 minimum: 1 type: integer cipher_suite: description: __Read-only__ Not applicable for `tcp` configs. example: none 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_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 readOnly: true type: - string - 'null' 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 readOnly: true type: - string - 'null' 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-response.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 needs to be in the response body of the check in order for it to pass. Otherwise 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: none 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_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 isn't strictly enforced. You may configure your NodeBalancer however you find useful. 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 readOnly: true type: - string - 'null' 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 readOnly: true type: - string - 'null' stickiness: default: table description: 'Controls how session stickiness is handled on this port. - If set to `none`, connections are always assigned a backend based on the algorithm configured. - If set to `table`, sessions from the same remote address are routed to the same backend. - 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-response.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. The `check` 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: 'The number of seconds between each 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. The `legacy` cipher is considered insecure and should only be used if necessary. For information on recommended and legacy ciphers, see [TLS cipher suites](https://techdocs.akamai.com/cloud-computing/docs/tls-ssl-termination-on-nodebalancers#tls-cipher-suites). enum: - recommended - legacy example: recommended type: string x-linode-cli-color: default_: white legacy: red x-linode-cli-display: 7 id: description: __Read-only__ This config's unique ID. example: 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_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://techdocs.akamai.com/cloud-computing/docs/available-protocols) for information on protocol features. The `https` protocol needs to be specified with both `ssl_cert` and `ssl_key`. 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: ' 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 type: - string - 'null' 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 NodeBalancer configuration. Please refer to the `ssl_fingerprint` field to verify that the appropriate certificate is assigned to your NodeBalancer configuration. 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 type: - string - 'null' 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-response.yaml x-akamai: file-path: schemas/node-balancer-config-response.yaml x-example: x-ref: ../examples/get-node-balancer-config-200.json x-linode-cli-use-schema: additionalProperties: false properties: algorithm: default: roundrobin description: 'The algorithm this NodeBalancer should use to route traffic to backends. - If set to `roundrobin`, connections are allocated in a weighted circular order across the backends. - If set to `leastconn`, allocates new connections to the backend with the least connections. - If set to `source`, allocates the client''s IP to the same backend on subsequent requests. Session `stickiness` affects this algorithm.' enum: - roundrobin - leastconn - source example: roundrobin type: string x-linode-cli-display: 4 check: default: none description: 'The type of check to perform against backends to ensure they''re serving requests. This determines if backends are up or down. - If `none`, no check is performed. - If `connection`, requires a successful TCP handshake with a backend node. - If `http`, requires a 2xx or 3xx response from the backend node. - If `http_body`, requires the provided regular expression matches against the request''s result body.' enum: - none - connection - http - http_body example: http_body type: string check_attempts: default: 3 description: How many times to attempt a check before considering a backend to be down. example: 3 maximum: 30 minimum: 1 type: integer check_body: description: The check's response body needs to include this value for it to pass. Otherwise the backend is identified as being down. example: it works type: string check_interval: default: 31 description: 'How often, in seconds, to check that backends are up and serving requests. Must be greater than `check_timeout`.' example: 90 type: integer check_passive: default: true description: If `true`, any response from this backend with a `5xx` status code will be enough for it to be considered unhealthy and taken out of rotation. example: true type: boolean x-linode-cli-display: 6 check_path: description: The URL path to check on each backend. If the backend doesn't respond to this request it's considered to be down. example: /test pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ type: string check_timeout: default: 30 description: How long, in seconds, to wait for a check attempt before considering it failed. Must be less than `check_interval`. example: 10 maximum: 30 minimum: 1 type: integer cipher_suite: default: recommended description: What ciphers to use for SSL connections served by this NodeBalancer. The `legacy` cipher is considered insecure and should only be used if necessary. For information on recommended and legacy ciphers, see [TLS cipher suites](https://techdocs.akamai.com/cloud-computing/docs/tls-ssl-termination-on-nodebalancers#tls-cipher-suites). enum: - recommended - legacy example: recommended type: string x-linode-cli-color: default_: white legacy: red x-linode-cli-display: 7 id: description: __Read-only__ This config's unique ID. example: 4567 readOnly: true type: integer x-linode-cli-display: 1 nodebalancer_id: description: __Read-only__ Identifies the NodeBalancer this config belongs to. example: 12345 readOnly: true type: integer nodes_status: additionalProperties: false description: __Read-only__ Information about the health of the backends for this port. It's updated periodically as checks are performed against backends. properties: down: description: __Read-only__ The number of backends considered to be `DOWN` and unhealthy. These are not in rotation, and not serving requests. example: 0 readOnly: true type: integer up: description: __Read-only__ The number of backends considered to be `UP` and healthy, and that are serving requests. example: 4 readOnly: true type: integer readOnly: true type: object x-linode-cli-display: 10 port: default: 80 description: The port for this config. Ports need to be unique across configs for each NodeBalancer. For example, you can't have two configs for port 80. While some protocols are typically assigned specific ports, there's no enforcement, and you can configure your NodeBalancer however you find useful. For example, while port 443 is generally used for HTTPS, you don't need SSL configured to have a NodeBalancer listening on port 443. example: 80 maximum: 65535 minimum: 1 type: integer x-linode-cli-display: 2 protocol: default: http description: 'The protocol this port is configured to serve. - The `http` and `tcp` protocols don''t support `ssl_cert` and `ssl_key`. - For the `https` protocol, you need `ssl_cert` and `ssl_key`. Review our guide on [Available Protocols](https://www.linode.com/docs/products/networking/nodebalancers/guides/protocols/) for information on protocol features.' enum: - http - https - tcp example: http type: string x-linode-cli-display: 3 proxy_protocol: default: none description: 'ProxyProtocol is a TCP extension that sends initial TCP connection information such as source IPs, destination IPs, and ports to backend devices. This information would be lost otherwise. Backend devices must be configured to work with ProxyProtocol if enabled. - If omitted or set to `none`, the NodeBalancer doesn''t send any auxiliary data over TCP connections. The default is `none`. - If set to `v1`, the human-readable header format (Version 1) is used. Requires `tcp` protocol. - If set to `v2`, the binary header format (Version 2) is used. Requires `tcp` protocol.' enum: - none - v1 - v2 example: none type: string ssl_cert: description: 'The PEM-formatted public SSL certificate (or the combined PEM-formatted SSL certificate and Certificate Authority chain) that should be served on this NodeBalancer config''s port. Line breaks must be represented as `\n` in the string for API requests, but not when using the Linode CLI. You can include [Diffie-Hellman parameters](https://www.linode.com/docs/products/networking/nodebalancers/guides/ssl-termination/#diffie-hellman-parameters) in this value to enable forward secrecy. The provided field don''t appear in any responses that display the NodeBalancer config. It''s replaced with ``. The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancer config response are automatically derived from your certificate. Please refer to these fields to verify that the appropriate certificate was assigned to your config.' example: format: ssl-cert type: - string - 'null' ssl_commonname: description: __Read-only__ The read-only common name automatically derived from the SSL certificate assigned to this NodeBalancer config. Please refer to this field to verify that the appropriate certificate is assigned to your config. example: www.example.com readOnly: true type: string x-linode-cli-display: 8 ssl_fingerprint: description: __Read-only__ The read-only SHA1-encoded fingerprint automatically derived from the SSL certificate assigned to this NodeBalancer configuration. You can use the `ssl_fingerprint` field to verify that the appropriate certificate is assigned to your NodeBalancer configuration. example: 00:01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12:13 readOnly: true type: string x-linode-cli-display: 9 ssl_key: description: 'The PEM-formatted private key for the SSL certificate set in the `ssl_cert` field. Line breaks must be represented as `\n` in the string for API requests, but not when using the Linode CLI. The contents of this field will not be shown in any responses that display the NodeBalancerConfig. Instead, `` will be printed where the field appears. The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancerConfig response are automatically derived from your certificate. Please refer to these fields to verify that the appropriate certificate was assigned to your NodeBalancerConfig.' example: format: ssl-key type: - string - 'null' stickiness: default: none description: 'Controls how session stickiness is handled on this port. - If set to `none`, connections are always assigned a backend based on the algorithm configured. - If set to `table`, sessions from the same remote address are routed to the same backend. - For HTTP or HTTPS clients, `http_cookie` allows sessions to be routed to the same backend based on a cookie set by the NodeBalancer.' enum: - none - table - http_cookie example: http_cookie type: string x-linode-cli-display: 5 type: object x-akamai: file-path: schemas/node-balancer-config-cli.yaml description: The requested NodeBalancer config. 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: Get a config tags: - Configurations x-akamai: tabs: - syntax: "linode-cli nodebalancers config-view \\\n 12345 4567" title: CLI url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli - syntax: nodebalancers:read_only title: OAuth scopes url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth x-linode-cli-action: config-view x-linode-grant: read_only put: description: 'Updates the configuration for a single port on a NodeBalancer. > 🚧 > > You can configure UDP on the same NodeBalancer that also uses TCP, HTTP, or HTTPS, but only when managing it through the API. If UDP is configured and you make changes to the TCP, HTTP or HTTPS settings in Cloud Manager, the existing UDP configuration will be overwritten. This is because Cloud Manager doesn''t currently support UDP. > --- - __CLI: HTTPS__. ``` linode-cli nodebalancers config-update \ 12345 4567 \ --port 443 \ --protocol https \ --algorithm roundrobin \ --stickiness http_cookie \ --check http_body \ --check_interval 90 \ --check_timeout 10 \ --check_attempts 3 \ --check_path "/test" \ --check_body "it works" \ --check_passive true \ --proxy_protocol "none" \ --ssl_cert "-----BEGIN CERTIFICATE----- CERTIFICATE_INFORMATION -----END CERTIFICATE-----" \ --ssl_key "-----BEGIN PRIVATE KEY----- PRIVATE_KEY_INFORMATION -----END PRIVATE KEY-----" \ --cipher_suite recommended ``` Learn more... - __CLI: UDP__. ``` linode-cli nodebalancers config-update \ 12345 4567 \ --port 80 \ --protocol udp \ --algorithm ring_hash \ --stickiness session \ --check http_body \ --check_interval 90 \ --check_timeout 10 \ --check_attempts 3 \ --check_path "/test" \ --check_body "it works" \ --udp_check_port 80 ``` Learn more... - __CLI: TCP__. ``` linode-cli nodebalancers config-update \ 12345 4567 \ --port 80 \ --protocol tcp \ --algorithm roundrobin \ --stickiness none \ --stickiness http_cookie \ --check http_body \ --check_interval 90 \ --check_timeout 10 \ --check_attempts 3 \ --check_path "/test" \ --check_body "it works" \ --proxy_protocol "v2" ``` Learn more... - __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... - __OAuth scopes__. ``` nodebalancers:read_write ``` Learn more...' externalDocs: description: See documentation for this operation in Akamai's Linode API url: https://techdocs.akamai.com/linode-api/reference/put-node-balancer-config operationId: put-node-balancer-config requestBody: content: application/json: schema: description: NodeBalancer `config` options for each protocol. oneOf: - additionalProperties: false description: __Beta__ A NodeBalancer configuration defines the protocol and settings for a specific port on the NodeBalancer. These fields apply to UDP configurations. properties: algorithm: default: roundrobin description: The algorithm this UDP NodeBalancer uses to route traffic to backends. enum: - roundrobin - leastconn - ring_hash example: leastconn type: string x-linode-cli-display: 4 check: default: none description: 'The type of check to perform against backends to ensure they''re serving requests. This determines if backends are up or down. - If `none`, no check is performed. - `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 check's response body for it to pass. Otherwise the backend is considered to be down. example: it works type: string check_interval: default: 5 description: 'Number of seconds between checks to verify that backends are up and serving requests. Must be greater than `check_timeout`.' example: 90 maximum: 3600 minimum: 2 type: integer check_passive: description: __Read-only__ Must be `false` for UDP. example: false readOnly: true type: boolean x-linode-cli-display: 8 check_path: description: The URL path to check on each backend. If the backend does not respond to this request, it's considered to be down. example: /test pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ type: string check_timeout: default: 30 description: 'Number of 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 UDP configs. example: none 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: 7000 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__ 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 aren't in rotation, and aren't serving requests. example: 0 readOnly: true type: integer up: description: __Read-only__ The number of backends considered to be `UP` and healthy, currently serving requests. example: 4 readOnly: true type: integer readOnly: true type: object x-linode-cli-display: 11 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 assigned specific protocols, this isn't strictly enforced, and you may configure your NodeBalancer however you find useful. example: 5795 maximum: 65535 minimum: 1 type: integer x-linode-cli-display: 2 protocol: default: http description: 'The protocol the port is configured to serve, `udp` 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: - udp example: udp type: string x-linode-cli-display: 3 proxy_protocol: description: __Read-only__ Must be `none` for UDP. example: none readOnly: true type: string ssl_cert: description: __Read-only__ Not applicable for UDP configs. example: null readOnly: true type: - string - 'null' ssl_commonname: description: __Read-only__ Not applicable for UPD configs. example: '' readOnly: true type: string x-linode-cli-display: 9 ssl_fingerprint: description: __Read-only__ Not applicable for UDP configs. example: '' readOnly: true type: string x-linode-cli-display: 10 ssl_key: description: __Read-only__ Not applicable for UDP configs. example: null readOnly: true type: - string - 'null' stickiness: default: session description: 'Controls how session stickiness is handled on this port: - If set to `none`, connections are assigned a back-end server based on the algorithm configured. - If set to `session`, all packets with the same session identifiers are routed to the same backend server. Two packets are considered part of the same session if they share the same source and destination IP addresses or ports, and are received within a short time window. - If set to `source_ip`, the NodeBalancer uses the client''s source IP address to route all packets from the same client to the same backend server.' enum: - none - session - source_ip example: none type: string x-linode-cli-display: 5 udp_check_port: default: 80 description: UDP NodeBalancers use TCP and HTTP active health checks to ensure back-end nodes can receive traffic. You can specify the health check port that the backend node listens on, which may differ from the UDP port used to serve traffic. example: 5795 maximum: 65535 minimum: 1 type: integer x-linode-cli-display: 6 udp_session_timeout: default: 16 description: __Read-only__ The maximum number of seconds a UDP session can be idle before it's closed. example: 2 maximum: 300 minimum: 1 readOnly: true type: integer x-linode-cli-display: 12 title: UDP type: object x-akamai: file-path: schemas/config-udp.yaml status: BETA - 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. The `check` is used to determine if backends are up or down. - Setting this to `none` skips the check. - `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: 'Number of seconds between checks to verify 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: 'Number of 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 TCP configs. example: none 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_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 aren't in rotation, and aren't serving requests. example: 0 readOnly: true type: integer up: description: __Read-only__ The number of backends considered to be `UP` and healthy, currently 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 assigned 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 readOnly: true type: - string - 'null' 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 readOnly: true type: - string - 'null' stickiness: default: none description: '__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.' enum: - none - table example: none readOnly: true type: string x-linode-cli-display: 5 title: TCP type: object x-akamai: file-path: schemas/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''re 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: 'Number of seconds between checks to verify 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: 'Number of 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_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 aren't in rotation, and aren't serving requests. example: 0 readOnly: true type: integer up: description: __Read-only__ The number of backends considered to be `UP` and healthy, currently 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 assigned specific protocols, this isn't strictly enforced. You may configure your NodeBalancer however you find useful. 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 readOnly: true type: - string - 'null' 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 readOnly: true type: - string - 'null' 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 title: HTTP type: object x-akamai: file-path: schemas/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. The `check` is used to determine if backends are up or down. - Setting this to `none` skips the check. - `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: 'Number of seconds between checks to verify 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: 'Number of 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_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 aren't in rotation, and aren't serving requests. example: 0 readOnly: true type: integer up: description: __Read-only__ The number of backends considered to be `UP` and healthy, currently 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 assigned 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: '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 type: - string - 'null' 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 NodeBalancer configuration. Please refer to the `ssl_fingerprint` field to verify that the appropriate certificate is assigned to your NodeBalancer configuration. 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 type: - string - 'null' 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 title: HTTPS type: object x-akamai: file-path: schemas/config-https.yaml type: object x-akamai: file-path: schemas/config-protocol.yaml x-example: x-ref: ../examples/put-node-balancer-config.json x-linode-cli-use-schema: additionalProperties: false properties: algorithm: default: roundrobin description: 'The algorithm this NodeBalancer should use to route traffic to backends. - If set to `roundrobin`, connections are allocated in a weighted circular order across the backends. - If set to `leastconn`, allocates new connections to the backend with the least connections. - If set to `source`, allocates the client''s IP to the same backend on subsequent requests. Session `stickiness` affects this algorithm.' enum: - roundrobin - leastconn - source example: roundrobin type: string x-linode-cli-display: 4 check: default: none description: 'The type of check to perform against backends to ensure they''re serving requests. This determines if backends are up or down. - If `none`, no check is performed. - If `connection`, requires a successful TCP handshake with a backend node. - If `http`, requires a 2xx or 3xx response from the backend node. - If `http_body`, requires the provided regular expression matches against the request''s result body.' enum: - none - connection - http - http_body example: http_body type: string check_attempts: default: 3 description: How many times to attempt a check before considering a backend to be down. example: 3 maximum: 30 minimum: 1 type: integer check_body: description: The check's response body needs to include this value for it to pass. Otherwise the backend is identified as being down. example: it works type: string check_interval: default: 31 description: 'How often, in seconds, to check that backends are up and serving requests. Must be greater than `check_timeout`.' example: 90 type: integer check_passive: default: true description: If `true`, any response from this backend with a `5xx` status code will be enough for it to be considered unhealthy and taken out of rotation. example: true type: boolean x-linode-cli-display: 6 check_path: description: The URL path to check on each backend. If the backend doesn't respond to this request it's considered to be down. example: /test pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ type: string check_timeout: default: 30 description: How long, in seconds, to wait for a check attempt before considering it failed. Must be less than `check_interval`. example: 10 maximum: 30 minimum: 1 type: integer cipher_suite: default: recommended description: What ciphers to use for SSL connections served by this NodeBalancer. The `legacy` cipher is considered insecure and should only be used if necessary. For information on recommended and legacy ciphers, see [TLS cipher suites](https://techdocs.akamai.com/cloud-computing/docs/tls-ssl-termination-on-nodebalancers#tls-cipher-suites). enum: - recommended - legacy example: recommended type: string x-linode-cli-color: default_: white legacy: red x-linode-cli-display: 7 id: description: __Read-only__ This config's unique ID. example: 4567 readOnly: true type: integer x-linode-cli-display: 1 nodebalancer_id: description: __Read-only__ Identifies the NodeBalancer this config belongs to. example: 12345 readOnly: true type: integer nodes_status: additionalProperties: false description: __Read-only__ Information about the health of the backends for this port. It's updated periodically as checks are performed against backends. properties: down: description: __Read-only__ The number of backends considered to be `DOWN` and unhealthy. These are not in rotation, and not serving requests. example: 0 readOnly: true type: integer up: description: __Read-only__ The number of backends considered to be `UP` and healthy, and that are serving requests. example: 4 readOnly: true type: integer readOnly: true type: object x-linode-cli-display: 10 port: default: 80 description: The port for this config. Ports need to be unique across configs for each NodeBalancer. For example, you can't have two configs for port 80. While some protocols are typically assigned specific ports, there's no enforcement, and you can configure your NodeBalancer however you find useful. For example, while port 443 is generally used for HTTPS, you don't need SSL configured to have a NodeBalancer listening on port 443. example: 80 maximum: 65535 minimum: 1 type: integer x-linode-cli-display: 2 protocol: default: http description: 'The protocol this port is configured to serve. - The `http` and `tcp` protocols don''t support `ssl_cert` and `ssl_key`. - For the `https` protocol, you need `ssl_cert` and `ssl_key`. Review our guide on [Available Protocols](https://www.linode.com/docs/products/networking/nodebalancers/guides/protocols/) for information on protocol features.' enum: - http - https - tcp example: http type: string x-linode-cli-display: 3 proxy_protocol: default: none description: 'ProxyProtocol is a TCP extension that sends initial TCP connection information such as source IPs, destination IPs, and ports to backend devices. This information would be lost otherwise. Backend devices must be configured to work with ProxyProtocol if enabled. - If omitted or set to `none`, the NodeBalancer doesn''t send any auxiliary data over TCP connections. The default is `none`. - If set to `v1`, the human-readable header format (Version 1) is used. Requires `tcp` protocol. - If set to `v2`, the binary header format (Version 2) is used. Requires `tcp` protocol.' enum: - none - v1 - v2 example: none type: string ssl_cert: description: 'The PEM-formatted public SSL certificate (or the combined PEM-formatted SSL certificate and Certificate Authority chain) that should be served on this NodeBalancer config''s port. Line breaks must be represented as `\n` in the string for API requests, but not when using the Linode CLI. You can include [Diffie-Hellman parameters](https://www.linode.com/docs/products/networking/nodebalancers/guides/ssl-termination/#diffie-hellman-parameters) in this value to enable forward secrecy. The provided field don''t appear in any responses that display the NodeBalancer config. It''s replaced with ``. The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancer config response are automatically derived from your certificate. Please refer to these fields to verify that the appropriate certificate was assigned to your config.' example: format: ssl-cert type: - string - 'null' ssl_commonname: description: __Read-only__ The read-only common name automatically derived from the SSL certificate assigned to this NodeBalancer config. Please refer to this field to verify that the appropriate certificate is assigned to your config. example: www.example.com readOnly: true type: string x-linode-cli-display: 8 ssl_fingerprint: description: __Read-only__ The read-only SHA1-encoded fingerprint automatically derived from the SSL certificate assigned to this NodeBalancer configuration. You can use the `ssl_fingerprint` field to verify that the appropriate certificate is assigned to your NodeBalancer configuration. example: 00:01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12:13 readOnly: true type: string x-linode-cli-display: 9 ssl_key: description: 'The PEM-formatted private key for the SSL certificate set in the `ssl_cert` field. Line breaks must be represented as `\n` in the string for API requests, but not when using the Linode CLI. The contents of this field will not be shown in any responses that display the NodeBalancerConfig. Instead, `` will be printed where the field appears. The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancerConfig response are automatically derived from your certificate. Please refer to these fields to verify that the appropriate certificate was assigned to your NodeBalancerConfig.' example: format: ssl-key type: - string - 'null' stickiness: default: none description: 'Controls how session stickiness is handled on this port. - If set to `none`, connections are always assigned a backend based on the algorithm configured. - If set to `table`, sessions from the same remote address are routed to the same backend. - For HTTP or HTTPS clients, `http_cookie` allows sessions to be routed to the same backend based on a cookie set by the NodeBalancer.' enum: - none - table - http_cookie example: http_cookie type: string x-linode-cli-display: 5 type: object x-akamai: file-path: schemas/node-balancer-config-cli.yaml description: The fields to update. required: true responses: '200': content: application/json: schema: description: NodeBalancer `config` options for each protocol. oneOf: - additionalProperties: false description: __Beta__ A NodeBalancer configuration defines the protocol and settings for a specific port on the NodeBalancer. These fields apply to UDP configurations. properties: algorithm: default: roundrobin description: The algorithm this UDP NodeBalancer uses to route traffic to backends. enum: - roundrobin - leastconn - ring_hash 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 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: This value must be present in the response body of the check in order for it to pass. If this value isn't present in the response body of a check request, the backend is considered to be down. example: it works type: string check_interval: default: 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: description: __Read-only__ Must be `false` for UDP. example: false readOnly: true type: boolean x-linode-cli-display: 7 check_path: description: The URL path to check on each backend. If the backend does not respond to this request, it's considered to be down. example: /test pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ type: string check_timeout: default: 30 description: 'How long, in seconds, to wait for a check attempt before considering it failed. Must be less than `check_interval`.' example: 10 maximum: 30 minimum: 1 type: integer cipher_suite: description: __Read-only__ Not applicable for `udp` configs. example: none 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: 7000 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__ 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: 5795 maximum: 65535 minimum: 1 type: integer x-linode-cli-display: 2 protocol: default: http description: The protocol the port is configured to serve, `udp` 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: - udp example: udp type: string x-linode-cli-display: 3 proxy_protocol: description: __Read-only__ Must be `none` for UDP. example: none readOnly: true type: string ssl_cert: description: __Read-only__ Not applicable for UDP configs. example: null readOnly: true type: - string - 'null' ssl_commonname: description: __Read-only__ Not applicable for UPD configs. example: '' readOnly: true type: string x-linode-cli-display: 8 ssl_fingerprint: description: __Read-only__ Not applicable for UDP configs. example: '' readOnly: true type: string x-linode-cli-display: 9 ssl_key: description: __Read-only__ Not applicable for UDP configs. example: null readOnly: true type: - string - 'null' stickiness: default: session description: 'Controls how session stickiness is handled on this port. - If set to `none`, connections are assigned a backend server based on the algorithm configured. - If set to `session`, all packets with the same session identifiers are routed to the same backend server. Two packets are considered part of the same session if they share the same source and destination IP addresses or ports, and are received within a short time window. - If set to `source_ip`, the NodeBalancer uses the client''s source IP address to route all packets from the same client to the same backend server.' enum: - none - session - source_ip example: none type: string x-linode-cli-display: 5 udp_check_port: default: 80 description: UDP NodeBalancers use TCP and HTTP active health checks to ensure back-end nodes can receive traffic. You can specify the health check port that the backend node listens on, which may differ from the UDP port used to serve traffic. example: 5795 maximum: 65535 minimum: 1 type: integer x-linode-cli-display: 6 udp_session_timeout: default: 16 description: __Read-only__ The maximum duration in seconds, a UDP session can be idle before it is closed. example: 2 maximum: 300 minimum: 1 readOnly: true type: integer x-linode-cli-display: 11 required: - nodes title: UDP type: object x-akamai: file-path: schemas/node-balancer-config-udp-response.yaml status: BETA - 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 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: 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 is 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's considered to be down. example: /test pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ type: string check_timeout: default: 30 description: 'How long, in seconds, to wait for a check attempt before considering it failed. Must be less than `check_interval`.' example: 10 maximum: 30 minimum: 1 type: integer cipher_suite: description: __Read-only__ Not applicable for `tcp` configs. example: none 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_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 readOnly: true type: - string - 'null' 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 readOnly: true type: - string - 'null' 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-response.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 needs to be in the response body of the check in order for it to pass. Otherwise 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: none 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_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 isn't strictly enforced. You may configure your NodeBalancer however you find useful. 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 readOnly: true type: - string - 'null' 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 readOnly: true type: - string - 'null' stickiness: default: table description: 'Controls how session stickiness is handled on this port. - If set to `none`, connections are always assigned a backend based on the algorithm configured. - If set to `table`, sessions from the same remote address are routed to the same backend. - 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-response.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. The `check` 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: 'The number of seconds between each 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. The `legacy` cipher is considered insecure and should only be used if necessary. For information on recommended and legacy ciphers, see [TLS cipher suites](https://techdocs.akamai.com/cloud-computing/docs/tls-ssl-termination-on-nodebalancers#tls-cipher-suites). enum: - recommended - legacy example: recommended type: string x-linode-cli-color: default_: white legacy: red x-linode-cli-display: 7 id: description: __Read-only__ This config's unique ID. example: 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_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://techdocs.akamai.com/cloud-computing/docs/available-protocols) for information on protocol features. The `https` protocol needs to be specified with both `ssl_cert` and `ssl_key`. 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: ' 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 type: - string - 'null' 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 NodeBalancer configuration. Please refer to the `ssl_fingerprint` field to verify that the appropriate certificate is assigned to your NodeBalancer configuration. 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 type: - string - 'null' 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-response.yaml x-akamai: file-path: schemas/node-balancer-config-response.yaml x-example: x-ref: ../examples/get-node-balancer-config-200.json x-linode-cli-use-schema: additionalProperties: false properties: algorithm: default: roundrobin description: 'The algorithm this NodeBalancer should use to route traffic to backends. - If set to `roundrobin`, connections are allocated in a weighted circular order across the backends. - If set to `leastconn`, allocates new connections to the backend with the least connections. - If set to `source`, allocates the client''s IP to the same backend on subsequent requests. Session `stickiness` affects this algorithm.' enum: - roundrobin - leastconn - source example: roundrobin type: string x-linode-cli-display: 4 check: default: none description: 'The type of check to perform against backends to ensure they''re serving requests. This determines if backends are up or down. - If `none`, no check is performed. - If `connection`, requires a successful TCP handshake with a backend node. - If `http`, requires a 2xx or 3xx response from the backend node. - If `http_body`, requires the provided regular expression matches against the request''s result body.' enum: - none - connection - http - http_body example: http_body type: string check_attempts: default: 3 description: How many times to attempt a check before considering a backend to be down. example: 3 maximum: 30 minimum: 1 type: integer check_body: description: The check's response body needs to include this value for it to pass. Otherwise the backend is identified as being down. example: it works type: string check_interval: default: 31 description: 'How often, in seconds, to check that backends are up and serving requests. Must be greater than `check_timeout`.' example: 90 type: integer check_passive: default: true description: If `true`, any response from this backend with a `5xx` status code will be enough for it to be considered unhealthy and taken out of rotation. example: true type: boolean x-linode-cli-display: 6 check_path: description: The URL path to check on each backend. If the backend doesn't respond to this request it's considered to be down. example: /test pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ type: string check_timeout: default: 30 description: How long, in seconds, to wait for a check attempt before considering it failed. Must be less than `check_interval`. example: 10 maximum: 30 minimum: 1 type: integer cipher_suite: default: recommended description: What ciphers to use for SSL connections served by this NodeBalancer. The `legacy` cipher is considered insecure and should only be used if necessary. For information on recommended and legacy ciphers, see [TLS cipher suites](https://techdocs.akamai.com/cloud-computing/docs/tls-ssl-termination-on-nodebalancers#tls-cipher-suites). enum: - recommended - legacy example: recommended type: string x-linode-cli-color: default_: white legacy: red x-linode-cli-display: 7 id: description: __Read-only__ This config's unique ID. example: 4567 readOnly: true type: integer x-linode-cli-display: 1 nodebalancer_id: description: __Read-only__ Identifies the NodeBalancer this config belongs to. example: 12345 readOnly: true type: integer nodes_status: additionalProperties: false description: __Read-only__ Information about the health of the backends for this port. It's updated periodically as checks are performed against backends. properties: down: description: __Read-only__ The number of backends considered to be `DOWN` and unhealthy. These are not in rotation, and not serving requests. example: 0 readOnly: true type: integer up: description: __Read-only__ The number of backends considered to be `UP` and healthy, and that are serving requests. example: 4 readOnly: true type: integer readOnly: true type: object x-linode-cli-display: 10 port: default: 80 description: The port for this config. Ports need to be unique across configs for each NodeBalancer. For example, you can't have two configs for port 80. While some protocols are typically assigned specific ports, there's no enforcement, and you can configure your NodeBalancer however you find useful. For example, while port 443 is generally used for HTTPS, you don't need SSL configured to have a NodeBalancer listening on port 443. example: 80 maximum: 65535 minimum: 1 type: integer x-linode-cli-display: 2 protocol: default: http description: 'The protocol this port is configured to serve. - The `http` and `tcp` protocols don''t support `ssl_cert` and `ssl_key`. - For the `https` protocol, you need `ssl_cert` and `ssl_key`. Review our guide on [Available Protocols](https://www.linode.com/docs/products/networking/nodebalancers/guides/protocols/) for information on protocol features.' enum: - http - https - tcp example: http type: string x-linode-cli-display: 3 proxy_protocol: default: none description: 'ProxyProtocol is a TCP extension that sends initial TCP connection information such as source IPs, destination IPs, and ports to backend devices. This information would be lost otherwise. Backend devices must be configured to work with ProxyProtocol if enabled. - If omitted or set to `none`, the NodeBalancer doesn''t send any auxiliary data over TCP connections. The default is `none`. - If set to `v1`, the human-readable header format (Version 1) is used. Requires `tcp` protocol. - If set to `v2`, the binary header format (Version 2) is used. Requires `tcp` protocol.' enum: - none - v1 - v2 example: none type: string ssl_cert: description: 'The PEM-formatted public SSL certificate (or the combined PEM-formatted SSL certificate and Certificate Authority chain) that should be served on this NodeBalancer config''s port. Line breaks must be represented as `\n` in the string for API requests, but not when using the Linode CLI. You can include [Diffie-Hellman parameters](https://www.linode.com/docs/products/networking/nodebalancers/guides/ssl-termination/#diffie-hellman-parameters) in this value to enable forward secrecy. The provided field don''t appear in any responses that display the NodeBalancer config. It''s replaced with ``. The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancer config response are automatically derived from your certificate. Please refer to these fields to verify that the appropriate certificate was assigned to your config.' example: format: ssl-cert type: - string - 'null' ssl_commonname: description: __Read-only__ The read-only common name automatically derived from the SSL certificate assigned to this NodeBalancer config. Please refer to this field to verify that the appropriate certificate is assigned to your config. example: www.example.com readOnly: true type: string x-linode-cli-display: 8 ssl_fingerprint: description: __Read-only__ The read-only SHA1-encoded fingerprint automatically derived from the SSL certificate assigned to this NodeBalancer configuration. You can use the `ssl_fingerprint` field to verify that the appropriate certificate is assigned to your NodeBalancer configuration. example: 00:01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12:13 readOnly: true type: string x-linode-cli-display: 9 ssl_key: description: 'The PEM-formatted private key for the SSL certificate set in the `ssl_cert` field. Line breaks must be represented as `\n` in the string for API requests, but not when using the Linode CLI. The contents of this field will not be shown in any responses that display the NodeBalancerConfig. Instead, `` will be printed where the field appears. The read-only `ssl_commonname` and `ssl_fingerprint` fields in a NodeBalancerConfig response are automatically derived from your certificate. Please refer to these fields to verify that the appropriate certificate was assigned to your NodeBalancerConfig.' example: format: ssl-key type: - string - 'null' stickiness: default: none description: 'Controls how session stickiness is handled on this port. - If set to `none`, connections are always assigned a backend based on the algorithm configured. - If set to `table`, sessions from the same remote address are routed to the same backend. - For HTTP or HTTPS clients, `http_cookie` allows sessions to be routed to the same backend based on a cookie set by the NodeBalancer.' enum: - none - table - http_cookie example: http_cookie type: string x-linode-cli-display: 5 type: object x-akamai: file-path: schemas/node-balancer-config-cli.yaml description: Config updated successfully. default: content: application/json: schema: additionalProperties: false properties: errors: items: additionalProperties: false description: An object for describing a single error that occurred during the processing of a request. properties: field: description: The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request. example: fieldname type: string reason: description: What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully. example: fieldname must be a valid value type: string type: object x-akamai: file-path: schemas/error-object.yaml type: array type: object description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes. security: - personalAccessToken: [] - oauth: - nodebalancers:read_write summary: Update a config tags: - Configurations x-akamai: tabs: - syntax: "linode-cli nodebalancers config-update \\\n 12345 4567 \\\n --port 443 \\\n --protocol https \\\n --algorithm roundrobin \\\n --stickiness http_cookie \\\n --check http_body \\\n --check_interval 90 \\\n --check_timeout 10 \\\n --check_attempts 3 \\\n --check_path \"/test\" \\\n --check_body \"it works\" \\\n --check_passive true \\\n --proxy_protocol \"none\" \\\n --ssl_cert \"-----BEGIN CERTIFICATE-----\n CERTIFICATE_INFORMATION\n -----END CERTIFICATE-----\" \\\n --ssl_key \"-----BEGIN PRIVATE KEY-----\n PRIVATE_KEY_INFORMATION\n -----END PRIVATE KEY-----\" \\\n --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 \\\n 12345 4567 \\\n --port 80 \\\n --protocol udp \\\n --algorithm ring_hash \\\n --stickiness session \\\n --check http_body \\\n --check_interval 90 \\\n --check_timeout 10 \\\n --check_attempts 3 \\\n --check_path \"/test\" \\\n --check_body \"it works\" \\\n --udp_check_port 80" title: 'CLI: UDP' url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli - syntax: "linode-cli nodebalancers config-update \\\n 12345 4567 \\\n --port 80 \\\n --protocol tcp \\\n --algorithm roundrobin \\\n --stickiness none \\\n --stickiness http_cookie \\\n --check http_body \\\n --check_interval 90 \\\n --check_timeout 10 \\\n --check_attempts 3 \\\n --check_path \"/test\" \\\n --check_body \"it works\" \\\n --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 \\\n 12345 4567 \\\n --port 440 \\\n --protocol http \\\n --algorithm roundrobin \\\n --stickiness http_cookie \\\n --check http_body \\\n --check_interval 90 \\\n --check_timeout 10 \\\n --check_attempts 3 \\\n --check_path \"/test\" \\\n --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 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... - __OAuth scopes__. ``` nodebalancers:read_write ``` Learn more...' externalDocs: description: See documentation for this operation in Akamai's Linode API url: https://techdocs.akamai.com/linode-api/reference/delete-node-balancer-config operationId: delete-node-balancer-config responses: '200': content: application/json: schema: description: The API responds with an empty object. maxProperties: 0 type: object x-akamai: file-path: schemas/added-empty-obj.yaml x-example: x-ref: ../examples/delete-node-balancer-config-200.json description: NodeBalancer Config deleted successfully. default: content: application/json: schema: additionalProperties: false properties: errors: items: additionalProperties: false description: An object for describing a single error that occurred during the processing of a request. properties: field: description: The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request. example: fieldname type: string reason: description: What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully. example: fieldname must be a valid value type: string type: object x-akamai: file-path: schemas/error-object.yaml type: array type: object description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes. security: - personalAccessToken: [] - oauth: - nodebalancers:read_write summary: Delete a config tags: - Configurations x-akamai: tabs: - syntax: "linode-cli nodebalancers config-delete \\\n 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 /{apiVersion}/nodebalancers/{nodeBalancerId}/configs/{configId}/rebuild: parameters: - description: __Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta. example: '{{apiVersion}}' 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. example: '{{nodeBalancerId}}' 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. example: '{{configId}}' in: path name: configId required: true schema: example: 521 type: integer x-akamai: file-path: parameters/config-id.yaml x-akamai: file-path: paths/config-rebuild.yaml path-info: /{apiVersion}/nodebalancers/{nodeBalancerId}/configs/{configId}/rebuild x-linode-cli-command: nodebalancers 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. > 🚧 > > You can configure UDP on the same NodeBalancer that also uses TCP, HTTP, or HTTPS, but only when managing it through the API. If UDP is configured and you make changes to the TCP, HTTP or HTTPS settings in Cloud Manager, the existing UDP configuration will be overwritten. This is because Cloud Manager doesn''t currently support UDP. > --- - __CLI: HTTPS__. ``` linode-cli nodebalancers config-rebuild \ 12345 4567 \ --port 443 \ --protocol https \ --algorithm roundrobin \ --stickiness http_cookie \ --check http_body \ --check_interval 90 \ --check_timeout 10 \ --check_attempts 3 \ --check_path "/test" \ --check_body "it works" \ --check_passive true \ --proxy_protocol "none" \ --ssl_cert "-----BEGIN CERTIFICATE----- CERTIFICATE_INFORMATION -----END CERTIFICATE-----" \ --ssl_key "-----BEGIN PRIVATE KEY----- PRIVATE_KEY_INFORMATION -----END PRIVATE KEY-----" \ --cipher_suite recommended \ --nodes.label "node1" --nodes.address "192.168.210.120:80" --nodes.mode "accept" --nodes.weight 50 \ --nodes ''[{"address":"192.168.210.122:80","label":"node2","weight":50,"mode":"accept"}]'' \ --nodes ''[{"address":"10.0.0.45:80","label":"vpc-node","weight":10,"mode":"accept","subnet_id:1"}]'' ``` Learn more... - __CLI: UDP__. ``` linode-cli nodebalancers config-rebuild \ 12345 4567 \ --port 80 \ --protocol udp \ --algorithm ring_hash \ --udp_check_port 80 \ --nodes.label "node1" --nodes.address "192.168.210.120:80" --nodes.mode "accept" --nodes.weight 50 \ --nodes ''[{"address":"192.168.210.122:80","label":"node2","weight":50}]'' \ --nodes ''[{"address":"10.0.0.45:80","label":"vpc-node","weight":10,"mode":"accept","subnet_id:1"}]'' ``` Learn more... - __CLI: TCP__. ``` linode-cli nodebalancers config-rebuild \ 12345 4567 \ --port 80 \ --protocol tcp \ --algorithm roundrobin \ --stickiness none \ --proxy_protocol "v2" --nodes.label "node1" --nodes.address "192.168.210.120:80" --nodes.mode "accept" --nodes.weight 50 \ --nodes ''[{"address":"192.168.210.122:80","label":"node2","weight":50,"mode":"accept"}]'' \ --nodes ''[{"address":"10.0.0.45:80","label":"vpc-node","weight":10,"mode":"accept","subnet_id:1"}]'' ``` Learn more... - __CLI: HTTP__. ``` linode-cli nodebalancers config-rebuild \ 12345 4567 \ --port 440 \ --protocol http \ --algorithm roundrobin \ --stickiness none \ --check http_body \ --check_interval 90 \ --check_timeout 10 \ --check_attempts 3 \ --check_path "/test" \ --check_body "it works" \ --nodes.label "node1" --nodes.address "192.168.210.120:80" --nodes.mode "accept" --nodes.weight 50 \ --nodes ''[{"address":"192.168.210.122:80","label":"node2","weight":50,"mode":"accept"}]'' \ --nodes ''[{"address":"10.0.0.45:80","label":"vpc-node","weight":10,"mode":"accept","subnet_id:1"}]'' ``` Learn more... - __OAuth scopes__. ``` nodebalancers:read_write ``` Learn more...' 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: __Beta__ A NodeBalancer configuration defines the protocol and settings for a specific port on the NodeBalancer. These fields apply to UDP configurations. properties: algorithm: default: roundrobin description: The algorithm this UDP NodeBalancer uses to route traffic to backends. enum: - roundrobin - leastconn - ring_hash 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 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: This value must be present in the response body of the check in order for it to pass. If this value isn't present in the response body of a check request, the backend is considered to be down. example: it works type: string check_interval: default: 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: description: __Read-only__ Must be `false` for UDP. example: false readOnly: true type: boolean x-linode-cli-display: 8 check_path: description: The URL path to check on each backend. If the backend does not respond to this request, it's considered to be down. example: /test pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ type: string check_timeout: default: 30 description: 'How long, in seconds, to wait for a check attempt before considering it failed. Must be less than `check_interval`.' example: 10 maximum: 30 minimum: 1 type: integer cipher_suite: description: __Read-only__ Not applicable for UDP configs. example: none 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: 7000 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: __Beta__ A NodeBalancer node represents a single backend serving requests for a single port of a NodeBalancer. Nodes are tied to individual NodeBalancer configurations and route traffic over their private IPv4 address, IPv6 address, or VPC IPv4 address. 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 UDP 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: "Backend nodes can be Linodes and Linodes within a VPC. The following IP types are supported:\n - For non-VPC backend nodes, the private IPv4 address and port where this backend can be reached.\n - For non-VPC backend nodes, the public IPv6 address and port where this backend can be reached.\n - For backend nodes within a VPC, the IPv4 address and port where this backend can be reached." example: - 192.168.210.120:443 - 10.100.5.5:80 - '[2300:5800::f03c:93ff:fe6e:1264]:8080' 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: __Read-only__ The mode this NodeBalancer should use when sending traffic to this backend. For backend nodes with a UDP config, the `mode` doesn't apply, so the value is `none`. enum: - none example: none readOnly: true 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 subnet_id: description: Required for VPC backend nodes only. The VPC's subnet. To display information about your VPCs and their subnets, run the [List VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs) operation. example: 1 type: integer 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: UDP config x-akamai: file-path: schemas/node-balancer-node-udp.yaml status: BETA 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: 11 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: 5795 maximum: 65535 minimum: 1 type: integer x-linode-cli-display: 2 protocol: default: http description: The protocol the port is configured to serve, `udp` 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: - udp example: udp type: string x-linode-cli-display: 3 proxy_protocol: description: __Read-only__ Must be `none` for UDP. example: none readOnly: true type: string ssl_cert: description: __Read-only__ Not applicable for UDP configs. example: null readOnly: true type: - string - 'null' ssl_commonname: description: __Read-only__ Not applicable for UPD configs. example: '' readOnly: true type: string x-linode-cli-display: 9 ssl_fingerprint: description: __Read-only__ Not applicable for UDP configs. example: '' readOnly: true type: string x-linode-cli-display: 10 ssl_key: description: __Read-only__ Not applicable for UDP configs. example: null readOnly: true type: - string - 'null' stickiness: default: session description: 'Controls how session stickiness is handled on this port. - If set to `none`, connections are assigned a backend server based on the algorithm configured. - If set to `session`, all packets with the same session identifiers are routed to the same backend server. Two packets are considered part of the same session if they share the same source and destination IP addresses or ports, and are received within a short time window. - If set to `source_ip`, the NodeBalancer uses the client''s source IP address to route all packets from the same client to the same backend server.' enum: - none - session - source_ip example: none type: string x-linode-cli-display: 5 udp_check_port: default: 80 description: UDP NodeBalancers use TCP and HTTP active health checks to ensure back-end nodes can receive traffic. You can specify the health check port that the backend node listens on, which may differ from the UDP port used to serve traffic. example: 5795 maximum: 65535 minimum: 1 type: integer x-linode-cli-display: 6 udp_session_timeout: default: 16 description: __Read-only__ The maximum duration in seconds, a UDP session can be idle before it is closed. example: 2 maximum: 300 minimum: 1 readOnly: true type: integer x-linode-cli-display: 12 required: - nodes title: UDP type: object x-akamai: file-path: schemas/node-balancer-config-udp.yaml status: BETA - 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. The `check` 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's considered to be down. example: /test pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ type: string check_timeout: default: 30 description: 'How long, in seconds, to wait for a check attempt before considering it failed. Must be less than `check_interval`.' example: 10 maximum: 30 minimum: 1 type: integer cipher_suite: description: __Read-only__ Not applicable for `tcp` configs. example: none 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 tied to individual NodeBalancer configurations and route traffic over their private IPv4 address, IPv6 address, or VPC IPv4 address. 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: "Backend nodes can be Linodes and Linodes within a VPC. The following IP types are supported:\n - For non-VPC backend nodes, the private IPv4 address and port where this backend can be reached.\n - For non-VPC backend nodes, the public IPv6 address and port where this backend can be reached.\n - For backend nodes within a VPC, the IPv4 address and port where this backend can be reached." example: - 192.168.210.120:443 - 10.100.5.5:80 - '[2300:5800::f03c:93ff:fe6e:1264]:8080' 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 subnet_id: description: Required for VPC backend nodes only. The VPC's subnet. To display information about your VPCs and their subnets, run the [List VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs) operation. example: 1 type: integer 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 readOnly: true type: - string - 'null' 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 readOnly: true type: - string - 'null' stickiness: default: none description: '__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.' enum: - none - table 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: none 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 tied to individual NodeBalancer configurations and route traffic over their private IPv4 address, IPv6 address, or VPC IPv4 address. 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: "Backend nodes can be Linodes and Linodes within a VPC. The following IP types are supported:\n - For non-VPC backend nodes, the private IPv4 address and port where this backend can be reached.\n - For non-VPC backend nodes, the public IPv6 address and port where this backend can be reached.\n - For backend nodes within a VPC, the IPv4 address and port where this backend can be reached." example: - 192.168.210.120:443 - 10.100.5.5:80 - '[2300:5800::f03c:93ff:fe6e:1264]:8080' 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 subnet_id: description: Required for VPC backend nodes only. The VPC's subnet. To display information about your VPCs and their subnets, run the [List VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs) operation. example: 1 type: integer 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 isn't strictly enforced. You may configure your NodeBalancer however you find useful. 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 readOnly: true type: - string - 'null' 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 readOnly: true type: - string - 'null' 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. The `check` 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. The `legacy` cipher is considered insecure and should only be used if necessary. For information on recommended and legacy ciphers, see [TLS cipher suites](https://techdocs.akamai.com/cloud-computing/docs/tls-ssl-termination-on-nodebalancers#tls-cipher-suites). enum: - recommended - legacy example: recommended type: string x-linode-cli-color: default_: white legacy: red x-linode-cli-display: 7 id: description: __Read-only__ This config's unique ID. example: 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 tied to individual NodeBalancer configurations and route traffic over their private IPv4 address, IPv6 address, or VPC IPv4 address. 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: "Backend nodes can be Linodes and Linodes within a VPC. The following IP types are supported:\n - For non-VPC backend nodes, the private IPv4 address and port where this backend can be reached.\n - For non-VPC backend nodes, the public IPv6 address and port where this backend can be reached.\n - For backend nodes within a VPC, the IPv4 address and port where this backend can be reached." example: - 192.168.210.120:443 - 10.100.5.5:80 - '[2300:5800::f03c:93ff:fe6e:1264]:8080' 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 subnet_id: description: Required for VPC backend nodes only. The VPC's subnet. To display information about your VPCs and their subnets, run the [List VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs) operation. example: 1 type: integer 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://techdocs.akamai.com/cloud-computing/docs/available-protocols) for information on protocol features. The `https` protocol needs to be specified with both `ssl_cert` and `ssl_key`. 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: ' 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 type: - string - 'null' 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 NodeBalancer configuration. Please refer to the `ssl_fingerprint` field to verify that the appropriate certificate is assigned to your NodeBalancer configuration. 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 type: - string - 'null' 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.\n\nSome considerations for Nodes when rebuilding a config:\n\n - Current Nodes excluded from the request body will be deleted from the Config.\n - Current Nodes (identified by their Node ID) will be updated.\n - New Nodes (included without a Node ID) will be created." items: additionalProperties: false description: NodeBalancer node request object including ID. properties: address: description: "Backend nodes can be Linodes and Linodes within a VPC. The following IP types are supported:\n - For non-VPC backend nodes, the private IPv4 address and port where this backend can be reached.\n - For non-VPC backend nodes, the public IPv6 address and port where this backend can be reached.\n - For backend nodes within a VPC, the IPv4 address and port where this backend can be reached." example: - 192.168.210.120:443 - 10.100.5.5:80 - '[2300:5800::f03c:93ff:fe6e:1264]:8080' 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 subnet_id: description: Required for VPC backend nodes only. The VPC's subnet. To display information about your VPCs and their subnets, run the [List VPCs](https://techdocs.akamai.com/linode-api/reference/get-vpcs) operation. example: 1 type: integer x-linode-cli-display: 4 weight: description: Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. example: 50 maximum: 255 minimum: 1 type: integer x-linode-cli-display: 5 type: object type: array required: - nodes type: object x-akamai: file-path: schemas/added-post-rebuild-node-balancer-config.yaml x-example: x-ref: ../examples/post-rebuild-node-balancer-config.json x-linode-cli-use-schema: additionalProperties: false properties: algorithm: default: roundrobin description: 'The algorithm this NodeBalancer should use to route traffic to backends. - If set to `roundrobin`, connections are allocated in a weighted circular order across the backends. - If set to `leastconn`, allocates new connections to the backend with the least connections. - If set to `source`, allocates the client''s IP to the same backend on subsequent requests. Session `stickiness` affects this algorithm.' enum: - roundrobin - leastconn - source example: roundrobin type: string x-linode-cli-display: 4 check: default: none description: 'The type of check to perform against backends to ensure they''re serving requests. This determines if backends are up or down. - If `none`, no check is performed. - If `connection`, requires a successful TCP handshake with a backend node. - If `http`, requires a 2xx or 3xx response from the backend node. - If `http_body`, requires the provided regular expression matches against the request''s result body.' enum: - none - connection - http - http_body example: http_body type: string check_attempts: default: 3 description: How many times to attempt a check before considering a backend to be down. example: 3 maximum: 30 minimum: 1 type: integer check_body: description: This value must be present in the response body of the check in order for it to pass. If this value isn't present in the response body of a check request, the backend is considered to be down. example: it works type: string check_interval: default: 31 description: 'How often, in seconds, to check that backends are up and serving requests. Must be greater than `check_timeout`.' example: 90 type: integer check_passive: default: true description: If `true`, any response from this backend with a `5xx` status code will be enough for it to be considered unhealthy and taken out of rotation. example: true type: boolean x-linode-cli-display: 6 check_path: description: The URL path to check on each backend. If the backend doesn't respond to this request it's considered to be down. example: /test pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ type: string check_timeout: default: 30 description: How long, in seconds, to wait for a check attempt before considering it failed. Must be less than `check_interval`. example: 10 maximum: 30 minimum: 1 type: integer cipher_suite: default: recommended description: What ciphers to use for SSL connections served by this NodeBalancer. The `legacy` cipher is considered insecure and should only be used if necessary. For information on recommended and legacy ciphers, see [TLS cipher suites](https://techdocs.akamai.com/cloud-computing/docs/tls-ssl-termination-on-nodebalancers#tls-cipher-suites). enum: - recommended - legacy example: recommended type: string x-linode-cli-color: default_: white legacy: red x-linode-cli-display: 7 id: description: __Read-only__ This config's unique ID. example: 4567 readOnly: true type: integer x-linode-cli-display: 1 nodebalancer_id: description: __Read-only__ The ID for the NodeBalancer this config belongs to. example: 12345 readOnly: true type: integer nodes: description: The NodeBalancer nodes that serve this configuration. items: additionalProperties: false description: NodeBalancer Node request object including ID. properties: address: description: 'The address and port where this backend can be reached: either the Linode’s private IPv4, public IPv6, or the VPC''s IPv4 address.' example: 192.168.210.120:80 format: ip type: string x-linode-cli-display: 3 id: description: __Read-only__ This node's unique ID. example: 54321 readOnly: true type: integer x-linode-cli-display: 1 label: description: The label for this node. This is for display purposes only. example: node54321 maxLength: 32 minLength: 3 pattern: '[a-zA-Z0-9-_.]{3,32}' type: string x-linode-cli-display: 2 mode: description: 'The mode this NodeBalancer should use when sending traffic to this backend. - If set to `accept` this backend is accepting traffic. - If set to `reject` this backend will not receive traffic. - If set to `drain` this backend will not receive _new_ traffic, but connections already pinned to it will continue to be routed to it. - If set to `backup`, this backend will only receive traffic if all `accept` nodes are down.' enum: - accept - reject - drain - backup example: accept type: string x-linode-cli-display: 6 status: description: __Read-only__ The current status of this node, based on the configured checks of its NodeBalancer Config. enum: - unknown - UP - DOWN example: UP readOnly: true type: string x-linode-cli-color: DOWN: red UP: green default_: white unknown: yellow x-linode-cli-display: 4 weight: description: Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. example: 50 maximum: 255 minimum: 1 type: integer x-linode-cli-display: 5 type: object type: array nodes_status: additionalProperties: false description: __Read-only__ A structure containing information about the health of the backends for this port. This information is updated periodically as checks are performed against backends. properties: down: description: __Read-only__ The number of backends considered to be "DOWN" and unhealthy. These are not in rotation, and not serving requests. example: 0 readOnly: true type: integer up: description: __Read-only__ The number of backends considered to be "UP" and healthy, and that are serving requests. example: 4 readOnly: true type: integer readOnly: true type: object x-linode-cli-display: 10 port: default: 80 description: The port for this config. Ports need to be unique across configs for each NodeBalancer. For example, you can't have two configs for port 80. While some protocols are typically assigned specific ports, there's no enforcement, and you can configure your NodeBalancer however you find useful. For example, while port 443 is generally used for HTTPS, you don't need SSL configured to have a NodeBalancer listening on port 443. example: 80 maximum: 65535 minimum: 1 type: integer x-linode-cli-display: 2 protocol: default: http description: 'The protocol this port is configured to serve. - The `http` and `tcp` protocols don''t support `ssl_cert` and `ssl_key`. - For the `https` protocol, you need `ssl_cert` and `ssl_key`. Review our guide on [Available protocols](https://www.linode.com/docs/products/networking/nodebalancers/guides/protocols/) for information on protocol features.' enum: - http - https - tcp example: http type: string x-linode-cli-display: 3 proxy_protocol: default: none description: 'ProxyProtocol is a TCP extension that sends initial TCP connection information such as source/destination IPs and ports to backend devices. This information would be lost otherwise. Backend devices must be configured to work with ProxyProtocol if enabled. - If omitted, or set to `none`, the NodeBalancer doesn''t send any auxiliary data over TCP connections. This is the default. - If set to `v1`, the human-readable header format (Version 1) is used. Requires `tcp` protocol. - If set to `v2`, the binary header format (Version 2) is used. Requires `tcp` protocol.' enum: - none - v1 - v2 example: none type: string ssl_cert: description: ' 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 type: - string - 'null' 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 NodeBalancer configuration. Please refer to the `ssl_fingerprint` field to verify that the appropriate certificate is assigned to your NodeBalancer configuration. 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 type: - string - 'null' stickiness: default: none description: 'Controls how session stickiness is handled on this port. - If set to `none`, connections will always be assigned a backend based on the algorithm configured. - If set to `table`, sessions from the same remote address will be routed to the same backend. - For HTTP or HTTPS clients, `http_cookie` allows sessions to be routed to the same backend based on a cookie set by the NodeBalancer.' enum: - none - table - http_cookie example: http_cookie type: string x-linode-cli-display: 5 type: object x-akamai: file-path: schemas/node-balancer-config-rebuild-cli.yaml x-linode-cli-subtables: - nodes description: Information about the NodeBalancer configuration to rebuild. required: true responses: '200': content: application/json: schema: description: NodeBalancer `config` options for each protocol. oneOf: - additionalProperties: false description: __Beta__ A NodeBalancer configuration defines the protocol and settings for a specific port on the NodeBalancer. These fields apply to UDP configurations. properties: algorithm: default: roundrobin description: The algorithm this UDP NodeBalancer uses to route traffic to backends. enum: - roundrobin - leastconn - ring_hash 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 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: This value must be present in the response body of the check in order for it to pass. If this value isn't present in the response body of a check request, the backend is considered to be down. example: it works type: string check_interval: default: 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: description: __Read-only__ Must be `false` for UDP. example: false readOnly: true type: boolean x-linode-cli-display: 7 check_path: description: The URL path to check on each backend. If the backend does not respond to this request, it's considered to be down. example: /test pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ type: string check_timeout: default: 30 description: 'How long, in seconds, to wait for a check attempt before considering it failed. Must be less than `check_interval`.' example: 10 maximum: 30 minimum: 1 type: integer cipher_suite: description: __Read-only__ Not applicable for `udp` configs. example: none 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: 7000 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__ 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: 5795 maximum: 65535 minimum: 1 type: integer x-linode-cli-display: 2 protocol: default: http description: The protocol the port is configured to serve, `udp` 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: - udp example: udp type: string x-linode-cli-display: 3 proxy_protocol: description: __Read-only__ Must be `none` for UDP. example: none readOnly: true type: string ssl_cert: description: __Read-only__ Not applicable for UDP configs. example: null readOnly: true type: - string - 'null' ssl_commonname: description: __Read-only__ Not applicable for UPD configs. example: '' readOnly: true type: string x-linode-cli-display: 8 ssl_fingerprint: description: __Read-only__ Not applicable for UDP configs. example: '' readOnly: true type: string x-linode-cli-display: 9 ssl_key: description: __Read-only__ Not applicable for UDP configs. example: null readOnly: true type: - string - 'null' stickiness: default: session description: 'Controls how session stickiness is handled on this port. - If set to `none`, connections are assigned a backend server based on the algorithm configured. - If set to `session`, all packets with the same session identifiers are routed to the same backend server. Two packets are considered part of the same session if they share the same source and destination IP addresses or ports, and are received within a short time window. - If set to `source_ip`, the NodeBalancer uses the client''s source IP address to route all packets from the same client to the same backend server.' enum: - none - session - source_ip example: none type: string x-linode-cli-display: 5 udp_check_port: default: 80 description: UDP NodeBalancers use TCP and HTTP active health checks to ensure back-end nodes can receive traffic. You can specify the health check port that the backend node listens on, which may differ from the UDP port used to serve traffic. example: 5795 maximum: 65535 minimum: 1 type: integer x-linode-cli-display: 6 udp_session_timeout: default: 16 description: __Read-only__ The maximum duration in seconds, a UDP session can be idle before it is closed. example: 2 maximum: 300 minimum: 1 readOnly: true type: integer x-linode-cli-display: 11 required: - nodes title: UDP type: object x-akamai: file-path: schemas/node-balancer-config-udp-response.yaml status: BETA - 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 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: 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 is 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's considered to be down. example: /test pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ type: string check_timeout: default: 30 description: 'How long, in seconds, to wait for a check attempt before considering it failed. Must be less than `check_interval`.' example: 10 maximum: 30 minimum: 1 type: integer cipher_suite: description: __Read-only__ Not applicable for `tcp` configs. example: none 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_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 readOnly: true type: - string - 'null' 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 readOnly: true type: - string - 'null' 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-response.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 needs to be in the response body of the check in order for it to pass. Otherwise 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: none 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_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 isn't strictly enforced. You may configure your NodeBalancer however you find useful. 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 readOnly: true type: - string - 'null' 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 readOnly: true type: - string - 'null' stickiness: default: table description: 'Controls how session stickiness is handled on this port. - If set to `none`, connections are always assigned a backend based on the algorithm configured. - If set to `table`, sessions from the same remote address are routed to the same backend. - 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-response.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. The `check` 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: 'The number of seconds between each 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. The `legacy` cipher is considered insecure and should only be used if necessary. For information on recommended and legacy ciphers, see [TLS cipher suites](https://techdocs.akamai.com/cloud-computing/docs/tls-ssl-termination-on-nodebalancers#tls-cipher-suites). enum: - recommended - legacy example: recommended type: string x-linode-cli-color: default_: white legacy: red x-linode-cli-display: 7 id: description: __Read-only__ This config's unique ID. example: 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_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://techdocs.akamai.com/cloud-computing/docs/available-protocols) for information on protocol features. The `https` protocol needs to be specified with both `ssl_cert` and `ssl_key`. 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: ' 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 type: - string - 'null' 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 NodeBalancer configuration. Please refer to the `ssl_fingerprint` field to verify that the appropriate certificate is assigned to your NodeBalancer configuration. 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 type: - string - 'null' 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-response.yaml x-akamai: file-path: schemas/node-balancer-config-response.yaml x-example: x-ref: ../examples/post-rebuild-node-balancer-config-200.json x-linode-cli-use-schema: additionalProperties: false properties: algorithm: default: roundrobin description: 'The algorithm this NodeBalancer should use to route traffic to backends. - If set to `roundrobin`, connections are allocated in a weighted circular order across the backends. - If set to `leastconn`, allocates new connections to the backend with the least connections. - If set to `source`, allocates the client''s IP to the same backend on subsequent requests. Session `stickiness` affects this algorithm.' enum: - roundrobin - leastconn - source example: roundrobin type: string x-linode-cli-display: 4 check: default: none description: 'The type of check to perform against backends to ensure they''re serving requests. This determines if backends are up or down. - If `none`, no check is performed. - If `connection`, requires a successful TCP handshake with a backend node. - If `http`, requires a 2xx or 3xx response from the backend node. - If `http_body`, requires the provided regular expression matches against the request''s result body.' enum: - none - connection - http - http_body example: http_body type: string check_attempts: default: 3 description: How many times to attempt a check before considering a backend to be down. example: 3 maximum: 30 minimum: 1 type: integer check_body: description: This value must be present in the response body of the check in order for it to pass. If this value isn't present in the response body of a check request, the backend is considered to be down. example: it works type: string check_interval: default: 31 description: 'How often, in seconds, to check that backends are up and serving requests. Must be greater than `check_timeout`.' example: 90 type: integer check_passive: default: true description: If `true`, any response from this backend with a `5xx` status code will be enough for it to be considered unhealthy and taken out of rotation. example: true type: boolean x-linode-cli-display: 6 check_path: description: The URL path to check on each backend. If the backend doesn't respond to this request it's considered to be down. example: /test pattern: ^[a-zA-Z0-9\/\-%?&=.]*$ type: string check_timeout: default: 30 description: How long, in seconds, to wait for a check attempt before considering it failed. Must be less than `check_interval`. example: 10 maximum: 30 minimum: 1 type: integer cipher_suite: default: recommended description: What ciphers to use for SSL connections served by this NodeBalancer. The `legacy` cipher is considered insecure and should only be used if necessary. For information on recommended and legacy ciphers, see [TLS cipher suites](https://techdocs.akamai.com/cloud-computing/docs/tls-ssl-termination-on-nodebalancers#tls-cipher-suites). enum: - recommended - legacy example: recommended type: string x-linode-cli-color: default_: white legacy: red x-linode-cli-display: 7 id: description: __Read-only__ This config's unique ID. example: 4567 readOnly: true type: integer x-linode-cli-display: 1 nodebalancer_id: description: __Read-only__ The ID for the NodeBalancer this config belongs to. example: 12345 readOnly: true type: integer nodes: description: The NodeBalancer nodes that serve this configuration. items: additionalProperties: false description: NodeBalancer Node request object including ID. properties: address: description: 'The address and port where this backend can be reached: either the Linode’s private IPv4, public IPv6, or the VPC''s IPv4 address.' example: 192.168.210.120:80 format: ip type: string x-linode-cli-display: 3 id: description: __Read-only__ This node's unique ID. example: 54321 readOnly: true type: integer x-linode-cli-display: 1 label: description: The label for this node. This is for display purposes only. example: node54321 maxLength: 32 minLength: 3 pattern: '[a-zA-Z0-9-_.]{3,32}' type: string x-linode-cli-display: 2 mode: description: 'The mode this NodeBalancer should use when sending traffic to this backend. - If set to `accept` this backend is accepting traffic. - If set to `reject` this backend will not receive traffic. - If set to `drain` this backend will not receive _new_ traffic, but connections already pinned to it will continue to be routed to it. - If set to `backup`, this backend will only receive traffic if all `accept` nodes are down.' enum: - accept - reject - drain - backup example: accept type: string x-linode-cli-display: 6 status: description: __Read-only__ The current status of this node, based on the configured checks of its NodeBalancer Config. enum: - unknown - UP - DOWN example: UP readOnly: true type: string x-linode-cli-color: DOWN: red UP: green default_: white unknown: yellow x-linode-cli-display: 4 weight: description: Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. example: 50 maximum: 255 minimum: 1 type: integer x-linode-cli-display: 5 type: object type: array nodes_status: additionalProperties: false description: __Read-only__ A structure containing information about the health of the backends for this port. This information is updated periodically as checks are performed against backends. properties: down: description: __Read-only__ The number of backends considered to be "DOWN" and unhealthy. These are not in rotation, and not serving requests. example: 0 readOnly: true type: integer up: description: __Read-only__ The number of backends considered to be "UP" and healthy, and that are serving requests. example: 4 readOnly: true type: integer readOnly: true type: object x-linode-cli-display: 10 port: default: 80 description: The port for this config. Ports need to be unique across configs for each NodeBalancer. For example, you can't have two configs for port 80. While some protocols are typically assigned specific ports, there's no enforcement, and you can configure your NodeBalancer however you find useful. For example, while port 443 is generally used for HTTPS, you don't need SSL configured to have a NodeBalancer listening on port 443. example: 80 maximum: 65535 minimum: 1 type: integer x-linode-cli-display: 2 protocol: default: http description: 'The protocol this port is configured to serve. - The `http` and `tcp` protocols don''t support `ssl_cert` and `ssl_key`. - For the `https` protocol, you need `ssl_cert` and `ssl_key`. Review our guide on [Available protocols](https://www.linode.com/docs/products/networking/nodebalancers/guides/protocols/) for information on protocol features.' enum: - http - https - tcp example: http type: string x-linode-cli-display: 3 proxy_protocol: default: none description: 'ProxyProtocol is a TCP extension that sends initial TCP connection information such as source/destination IPs and ports to backend devices. This information would be lost otherwise. Backend devices must be configured to work with ProxyProtocol if enabled. - If omitted, or set to `none`, the NodeBalancer doesn''t send any auxiliary data over TCP connections. This is the default. - If set to `v1`, the human-readable header format (Version 1) is used. Requires `tcp` protocol. - If set to `v2`, the binary header format (Version 2) is used. Requires `tcp` protocol.' enum: - none - v1 - v2 example: none type: string ssl_cert: description: ' 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 type: - string - 'null' 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 NodeBalancer configuration. Please refer to the `ssl_fingerprint` field to verify that the appropriate certificate is assigned to your NodeBalancer configuration. 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 type: - string - 'null' stickiness: default: none description: 'Controls how session stickiness is handled on this port. - If set to `none`, connections will always be assigned a backend based on the algorithm configured. - If set to `table`, sessions from the same remote address will be routed to the same backend. - For HTTP or HTTPS clients, `http_cookie` allows sessions to be routed to the same backend based on a cookie set by the NodeBalancer.' enum: - none - table - http_cookie example: http_cookie type: string x-linode-cli-display: 5 type: object x-akamai: file-path: schemas/node-balancer-config-rebuild-cli.yaml x-linode-cli-subtables: - nodes description: NodeBalancer 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: Rebuild a config tags: - Configurations x-akamai: tabs: - syntax: "linode-cli nodebalancers config-rebuild \\\n 12345 4567 \\\n --port 443 \\\n --protocol https \\\n --algorithm roundrobin \\\n --stickiness http_cookie \\\n --check http_body \\\n --check_interval 90 \\\n --check_timeout 10 \\\n --check_attempts 3 \\\n --check_path \"/test\" \\\n --check_body \"it works\" \\\n --check_passive true \\\n --proxy_protocol \"none\" \\\n --ssl_cert \"-----BEGIN CERTIFICATE-----\n CERTIFICATE_INFORMATION\n -----END CERTIFICATE-----\" \\\n --ssl_key \"-----BEGIN PRIVATE KEY-----\n PRIVATE_KEY_INFORMATION\n -----END PRIVATE KEY-----\" \\\n --cipher_suite recommended \\\n --nodes.label \"node1\" --nodes.address \"192.168.210.120:80\" --nodes.mode \"accept\" --nodes.weight 50 \\\n --nodes '[{\"address\":\"192.168.210.122:80\",\"label\":\"node2\",\"weight\":50,\"mode\":\"accept\"}]' \\\n --nodes '[{\"address\":\"10.0.0.45:80\",\"label\":\"vpc-node\",\"weight\":10,\"mode\":\"accept\",\"subnet_id:1\"}]'" title: 'CLI: HTTPS' url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli - syntax: "linode-cli nodebalancers config-rebuild \\\n 12345 4567 \\\n --port 80 \\\n --protocol udp \\\n --algorithm ring_hash \\\n --udp_check_port 80 \\\n --nodes.label \"node1\" --nodes.address \"192.168.210.120:80\" --nodes.mode \"accept\" --nodes.weight 50 \\\n --nodes '[{\"address\":\"192.168.210.122:80\",\"label\":\"node2\",\"weight\":50}]' \\\n --nodes '[{\"address\":\"10.0.0.45:80\",\"label\":\"vpc-node\",\"weight\":10,\"mode\":\"accept\",\"subnet_id:1\"}]'" title: 'CLI: UDP' url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli - syntax: "linode-cli nodebalancers config-rebuild \\\n 12345 4567 \\\n --port 80 \\\n --protocol tcp \\\n --algorithm roundrobin \\\n --stickiness none \\\n --proxy_protocol \"v2\"\n --nodes.label \"node1\" --nodes.address \"192.168.210.120:80\" --nodes.mode \"accept\" --nodes.weight 50 \\\n --nodes '[{\"address\":\"192.168.210.122:80\",\"label\":\"node2\",\"weight\":50,\"mode\":\"accept\"}]' \\\n --nodes '[{\"address\":\"10.0.0.45:80\",\"label\":\"vpc-node\",\"weight\":10,\"mode\":\"accept\",\"subnet_id:1\"}]'" title: 'CLI: TCP' url: https://www.linode.com/docs/products/tools/cli/get-started/ - syntax: "linode-cli nodebalancers config-rebuild \\\n 12345 4567 \\\n --port 440 \\\n --protocol http \\\n --algorithm roundrobin \\\n --stickiness none \\\n --check http_body \\\n --check_interval 90 \\\n --check_timeout 10 \\\n --check_attempts 3 \\\n --check_path \"/test\" \\\n --check_body \"it works\" \\\n --nodes.label \"node1\" --nodes.address \"192.168.210.120:80\" --nodes.mode \"accept\" --nodes.weight 50 \\\n --nodes '[{\"address\":\"192.168.210.122:80\",\"label\":\"node2\",\"weight\":50,\"mode\":\"accept\"}]' \\\n --nodes '[{\"address\":\"10.0.0.45:80\",\"label\":\"vpc-node\",\"weight\":10,\"mode\":\"accept\",\"subnet_id:1\"}]'" 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-rebuild x-linode-grant: add_nodebalancers components: securitySchemes: oauth: flows: 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. 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. firewall:read_only: Allows access to GET information about your Firewalls. firewall:read_write: Allows access to all Firewall endpoints. images:read_only: Allows access to GET your Images. 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_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. longview:read_only: Allows access to GET your Longview Clients. longview:read_write: Allows access to all endpoints related to your Longview Clients. 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. stackscripts:read_only: Allows access to GET your StackScripts. stackscripts:read_write: Allows access to all endpoints related to your StackScripts. volumes:read_only: Allows access to GET your Volumes. volumes:read_write: Allows access to all endpoints related to your Volumes. vpc:read_write: Allows access to all endpoints related to VPC and Subnet creation, updating, and deletion. tokenUrl: https://login.linode.com/oauth/token type: oauth2 personalAccessToken: scheme: bearer type: http externalDocs: description: See documentation for Akamai's Linode API url: https://techdocs.akamai.com/linode-api/reference x-readme: samples-languages: - curl - python - node