Skip to content

17. Managed Load Balancer

A Managed load balancer works as the network level frontend of customer application by directing connections to the backend servers.

The Managed load balancer API allows customer to manage their services. Managed load balancers are available in every UpCloud zone. The API requests and responses payload are in JSON format only.

API follows JSON Merge Patch semantics. Note when modifying nested structures payload should contain entire array, which in a sense is PUT within PATCH for them. JSON Merge Patch uses null to explicitly indicate property deletion while absent properties are ignored, i.e. not modified.

It is recommended to use the hostnames of your load balancer when directing your domain to it. This ensures utilization of all addresses that the load balancer might possess.

For the subdomains of your domain, use CNAME. For the primary domain, you might need to use ALIAS, or whatever is supported by your DNS provider.

List plans

Returns a list of available load balancer plans.

Request

GET /1.3/load-balancer/plans HTTP/1.1

Query parameters

Attribute Accepted value Default value Required Description
limit 0-100 10 no Number of entries to receive at most.
offset >= 0 0 no Offset for retrieved results.

Normal response

HTTP/1.1 200 OK
[
    {
        "name": "development",
        "per_server_max_sessions": 10000,
        "server_number": 1
    },
    {
        "name": "production",
        "per_server_max_sessions": 50000,
        "server_number": 2
    }
]

Get plan details

Returns load balancer plan details by given {name}.

Request

GET /1.3/load-balancer/plans/{name} HTTP/1.1

Normal response

HTTP/1.1 200 OK
{
    "name": "development",
    "per_server_max_sessions": 10000,
    "server_number": 1
}

Create service

Creates a new load balancer service.

Request

POST /1.3/load-balancer HTTP/1.1
{
    "name": "example-service",
    "plan": "development",
    "zone": "fi-hel1",
    "configured_status": "started",
    "maintenance_dow": "sunday",
    "maintenance_time": "20:01:01Z",
    "networks": [
        {
            "name": "example-network-1",
            "type": "public",
            "family": "IPv4"
        },
        {
            "name": "example-network-2",
            "type": "private",
            "family": "IPv4",
            "uuid": "03631160-d57a-4926-ad48-a2f828229dcb"
        }
    ],
    "frontends": [
        {
            "name": "example-frontend",
            "mode": "http",
            "port": 443,
            "default_backend": "example-backend-1",
            "networks": [
                {
                    "name": "example-network-1"
                }
            ],
            "rules": [
                {
                    "name": "example-rule-1",
                    "priority": 100,
                    "matchers": [
                        {
                            "type": "path",
                            "match_path": {
                                "method": "exact",
                                "value": "/app"
                            }
                        }
                    ],
                    "actions": [
                        {
                            "type": "use_backend",
                            "action_use_backend": {
                                "backend": "example-backend-2"
                            }
                        }
                    ]
                }
            ],
            "tls_configs": [
                {
                    "name": "example-tls-config",
                    "certificate_bundle_uuid": "0a73c569-a2d1-481a-917f-b0fdafd78136"
                }
            ],
            "properties": {
                "timeout_client": 5,
                "inbound_proxy_protocol": false
            }
        }
    ],
    "backends": [
        {
            "name": "example-backend-1",
            "members": [
                {
                    "name": "example-member-1",
                    "ip": "172.16.1.4",
                    "port": 8000,
                    "type": "static",
                    "weight": 100,
                    "max_sessions": 1000,
                    "enabled": true
                },
                {
                    "name": "example-member-2",
                    "ip": "172.16.1.6",
                    "port": 8080,
                    "type": "static",
                    "weight": 50,
                    "max_sessions": 500,
                    "enabled": true
                }
            ],
            "properties": {
                "timeout_server": 10,
                "timeout_tunnel": 3600,
                "outbound_proxy_protocol": "",
                "health_check_tls_verify": false,
                "health_check_type": "http",
                "health_check_on_down": "",
                "health_check_interval": 10,
                "health_check_fall": 5,
                "health_check_rise": 5,
                "health_check_url": "http://somehost/health",
                "health_check_expected_status": 200,
                "sticky_session_cookie_name": "x-session",
                "tls_enabled": false,
                "tls_verify": false,
                "tls_use_system_ca": false
            }
        },
        {
            "name": "example-backend-2",
            "resolver": "example-resolver",
            "tls_configs": [],
            "members": [
                {
                    "name": "member.example.com",
                    "port": 8000,
                    "type": "dynamic",
                    "max_sessions": 1000,
                    "weight": 100,
                    "enabled": true
                }
            ]
        }
    ],
    "resolvers": [
        {
            "name": "example-resolver",
            "nameservers": [
                "172.16.1.4:53"
            ],
            "retries": 5,
            "timeout": 30,
            "timeout_retry": 10,
            "cache_valid": 180,
            "cache_invalid": 10
        }
    ],
    "labels": [
        {
            "key": "env",
            "value": "staging"
        },
        {
            "key": "foo",
            "value": "bar"
        }
    ]
}

Attributes

Attribute Accepted value Required Description
name 1-64 characters, regexp pattern ^[a-zA-Z0-9_-]+$ yes The name of the service must be unique within customer account.
plan A valid plan identifier, e.g. development yes Plan which the service will have, see plans.
zone A valid zone identifier, e.g. fi-hel1 yes Zone in which the service will be hosted, e.g. fi-hel1.
configured_status started / stopped yes Service status managed by the customer.
networks An array of 1-8 network objects yes Attached Networks from where traffic consumed and routed. Private networks must reside in loadbalancer zone.
frontends An array of 0-100 frontend objects no Frontends receive the traffic before dispatching it to the backends.
backends An array of 0-100 backend objects no Backends are groups of customer servers whose traffic should be balanced.
resolvers An array of 0-100 resolver objects no Domain Name Resolvers must be configured in case of customer uses dynamic type members
labels An array of 0-255 labels objects no Labels used for service filtering, see labels usage
maintenance_dow A valid day of the week in lowercase monday/tuesday/wednesday/thursday/friday/saturday/sunday no The day of the week on which maintenance will be performed. If not provided, we will randomly select a weekend day.
maintenance_time A valid time format in UTC HH:MM:SSZ no The time at which the maintenance will begin in UTC. A 2-hour timeframe has been allocated for maintenance. During this period, the multi-node production plans will not experience any downtime, while the one-node plans will have a downtime of 1-2 minutes. If not provided, we will randomly select an off-peak time.
network_uuid A valid network identifier in UUID format no (Deprecated) Private network UUID where traffic will be routed. Must reside in loadbalancer zone. The field will be deprecated soon, please consider using networks field instead.

Normal response

HTTP/1.1 201 Created

Error response

HTTP status Error code Description
402 Payment required INSUFFICIENT_CREDITS Customer account does not have enough credits for the requested action.
400 Bad Request INVALID_REQUEST Validation error.

List services

Returns a list of load balancer services.

Request

GET /1.3/load-balancer HTTP/1.1

Query parameters

Attribute Accepted value Default value Required Description
limit 0-100 10 no Number of entries to receive at most.
offset >= 0 0 no Offset for retrieved results.
label String representation of a label. no Filter by label. See labels usage.

Normal response

HTTP/1.1 200 OK
[
    {
        "backends": [
            {
                "created_at": "2022-10-04T16:11:14.569638Z",
                "members": [
                    {
                        "created_at": "2022-10-04T16:11:14.569638Z",
                        "enabled": true,
                        "ip": "172.16.1.4",
                        "max_sessions": 1000,
                        "name": "example-member-1",
                        "port": 8000,
                        "type": "static",
                        "updated_at": "2022-10-04T16:11:14.569638Z",
                        "weight": 100
                    },
                    {
                        "created_at": "2022-10-04T16:11:14.569638Z",
                        "enabled": true,
                        "ip": "172.16.1.6",
                        "max_sessions": 500,
                        "name": "example-member-2",
                        "port": 8080,
                        "type": "static",
                        "updated_at": "2022-10-04T16:11:14.569638Z",
                        "weight": 50
                    }
                ],
                "name": "example-backend-1",
                "properties": {
                    "health_check_expected_status": 200,
                    "health_check_fall": 5,
                    "health_check_interval": 10,
                    "health_check_rise": 5,
                    "health_check_tls_verify": false,
                    "health_check_type": "http",
                    "health_check_on_down": "",
                    "health_check_url": "/health",
                    "sticky_session_cookie_name": "x-session",
                    "timeout_server": 10,
                    "timeout_tunnel": 3600,
                    "tls_enabled": false,
                    "tls_verify": false,
                    "tls_use_system_ca": false
                },
                "updated_at": "2022-10-04T16:11:14.569638Z"
            },
            {
                "created_at": "2022-10-04T16:11:14.569638Z",
                "members": [
                    {
                        "created_at": "2022-10-04T16:11:14.569638Z",
                        "enabled": true,
                        "ip": "",
                        "max_sessions": 1000,
                        "name": "member.example.com",
                        "port": 8000,
                        "type": "dynamic",
                        "updated_at": "2022-10-04T16:11:14.569638Z",
                        "weight": 100
                    }
                ],
                "name": "example-backend-2",
                "properties": {
                    "health_check_expected_status": 200,
                    "health_check_fall": 3,
                    "health_check_interval": 10,
                    "health_check_rise": 3,
                    "health_check_tls_verify": false,
                    "health_check_type": "tcp",
                    "health_check_on_down": "",
                    "health_check_url": "/",
                    "sticky_session_cookie_name": "",
                    "timeout_server": 10,
                    "timeout_tunnel": 3600,
                    "tls_enabled": false,
                    "tls_verify": false,
                    "tls_use_system_ca": false
                },
                "resolver": "example-resolver",
                "tls_configs": [],
                "updated_at": "2022-10-04T16:11:14.569638Z"
            }
        ],
        "configured_status": "started",
        "created_at": "2022-10-04T16:11:14.569638Z",
        "dns_name": "lb-0a498284629e4629a55d0415a6e89dda-1.upcloudlb.com",
        "maintenance_dow": "sunday",
        "maintenance_time": "20:01:01Z",
        "frontends": [
            {
                "created_at": "2022-10-04T16:11:14.569638Z",
                "default_backend": "example-backend-1",
                "mode": "http",
                "name": "example-frontend",
                "networks": [
                    {
                        "name": "example-network-1"
                    }
                ],
                "port": 443,
                "properties": {
                    "timeout_client": 5
                },
                "rules": [
                    {
                        "actions": [
                            {
                                "type": "use_backend",
                                "action_use_backend": {
                                    "backend": "example-backend-2"
                                }
                            }
                        ],
                        "created_at": "2022-10-04T16:11:14.569638Z",
                        "matchers": [
                            {
                                "type": "path",
                                "inverse": false,
                                "match_path": {
                                    "method": "exact",
                                    "value": "/app"
                                }
                            }
                        ],
                        "name": "example-rule-1",
                        "priority": 100,
                        "updated_at": "2022-10-04T16:11:14.569638Z"
                    }
                ],
                "tls_configs": [
                    {
                        "certificate_bundle_uuid": "0a73c569-a2d1-481a-917f-b0fdafd78136",
                        "created_at": "2022-10-04T16:11:14.569638Z",
                        "name": "example-tls-config",
                        "updated_at": "2022-10-04T16:11:14.569638Z"
                    }
                ],
                "updated_at": "2022-10-04T16:11:14.569638Z"
            }
        ],
        "labels": [
            {
                "key": "env",
                  "value": "staging"
            },
            {
                "key": "foo",
                "value": "bar"
            }
        ],
        "name": "example-service",
        "networks": [
            {
                "created_at": "2022-10-04T16:11:14.569638Z",
                "dns_name": "lb-0a498284629e4629a55d0415a6e89dda-1.upcloudlb.com",
                "family": "IPv4",
                "name": "example-network-1",
                "type": "public",
                "updated_at": "2022-10-04T16:11:14.569638Z"
            },
            {
                "created_at": "2022-10-04T16:11:14.569638Z",
                "dns_name": "lb-0a498284629e4629a55d0415a6e89dda-2.upcloudlb.com",
                "family": "IPv4",
                "name": "example-network-2",
                "type": "private",
                "updated_at": "2022-10-04T16:11:14.569638Z",
                "uuid": "03631160-d57a-4926-ad48-a2f828229dcb"
            }
        ],
        "nodes": [
            {
                "networks": [
                    {
                        "ip_addresses": [
                            {
                                "address": "100.127.5.146",
                                "listen": true
                            }
                        ],
                        "name": "example-network-1",
                        "type": "public"
                    },
                    {
                        "ip_addresses": [
                            {
                                "address": "172.16.1.44",
                                "listen": false
                            },
                            {
                                "address": "172.16.1.45",
                                "listen": true
                            }
                        ],
                        "name": "example-network-2",
                        "type": "private"
                    }
                ],
                "operational_state": "running"
            }
        ],
        "operational_state": "pending",
        "plan": "development",
        "resolvers": [
            {
                "cache_invalid": 10,
                "cache_valid": 180,
                "created_at": "2022-10-04T16:11:14.569638Z",
                "name": "example-resolver",
                "nameservers": [
                    "172.16.1.4:53"
                ],
                "retries": 5,
                "timeout": 30,
                "timeout_retry": 10,
                "updated_at": "2022-10-04T16:11:14.569638Z"
            }
        ],
        "updated_at": "2022-10-04T16:36:09.933249Z",
        "uuid": "0a498284-629e-4629-a55d-0415a6e89dda",
        "zone": "fi-hel1"
    }
]

Notes:

Get service details

Returns load balancer service details by given {service_uuid}.

Request

GET /1.3/load-balancer/{service_uuid} HTTP/1.1

Normal response

HTTP/1.1 200 OK
{
    "backends": [
        {
            "created_at": "2022-10-04T16:11:14.569638Z",
            "members": [
                {
                    "created_at": "2022-10-04T16:11:14.569638Z",
                    "enabled": true,
                    "ip": "172.16.1.4",
                    "max_sessions": 1000,
                    "name": "example-member-1",
                    "port": 8000,
                    "type": "static",
                    "updated_at": "2022-10-04T16:11:14.569638Z",
                    "weight": 100
                },
                {
                    "created_at": "2022-10-04T16:11:14.569638Z",
                    "enabled": true,
                    "ip": "172.16.1.6",
                    "max_sessions": 500,
                    "name": "example-member-2",
                    "port": 8080,
                    "type": "static",
                    "updated_at": "2022-10-04T16:11:14.569638Z",
                    "weight": 50
                }
            ],
            "name": "example-backend-1",
            "properties": {
                "health_check_expected_status": 200,
                "health_check_fall": 5,
                "health_check_interval": 10,
                "health_check_rise": 5,
                "health_check_tls_verify": false,
                "health_check_type": "http",
                "health_check_on_down": "",
                "health_check_url": "/health",
                "sticky_session_cookie_name": "x-session",
                "timeout_server": 10,
                "timeout_tunnel": 3600,
                "tls_enabled": false,
                "tls_verify": false,
                "tls_use_system_ca": false
            },
            "updated_at": "2022-10-04T16:11:14.569638Z"
        },
        {
            "created_at": "2022-10-04T16:11:14.569638Z",
            "members": [
                {
                    "created_at": "2022-10-04T16:11:14.569638Z",
                    "enabled": true,
                    "ip": "",
                    "max_sessions": 1000,
                    "name": "member.example.com",
                    "port": 8000,
                    "type": "dynamic",
                    "updated_at": "2022-10-04T16:11:14.569638Z",
                    "weight": 100
                }
            ],
            "name": "example-backend-2",
            "properties": {
                "health_check_expected_status": 200,
                "health_check_fall": 3,
                "health_check_interval": 10,
                "health_check_rise": 3,
                "health_check_tls_verify": false,
                "health_check_type": "tcp",
                "health_check_on_down": "",
                "health_check_url": "//:8080",
                "sticky_session_cookie_name": "",
                "timeout_server": 10,
                "timeout_tunnel": 3600,
                "tls_enabled": false,
                "tls_verify": false,
                "tls_use_system_ca": false
            },
            "resolver": "example-resolver",
            "tls_configs": [],
            "updated_at": "2022-10-04T16:11:14.569638Z"
        }
    ],
    "configured_status": "started",
    "created_at": "2022-10-04T16:11:14.569638Z",
    "dns_name": "lb-0a498284629e4629a55d0415a6e89dda-1.upcloudlb.com",
    "maintenance_dow": "sunday",
    "maintenance_time": "20:01:01Z",
    "frontends": [
        {
            "created_at": "2022-10-04T16:11:14.569638Z",
            "default_backend": "example-backend-1",
            "mode": "http",
            "name": "example-frontend",
            "networks": [
                {
                    "name": "example-network-1"
                }
            ],
            "port": 443,
            "properties": {
                "timeout_client": 5
            },
            "rules": [
                {
                    "actions": [
                        {
                            "type": "use_backend",
                            "action_use_backend": {
                                "backend": "example-backend-2"
                            }
                        }
                    ],
                    "created_at": "2022-10-04T16:11:14.569638Z",
                    "matchers": [
                        {
                            "type": "path",
                            "inverse": false,
                            "match_path": {
                                "method": "exact",
                                "value": "/app"
                            }
                        }
                    ],
                    "name": "example-rule-1",
                    "priority": 100,
                    "updated_at": "2022-10-04T16:11:14.569638Z"
                }
            ],
            "tls_configs": [
                {
                    "certificate_bundle_uuid": "0a73c569-a2d1-481a-917f-b0fdafd78136",
                    "created_at": "2022-10-04T16:11:14.569638Z",
                    "name": "example-tls-config",
                    "updated_at": "2022-10-04T16:11:14.569638Z"
                }
            ],
            "updated_at": "2022-10-04T16:11:14.569638Z"
        }
    ],
    "labels": [
            {
                "key": "env",
                  "value": "staging"
            },
            {
                "key": "foo",
                "value": "bar"
            }
    ],
    "name": "example-service",
    "networks": [
        {
            "created_at": "2022-10-04T16:11:14.569638Z",
            "dns_name": "lb-0a498284629e4629a55d0415a6e89dda-1.upcloudlb.com",
            "family": "IPv4",
            "name": "example-network-1",
            "type": "public",
            "updated_at": "2022-10-04T16:11:14.569638Z"
        },
        {
            "created_at": "2022-10-04T16:11:14.569638Z",
            "dns_name": "lb-0a498284629e4629a55d0415a6e89dda-2.upcloudlb.com",
            "family": "IPv4",
            "name": "example-network-2",
            "type": "private",
            "updated_at": "2022-10-04T16:11:14.569638Z",
            "uuid": "03631160-d57a-4926-ad48-a2f828229dcb"
        }
    ],
    "nodes": [
        {
            "networks": [
                {
                    "ip_addresses": [
                        {
                            "address": "100.127.5.146",
                            "listen": true
                        }
                    ],
                    "name": "example-network-1",
                    "type": "public"
                },
                {
                    "ip_addresses": [
                        {
                            "address": "172.16.1.44",
                            "listen": false
                        },
                        {
                            "address": "172.16.1.45",
                            "listen": true
                        }
                    ],
                    "name": "example-network-2",
                    "type": "private"
                }
            ],
            "operational_state": "running"
        }
    ],
    "operational_state": "pending",
    "plan": "development",
    "resolvers": [
        {
            "cache_invalid": 10,
            "cache_valid": 180,
            "created_at": "2022-10-04T16:11:14.569638Z",
            "name": "example-resolver",
            "nameservers": [
                "172.16.1.4:53"
            ],
            "retries": 5,
            "timeout": 30,
            "timeout_retry": 10,
            "updated_at": "2022-10-04T16:11:14.569638Z"
        }
    ],
    "updated_at": "2022-10-04T16:36:09.933249Z",
    "uuid": "0a498284-629e-4629-a55d-0415a6e89dda",
    "zone": "fi-hel1"
}

Notes:

Replace service

Replaces existing load balancer service by given {service_uuid}.

Request

PUT /1.3/load-balancer/{service_uuid} HTTP/1.1
{
    "name": "example-service",
    "plan": "development",
    "configured_status": "started",
    "maintenance_dow": "sunday",
    "maintenance_time": "20:01:01Z",
    "frontends": [
        {
            "name": "example-frontend",
            "mode": "http",
            "port": 443,
            "default_backend": "example-backend-1",
            "networks": [
                {
                    "name": "example-network-1"
                }
            ],
            "rules": [
                {
                    "name": "example-rule-1",
                    "priority": 100,
                    "matchers": [
                        {
                            "type": "path",
                            "match_path": {
                                "method": "exact",
                                "value": "/app"
                            }
                        }
                    ],
                    "actions": [
                        {
                            "type": "use_backend",
                            "action_use_backend": {
                                "backend": "example-backend-2"
                            }
                        }
                    ]
                }
            ],
            "tls_configs": [
                {
                    "name": "example-tls-config",
                    "certificate_bundle_uuid": "0aded5c1-c7a3-498a-b9c8-a871611c47a2"
                }
            ],
            "properties": {
                "timeout_client": 15,
                "inbound_proxy_protocol": true
            }
        }
    ],
    "backends": [
        {
            "name": "example-backend-1",
            "members": [
                {
                    "name": "example-member-1",
                    "ip": "172.16.1.4",
                    "port": 8000,
                    "type": "static",
                    "weight": 100,
                    "max_sessions": 1000,
                    "enabled": true
                },
                {
                    "name": "example-member-2",
                    "ip": "172.16.1.5",
                    "port": 8080,
                    "type": "static",
                    "weight": 50,
                    "max_sessions": 500,
                    "enabled": true
                }
            ],
            "properties": {
                "timeout_server": 30,
                "timeout_tunnel": 3600,
                "health_check_type": "http",
                "health_check_on_down": "",
                "health_check_interval": 20,
                "health_check_fall": 3,
                "health_check_rise": 3,
                "health_check_tls_verify": false,
                "health_check_url": "/",
                "health_check_expected_status": 200,
                "sticky_session_cookie_name": "",
                "tls_enabled": false,
                "tls_verify": false,
                "tls_use_system_ca": false
            }
        },
        {
            "name": "example-backend-2",
            "resolver": "example-resolver",
            "tls_configs": [],
            "members": [
                {
                    "name": "member.example.com",
                    "port": 8000,
                    "type": "dynamic",
                    "max_sessions": 1000,
                    "weight": 100,
                    "enabled": true
                }
            ]
        }
    ],
    "resolvers": [
        {
            "name": "example-resolver",
            "nameservers": [
                "172.16.1.4:53"
            ],
            "retries": 5,
            "timeout": 30,
            "timeout_retry": 10,
            "cache_valid": 180,
            "cache_invalid": 10
        }
    ],
    "labels": [
        {
            "key": "env",
            "value": "staging"
        },
        {
            "key": "foo",
            "value": "bar"
        }
    ]
}

Attributes

Attribute Accepted value Required Description
name 1-64 characters, regexp pattern ^[a-zA-Z0-9_-]+$ yes The name of the service must be unique within customer account.
plan A valid plan identifier, e.g. development yes Plan which the service will have, see plans.
configured_status started / stopped yes Service status managed by the customer.
maintenance_dow A valid day of the week in lowercase monday/tuesday/wednesday/thursday/friday/saturday/sunday no The day of the week on which maintenance will be performed. If not provided, we will randomly select a weekend day.
maintenance_time A valid time format in UTC HH:MM:SSZ no The time at which the maintenance will begin in UTC. A 2-hour timeframe has been allocated for maintenance. During this period, the multi-node production plans will not experience any downtime, while the one-node plans will have a downtime of 1-2 minutes. If not provided, we will randomly select an off-peak time.
frontends An array of 0-100 frontend objects no Frontends receive the traffic before dispatching it to the backends.
backends An array of 0-100 backend objects no Backends are groups of customer servers whose traffic should be balanced.
resolvers An array of 0-100 resolver objects no Domain Name Resolvers must be configured in case of customer uses dynamic type members
labels An array of 0-255 labels objects no Labels used for service filtering, see labels usage

Normal response

HTTP/1.1 200 OK

Error response

HTTP status Error code Description
402 Payment required INSUFFICIENT_CREDITS Customer account does not have enough credits for the requested action.
400 Bad Request INVALID_REQUEST Validation error.
404 Not Found RESOURCE_NOT_FOUND Service with provided UUID not found.

Modify service

Modifies existing load balancer service by given {service_uuid}.

Request

PATCH /1.3/load-balancer/{service_uuid} HTTP/1.1
{
    "name": "example-service",
    "plan": "development",
    "configured_status": "started",
    "resolvers": [
        {
            "name": "example-resolver",
            "nameservers": [
                "172.16.4.12:53"
            ],
            "retries": 5,
            "timeout": 30,
            "timeout_retry": 25,
            "cache_valid": 360,
            "cache_invalid": 10
        }
    ]
}

Attributes

Attribute Accepted value Required Description
name 1-64 characters, regexp pattern ^[a-zA-Z0-9_-]+$ no The name of the service must be unique within customer account.
plan A valid plan identifier, e.g. development no Plan which the service will have, see plans.
configured_status started / stopped no Service status managed by the customer.
maintenance_dow A valid day of the week in lowercase monday/tuesday/wednesday/thursday/friday/saturday/sunday no The day of the week on which maintenance will be performed.
maintenance_time A valid time format in UTC HH:MM:SSZ no The time at which the maintenance will begin in UTC. A 2-hour timeframe has been allocated for maintenance. During this period, the multi-node production plans will not experience any downtime, while the one-node plans will have a downtime of 1-2 minutes.
frontends An array of 0-100 frontend objects / null no Frontends receive the traffic before dispatching it to the backends.
backends An array of 0-100 backend objects / null no Backends are groups of customer servers whose traffic should be balanced.
resolvers An array of 0-100 resolver objects / null no Domain Name Resolvers must be configured in case of customer uses dynamic type members
labels An array of 0-255 labels objects / null no Labels used for service filtering, see labels usage

Normal response

HTTP/1.1 200 OK

Error response

HTTP status Error code Description
402 Payment required INSUFFICIENT_CREDITS Customer account does not have enough credits for the requested action.
400 Bad Request INVALID_REQUEST Validation error.
404 Not Found RESOURCE_NOT_FOUND Service with provided UUID not found.

Delete service

Deletes existing load balancer service by given {service_uuid}.

Request

DELETE /1.3/load-balancer/{service_uuid} HTTP/1.1

Normal response

HTTP/1.1 204 No Content

Error response

HTTP status Error code Description
404 Not Found RESOURCE_NOT_FOUND Service with provided UUID not found.

Create frontend

Creates a new service frontend by given {service_uuid}.

Request

POST /1.3/load-balancer/{service_uuid}/frontends HTTP/1.1
{
    "name": "example-frontend",
    "mode": "http",
    "port": 443,
    "default_backend": "example-backend",
    "networks": [
        {
            "name": "example-network-1"
        }
    ],
    "rules": [
        {
            "name": "example-rule-1",
            "priority": 100,
            "matchers": [
                {
                    "type": "path",
                    "match_path": {
                        "method": "exact",
                        "value": "/app"
                    }
                }
            ],
            "actions": [
                {
                    "type": "use_backend",
                    "action_use_backend": {
                        "backend": "example-backend-2"
                    }
                }
            ]
        }
    ],
    "tls_configs": [
        {
            "name": "example-tls-config",
            "certificate_bundle_uuid": "0aded5c1-c7a3-498a-b9c8-a871611c47a2"
        }
    ],
    "properties": {
        "timeout_client": 5,
        "inbound_proxy_protocol": true
    }
}

Attributes

Attribute Accepted value Required Description
name 1-64 characters, regexp pattern ^[a-zA-Z0-9_-]+$ yes The name of the frontend must be unique within the service.
mode tcp / http yes When load balancer operating in tcp mode it acts as a layer 4 proxy. In http mode it acts as a layer 7 proxy.
port 1-65535 yes Port to listen incoming requests
default_backend A valid backend identifier, e.g. example-backend yes The name of the default backend where traffic will be routed. Note, default backend can be overwritten in frontend rules.
networks An array of network objects yes Network object contains the name of attached networks on which frontend will be listening.
rules An array of 0-100 rules objects no Set of frontend rules
tls_configs An array of 0-1000 TLS configs no Set of TLS configs. Only TLS configs with the certificate bundle of type manual/dynamic can be attached to the frontend.
properties Properties object no Embedded Frontend properties.

Normal response

HTTP/1.1 201 Created

Error response

HTTP status Error code Description
402 Payment required INSUFFICIENT_CREDITS Customer account does not have enough credits for the requested action.
400 Bad Request INVALID_REQUEST Validation error.

Networks

List of network objects should be provided on service create and cannot be changed later. Loadbalancer could route traffic to any of attached networks and listen on networks specified in networks field on a frontend level.

Attributes

Attribute Accepted value Required Description
name 1-64 characters, regexp pattern ^[a-zA-Z0-9_-]+$ yes The name of the network must be unique within the service.
type public / private yes The type of the network. Only one public network can be attached and at least one private network must be attached.
family IPv4 yes Currently only IPv4 network family is supported.
uuid A valid network identifier in UUID format no Required for private networks and must reside in loadbalancer zone. For public network the field should be omitted.

Modify network

Modifies existing service network by given {service_uuid} and {network_name}.

Request

PATCH /1.3/load-balancer/{service_uuid}/networks/{network_name} HTTP/1.1
{
    "name": "example-network-3"
}

Attributes

Attribute Accepted value Required Description
name 1-64 characters, regexp pattern ^[a-zA-Z0-9_-]+$ no The name of the network must be unique within the service.

Normal response

HTTP/1.1 200 OK

Error response

HTTP status Error code Description
402 Payment required INSUFFICIENT_CREDITS Customer account does not have enough credits for the requested action.
400 Bad Request INVALID_REQUEST Validation error.
404 Not Found RESOURCE_NOT_FOUND Resource not found.

List frontends

Returns a list of available service frontends by given {service_uuid}.

Request

GET /1.3/load-balancer/{service_uuid}/frontends HTTP/1.1

Normal response

HTTP/1.1 200 OK
[
    {
        "created_at": "2021-12-07T13:58:30.817272Z",
        "default_backend": "example-backend-1",
        "mode": "http",
        "name": "example-frontend",
        "networks": [
            {
                "name": "example-network-1"
            }
        ],
        "port": 443,
        "properties": {
            "timeout_client": 10
        },
        "rules": [
            {
                "actions": [
                    {
                        "type": "use_backend",
                        "action_use_backend": {
                            "backend": "example-backend-2"
                        }
                    }
                ],
                "created_at": "2021-12-07T13:58:30.817272Z",
                "matchers": [
                    {
                        "type": "path",
                        "match_path": {
                            "method": "exact",
                            "value": "/app"
                        }
                    }
                ],
                "name": "example-rule-1",
                "priority": 100,
                "updated_at": "2022-02-11T17:33:08.490581Z"
            }
        ],
        "tls_configs": [
            {
                "certificate_bundle_uuid": "0aded5c1-c7a3-498a-b9c8-a871611c47a2",
                "created_at": "2022-02-11T17:33:08.490581Z",
                "name": "example-tls-config",
                "updated_at": "2022-02-11T17:33:08.490581Z"
            }
        ],
        "updated_at": "2022-02-11T17:33:08.490581Z"
    }
]

Get frontend details

Returns service frontend details by given {service_uuid} and {frontend_name}.

Request

GET /1.3/load-balancer/{service_uuid}/frontends/{frontend_name} HTTP/1.1

Normal response

HTTP/1.1 200 OK
{
    "created_at": "2021-12-07T13:58:30.817272Z",
    "default_backend": "example-backend-1",
    "mode": "http",
    "name": "example-frontend",
    "networks": [
        {
            "name": "example-network-1"
        }
    ],
    "port": 443,
    "properties": {
        "timeout_client": 10
    },
    "rules": [
        {
            "actions": [
                {
                    "type": "use_backend",
                    "action_use_backend": {
                        "backend": "example-backend-2"
                    }
                }
            ],
            "created_at": "2021-12-07T13:58:30.817272Z",
            "matchers": [
                {
                    "type": "path",
                    "match_path": {
                        "method": "exact",
                        "value": "/app"
                    }
                }
            ],
            "name": "example-rule-1",
            "priority": 100,
            "updated_at": "2022-02-11T17:33:08.490581Z"
        }
    ],
    "tls_configs": [
        {
            "certificate_bundle_uuid": "0aded5c1-c7a3-498a-b9c8-a871611c47a2",
            "created_at": "2022-02-11T17:33:08.490581Z",
            "name": "example-tls-config",
            "updated_at": "2022-02-11T17:33:08.490581Z"
        }
    ],
    "updated_at": "2022-02-11T17:33:08.490581Z"
}

Modify frontend

Modifies existing service frontend by given {service_uuid} and {frontend_name}.

Request

PATCH /1.3/load-balancer/{service_uuid}/frontends/{frontend_name} HTTP/1.1
{
    "name": "example-frontend",
    "mode": "http",
    "port": 443,
    "default_backend": "example-backend",
    "properties": {
        "timeout_client": 10,
        "inbound_proxy_protocol": false
    },
    "networks": [
        {
            "name": "example-network-2"
        }
    ]
}

Attributes

Attribute Accepted value Required Description
name 1-64 characters, regexp pattern ^[a-zA-Z0-9_-]+$ no The name of the frontend must be unique within the service.
mode tcp / http no When load balancer operating in tcp mode it acts as a layer 4 proxy. In http mode it acts as a layer 7 proxy.
port 1-65535 no Port to listen incoming requests
default_backend A valid backend identifier, e.g. example-backend no The name of the default backend where traffic will be routed. Note, default backend can be overwritten in frontend rules.
networks An array of network objects no Network object contains the name of attached networks on which frontend will be listening.
rules An array of 0-100 rules objects / null no Set of frontend rules
tls_configs An array of 0-1000 TLS configs / null no Set of TLS configs. Only TLS configs with the certificate bundle of type manual/dynamic can be attached to the frontend.
properties Properties object no Embedded Frontend properties.

Normal response

HTTP/1.1 200 OK

Error response

HTTP status Error code Description
402 Payment required INSUFFICIENT_CREDITS Customer account does not have enough credits for the requested action.
400 Bad Request INVALID_REQUEST Validation error.
404 Not Found RESOURCE_NOT_FOUND Resource not found.

Delete frontend

Deletes existing frontend by given {service_uuid} and {frontend_name}.

Request

DELETE /1.3/load-balancer/{service_uuid}/frontends/{frontend_name} HTTP/1.1

Normal response

HTTP/1.1 204 No Content

Error response

HTTP status Error code Description
404 Not Found RESOURCE_NOT_FOUND Resource not found.

Create Frontend TLS config

Creates a new TLS config by given {service_uuid} and {frontend_name}.

Request

POST /1.3/load-balancer/{service_uuid}/frontends/{frontend_name}/tls-configs HTTP/1.1
{
    "name": "example-tls-config",
    "certificate_bundle_uuid": "0aded5c1-c7a3-498a-b9c8-a871611c47a2"
}

Attributes

Attribute Accepted value Required Description
name 1-64 characters, regexp pattern ^[a-zA-Z0-9_-]+$ yes The name of the TLS config must be unique within service frontend.
certificate_bundle_uuid A valid certificate bundle identifier in UUID format yes Reference to certificate bundle. Certificate bundles of type manual or dynamic can be attached to frontend tls config.

Normal response

HTTP/1.1 201 Created

Error response

HTTP status Error code Description
402 Payment required INSUFFICIENT_CREDITS Customer account does not have enough credits for the requested action.
400 Bad Request INVALID_REQUEST Validation error.

List Frontend TLS configs

Returns a list of available frontend TLS Config by given {service_uuid} and {frontend_name}.

Request

GET /1.3/load-balancer/{service_uuid}/frontends/{frontend_name}/tls-configs HTTP/1.1

Normal response

HTTP/1.1 200 OK
[
    {
        "certificate_bundle_uuid": "0aded5c1-c7a3-498a-b9c8-a871611c47a2",
        "created_at": "2022-02-11T17:33:08.490581Z",
        "name": "example-tls-config-1",
        "updated_at": "2022-02-11T17:33:08.490581Z"
    },
    {
        "certificate_bundle_uuid": "c136c429-d18f-4192-b55e-e7b5079dee40",
        "created_at": "2021-11-11T11:21:51.121789Z",
        "name": "example-tls-config-2",
        "updated_at": "2021-11-11T11:21:51.121789Z"
    }
]

Get Frontend TLS config details

Returns frontend TLS config details by given {service_uuid}, {frontend_name} and {tls_config_name}.

Request

GET /1.3/load-balancer/{service_uuid}/frontends/{frontend_name}/tls-configs/{tls_config_name} HTTP/1.1

Normal response

HTTP/1.1 200 OK
{
    "certificate_bundle_uuid": "0aded5c1-c7a3-498a-b9c8-a871611c47a2",
    "created_at": "2022-02-11T17:33:08.490581Z",
    "name": "example-tls-config",
    "updated_at": "2022-02-11T17:33:08.490581Z"
}

Modify Frontend TLS config

Modifies existing TLS config by given {service_uuid}, {frontend_name} and {tls_config_name}.

Request

PATCH /1.3/load-balancer/{service_uuid}/frontends/{frontend_name}/tls-configs/{tls_config_name} HTTP/1.1
{
    "name": "example-tls-config",
    "certificate_bundle_uuid": "0aded5c1-c7a3-498a-b9c8-a871611c47a2"
}

Attributes

Attribute Accepted value Required Description
name 1-64 characters, regexp pattern ^[a-zA-Z0-9_-]+$ no The name of the TLS config must be unique within service frontend.
certificate_bundle_uuid A valid certificate bundle identifier in UUID format no Reference to certificate bundle. Certificate bundles of type manual or dynamic can be attached to frontend tls config.

Normal response

HTTP/1.1 200 OK

Error response

HTTP status Error code Description
402 Payment required INSUFFICIENT_CREDITS Customer account does not have enough credits for the requested action.
400 Bad Request INVALID_REQUEST Validation error.
404 Not Found RESOURCE_NOT_FOUND Resource not found.

Delete Frontend TLS config

Deletes existing TLS config by given {service_uuid}, {frontend_name} and {tls_config_name}.

Request

DELETE /1.3/load-balancer/{service_uuid}/frontends/{frontend_name}/tls-configs/{tls_config_name} HTTP/1.1

Normal response

HTTP/1.1 204 No Content

Error response

HTTP status Error code Description
404 Not Found RESOURCE_NOT_FOUND Resource not found.

Create rule

Creates a new rule by given {service_uuid} and {frontend_name}.

POST /1.3/load-balancer/{service_uuid}/frontends/{frontend_name}/rules HTTP/1.1
{
    "name": "example-rule-1",
    "priority": 100,
    "matchers": [
        {
            "type": "path",
            "match_path": {
                "method": "exact",
                "value": "/app"
            }
        }
    ],
    "actions": [
        {
            "type": "use_backend",
            "action_use_backend": {
                "backend": "example-backend-2"
            }
        }
    ]
}

Attributes

Attribute Accepted value Required Description
name 1-64 characters, regexp pattern ^[a-zA-Z0-9_-]+$ yes The name of the rule must be unique within customer service.
priority 0-100 yes Rule with the higher priority goes first. Rules with the same priority processed in alphabetical order.
matchers An array of 0-40 matcher objects yes Set of rule matchers.
actions An array of 1-40 action objects yes Set of rule actions.

Notes:

  • if rule has empty matchers array, then action applies to all incoming requests.

Normal response

HTTP/1.1 201 Created

Error response

HTTP status Error code Description
402 Payment required INSUFFICIENT_CREDITS Customer account does not have enough credits for the requested action.
400 Bad Request INVALID_REQUEST Validation error.

List rules

Returns a list of available frontend rules by given {service_uuid} and {frontend_name}.

Request

GET /1.3/load-balancer/{service_uuid}/frontends/{frontend_name}/rules HTTP/1.1

Normal response

HTTP/1.1 200 OK
[
    {
        "actions": [
            {
                "type": "use_backend",
                "action_use_backend": {
                    "backend": "example-backend-2"
                }
            }
        ],
        "created_at": "2021-12-07T13:58:30.817272Z",
        "matchers": [
            {
                "type": "path",
                "match_path": {
                    "method": "exact",
                    "value": "/app"
                }
            }
        ],
        "name": "example-rule-1",
        "priority": 100,
        "updated_at": "2022-02-11T17:33:08.490581Z"
    }
]

Get rule details

Returns frontend rule details by given {service_uuid}, {frontend_name} and {rule_name}.

Request

GET /1.3/load-balancer/{service_uuid}/frontends/{frontend_name}/rules/{rule_name} HTTP/1.1

Normal response

HTTP/1.1 200 OK
{
    "actions": [
        {
            "type": "use_backend",
            "action_use_backend": {
                "backend": "example-backend-2"
            }
        }
    ],
    "created_at": "2021-12-07T13:58:30.817272Z",
    "matchers": [
        {
            "type": "path",
            "match_path": {
                "method": "exact",
                "value": "/app"
            }
        }
    ],
    "name": "example-rule-1",
    "priority": 100,
    "updated_at": "2022-02-11T17:33:08.490581Z"
}

Replace rule

Replaces existing rule by given {service_uuid}, {frontend_name} and {rule_name}.

PUT /1.3/load-balancer/{service_uuid}/frontends/{frontend_name}/rules/{rule_name} HTTP/1.1
{
    "name": "example-rule-1",
    "priority": 100,
    "matchers": [
        {
            "type": "path",
            "match_path": {
                "method": "exact",
                "value": "/app"
            }
        }
    ],
    "actions": [
        {
            "type": "use_backend",
            "action_use_backend": {
                "backend": "example-backend-2"
            }
        }
    ]
}

Attributes

Attribute Accepted value Required Description
name 1-64 characters, regexp pattern ^[a-zA-Z0-9_-]+$ yes The name of the rule must be unique within customer service.
priority 0-100 yes Rule with the higher priority goes first. Rules with the same priority processed in alphabetical order.
matchers An array of 0-40 matcher objects yes Set of rule matchers.
actions An array of 1-40 action objects yes Set of rule actions.

Normal response

HTTP/1.1 200 OK

Error response

HTTP status Error code Description
402 Payment required INSUFFICIENT_CREDITS Customer account does not have enough credits for the requested action.
400 Bad Request INVALID_REQUEST Validation error.
404 Not Found RESOURCE_NOT_FOUND Resource not found.

Modify rule

Modifies existing rule by given {service_uuid}, {frontend_name} and {rule_name}.

Request

PATCH /1.3/load-balancer/{service_uuid}/frontends/{frontend_name}/rules/{rule_name} HTTP/1.1
{
    "name": "example-rule-1",
    "priority": 100,
    "matchers": [
        {
            "type": "path",
            "match_path": {
                "method": "exact",
                "value": "/new-path"
            }
        }
    ]
}

Attributes

Attribute Accepted value Required Description
name 1-64 characters, regexp pattern ^[a-zA-Z0-9_-]+$ no The name of the rule must be unique within customer service.
priority 0-100 no Rule with the higher priority goes first. Rules with the same priority processed in alphabetical order.
matchers An array of 0-40 matcher objects / null no Set of rule matchers.
actions An array of 1-40 action objects / null no Set of rule actions.

Normal response

HTTP/1.1 200 OK

Error response

HTTP status Error code Description
402 Payment required INSUFFICIENT_CREDITS Customer account does not have enough credits for the requested action.
400 Bad Request INVALID_REQUEST Validation error.
404 Not Found RESOURCE_NOT_FOUND Resource not found.

Delete rule

Deletes existing rule by given {service_uuid}, {frontend_name} and {rule_name}.

Request

DELETE /1.3/load-balancer/{service_uuid}/frontends/{frontend_name}/rules/{rule_name} HTTP/1.1

Normal response

HTTP/1.1 204 No Content

Error response

HTTP status Error code Description
404 Not Found RESOURCE_NOT_FOUND Resource not found.

Create backend

Creates a new backend by given {service_uuid}.

POST /1.3/load-balancer/{service_uuid}/backends HTTP/1.1
{
    "name": "example-backend-2",
    "resolver": "example-resolver",
    "members": [
        {
            "name": "member1.example.com",
            "port": 8000,
            "type": "dynamic",
            "max_sessions": 1000,
            "weight": 100,
            "enabled": true
        },
        {
            "name": "member2.example.com",
            "port": 8000,
            "type": "dynamic",
            "max_sessions": 1000,
            "weight": 100,
            "enabled": true
        }
    ],
    "properties": {
        "timeout_server": 30,
        "timeout_tunnel": 3600,
        "health_check_type": "tcp",
        "health_check_on_down": "",
        "health_check_interval": 20,
        "health_check_fall": 3,
        "health_check_rise": 3,
        "sticky_session_cookie_name": "SERVERID",
        "outbound_proxy_protocol": "v2",
        "tls_enabled": true,
        "tls_verify": true,
        "tls_use_system_ca": false
    },
    "tls_configs": [
        {
            "certificate_bundle_uuid": "0aded5c1-c7a3-498a-b9c8-a871611c47a2",
            "name": "example-tls-config"
        }
    ]
}

Attributes

Attribute Accepted value Required Description
name 1-64 characters, regexp pattern ^[a-zA-Z0-9_-]+$ yes The name of the backend must be unique within the service.
resolver A valid resolver identifier, e.g. example-resolver no Domain Name Resolver used with dynamic type members.
members An array of 0-100 member objects yes Group of target servers in the customer private network.
properties Properties object no Embedded Backend properties.
tls_configs An array of 0-100 TLS configs / null no Set of TLS configs. Only TLS configs with the certificate bundle of type authority/manual can be attached to the backend.

Normal response

HTTP/1.1 201 Created

Error response

HTTP status Error code Description
402 Payment required INSUFFICIENT_CREDITS Customer account does not have enough credits for the requested action.
400 Bad Request INVALID_REQUEST Validation error.

List backends

Returns a list of available service backends by given {service_uuid}.

Request

GET /1.3/load-balancer/{service_uuid}/backends HTTP/1.1

Normal response

HTTP/1.1 200 OK
[
    {
        "created_at": "2021-12-07T13:58:30.817272Z",
        "members": [
            {
                "created_at": "2022-02-11T16:39:55.321306Z",
                "enabled": true,
                "ip": "",
                "max_sessions": 1000,
                "name": "member.example.com",
                "port": 8000,
                "type": "dynamic",
                "updated_at": "2022-02-11T17:33:08.490581Z",
                "weight": 100
            }
        ],
        "name": "example-backend-2",
        "properties": {
            "health_check_expected_status": 200,
            "health_check_fall": 3,
            "health_check_interval": 10,
            "health_check_rise": 3,
            "health_check_tls_verify": false,
            "health_check_type": "http",
            "health_check_on_down": "",
            "health_check_url": "/",
            "sticky_session_cookie_name": "",
            "timeout_server": 10,
            "timeout_tunnel": 3600,
            "tls_enabled": true,
            "tls_verify": false,
            "tls_use_system_ca": true
        },
        "resolver": "dns",
        "tls_configs": [],
        "updated_at": "2022-02-11T17:33:08.490581Z"
    },
    {
        "created_at": "2021-12-07T13:58:30.817272Z",
        "members": [
            {
                "created_at": "2021-12-07T13:58:30.817272Z",
                "enabled": true,
                "ip": "172.16.1.4",
                "max_sessions": 1000,
                "name": "example-member-1",
                "port": 8000,
                "type": "static",
                "updated_at": "2022-02-11T17:33:08.490581Z",
                "weight": 100
            }
        ],
        "name": "example-backend-1",
        "properties": {
            "health_check_expected_status": 200,
            "health_check_fall": 3,
            "health_check_interval": 10,
            "health_check_rise": 3,
            "health_check_tls_verify": false,
            "health_check_type": "http",
            "health_check_on_down": "",
            "health_check_url": "/",
            "sticky_session_cookie_name": "",
            "timeout_server": 10,
            "timeout_tunnel": 3600,
            "tls_enabled": false,
            "tls_verify": false,
            "tls_use_system_ca": false
        },
        "resolver": "",
        "tls_configs": [],
        "updated_at": "2022-02-11T17:33:08.490581Z"
    }
]

Get backend details

Returns service backend details by given {service_uuid} and {backend_name}.

Request

GET /1.3/load-balancer/{service_uuid}/backends/{backend_name} HTTP/1.1

Normal response

HTTP/1.1 200 OK
{
    "created_at": "2021-12-07T13:58:30.817272Z",
    "members": [
        {
            "created_at": "2021-12-07T13:58:30.817272Z",
            "enabled": true,
            "ip": "172.16.1.4",
            "max_sessions": 1000,
            "name": "example-member-1",
            "port": 8000,
            "type": "static",
            "updated_at": "2022-02-11T17:33:08.490581Z",
            "weight": 100
        }
    ],
    "name": "example-backend-1",
    "properties": {
        "health_check_expected_status": 200,
        "health_check_fall": 3,
        "health_check_interval": 10,
        "health_check_rise": 3,
        "health_check_tls_verify": false,
        "health_check_type": "http",
        "health_check_on_down": "",
        "health_check_url": "/health",
        "sticky_session_cookie_name": "",
        "timeout_server": 10,
        "timeout_tunnel": 3600,
        "tls_enabled": false,
        "tls_verify": false,
        "tls_use_system_ca": false
    },
    "resolver": "dns",
    "tls_configs": [
        {
            "certificate_bundle_uuid": "0a98ddbf-29e3-408c-b081-278a67101f76",
            "created_at": "2023-07-28T08:01:11.729382Z",
            "name": "ca",
            "updated_at": "2023-07-28T08:26:30.436412Z"
        }
    ],
    "updated_at": "2022-02-11T17:33:08.490581Z"
}

Modify backend

Modifies existing backend by given {service_uuid} and {backend_name}.

Request

PATCH /1.3/load-balancer/{service_uuid}/backends/{backend_name} HTTP/1.1
{
    "name": "example-backend-2",
    "resolver": "example-resolver",
    "tls_configs": [],
    "properties": {
        "timeout_server": 30,
        "timeout_tunnel": 3600,
        "health_check_type": "http",
        "health_check_on_down": "",
        "health_check_interval": 20,
        "health_check_fall": 3,
        "health_check_rise": 2,
        "health_check_tls_verify": false,
        "health_check_url": "/health",
        "health_check_expected_status": 200,
        "sticky_session_cookie_name": "SERVERID",
        "outbound_proxy_protocol": "v1",
        "tls_enabled": false,
        "tls_verify": false,
        "tls_use_system_ca": false
    }
}

Attributes

Attribute Accepted value Required Description
name 1-64 characters, regexp pattern ^[a-zA-Z0-9_-]+$ no The name of the backend must be unique within the service.
resolver A valid resolver identifier, e.g. example-resolver / null no Domain Name Resolver used with dynamic type members.
members An array of 0-100 member objects / null no Group of target servers in the customer private network.
properties Properties object no Embedded Backend properties.
tls_configs An array of 0-100 TLS configs / null no Set of TLS configs. Only TLS configs with the certificate bundle of type authority/manual can be attached to the backend.

Normal response

HTTP/1.1 200 OK

Error response

HTTP status Error code Description
402 Payment required INSUFFICIENT_CREDITS Customer account does not have enough credits for the requested action.
400 Bad Request INVALID_REQUEST Validation error.
404 Not Found RESOURCE_NOT_FOUND Resource not found.

Delete backend

Deletes existing backend by given {service_uuid} and {backend_name}.

Request

DELETE /1.3/load-balancer/{service_uuid}/backends/{backend_name} HTTP/1.1

Normal response

HTTP/1.1 204 No Content

Error response

HTTP status Error code Description
404 Not Found RESOURCE_NOT_FOUND Resource not found.

Create static member

Creates a new member by given {service_uuid} and {backend_name}.

POST /1.3/load-balancer/{service_uuid}/backends/{backend_name}/members HTTP/1.1
{
    "name": "example-member-1",
    "ip": "172.16.1.4",
    "port": 8000,
    "type": "static",
    "weight": 100,
    "max_sessions": 1000,
    "enabled": true
}

Attributes

Attribute Accepted value Required Description
name 1-254 characters yes The name of the member must be unique within the backend.
type static yes Member type.
ip IPv4 / IPv6 address yes Server IP address in the customer private network. Note that load balancer members can reside in private networks directly attached to the load balancer or networks reachable via an SDN Virtual Router in those networks.
port 1-65535 yes Server port.
weight 0-100 yes Used to adjust the member's weight relative to other members. All members will receive a load proportional to their weight relative to the sum of all weights, so the higher the weight, the higher the load. A value of 0 means the member will not participate in load balancing but will still accept persistent connections.
max_sessions 0-500000 yes Maximum number of sessions before queueing.
enabled true / false yes Indicates if the member is enabled. Disabled members are excluded from load balancing.

Normal response

HTTP/1.1 201 Created

Error response

HTTP status Error code Description
402 Payment required INSUFFICIENT_CREDITS Customer account does not have enough credits for the requested action.
400 Bad Request INVALID_REQUEST Validation error.

Create dynamic member

Creates a new member by given {service_uuid} and {backend_name}.

POST /1.3/load-balancer/{service_uuid}/backends/{backend_name}/members HTTP/1.1
{
    "name": "member1.example.com",
    "type": "dynamic",
    "weight": 100,
    "max_sessions": 1000,
    "enabled": true
}

Attributes

Attribute Accepted value Required Description
name 1-254 characters yes Fully qualified domain name of the member must be unique within backend. Note that load balancer members can reside in private networks directly attached to the load balancer or networks reachable via an SDN Virtual Router in those networks.
type dynamic yes Member type.
ip IPv4 / IPv6 address no Optional fallback IP address in case of failure on DNS resolving.
port 1-65535 no Port is optional and can be specified in DNS SRV record.
weight 0-100 yes Used to adjust the member's weight relative to other members. All members will receive a load proportional to their weight relative to the sum of all weights, so the higher the weight, the higher the load. A value of 0 means the member will not participate in load balancing but will still accept persistent connections.
max_sessions 0-500000 yes Maximum number of sessions before queueing.
enabled true / false yes Indicates if the member is enabled. Disabled members are excluded from load balancing.

Normal response

HTTP/1.1 201 Created

Error response

HTTP status Error code Description
402 Payment required INSUFFICIENT_CREDITS Customer account does not have enough credits for the requested action.
400 Bad Request INVALID_REQUEST Validation error.

List members

Returns a list of available backend members by given {service_uuid} and {backend_name}.

Request

GET /1.3/load-balancer/{service_uuid}/backends/{backend_name}/members HTTP/1.1

Normal response

HTTP/1.1 200 OK
[
    {
        "created_at": "2022-02-11T16:39:55.321306Z",
        "enabled": true,
        "ip": "",
        "max_sessions": 1000,
        "name": "member.example.com",
        "port": 8000,
        "type": "dynamic",
        "updated_at": "2022-02-11T17:33:08.490581Z",
        "weight": 100
    },
    {
        "created_at": "2021-12-07T13:58:30.817272Z",
        "enabled": true,
        "ip": "172.16.1.4",
        "max_sessions": 1000,
        "name": "example-member-1",
        "port": 8000,
        "type": "static",
        "updated_at": "2022-02-11T17:33:08.490581Z",
        "weight": 100
    }
]

Get member details

Returns backend member details by given {service_uuid}, {backend_name} and {member_name}.

Request

GET /1.3/load-balancer/{service_uuid}/backends/{backend_name}/members/{member_name} HTTP/1.1

Normal response

HTTP/1.1 200 OK
{
    "created_at": "2021-12-07T13:58:30.817272Z",
    "enabled": true,
    "ip": "172.16.1.4",
    "max_sessions": 1000,
    "name": "example-member-1",
    "port": 8000,
    "type": "static",
    "updated_at": "2022-02-11T17:33:08.490581Z",
    "weight": 100
}

Modify static member

Modifies existing member by given {service_uuid}, {backend_name} and {member_name}.

Request

PATCH /1.3/load-balancer/{service_uuid}/backends/{backend_name}/members/{member_name} HTTP/1.1
{
    "name": "example-member-1",
    "ip": "172.16.1.4",
    "port": 8000,
    "type": "static",
    "weight": 100,
    "max_sessions": 1000,
    "enabled": true
}

Attributes

Attribute Accepted value Required Description
name 1-254 characters no The name of the member must be unique within backend.
type static no Member type.
ip IPv4 / IPv6 address no Server IP address in the customer private network. Note that load balancer members can reside in private networks directly attached to the load balancer or networks reachable via an SDN Virtual Router in those networks.
port 1-65535 no Server port.
weight 0-100 no Used to adjust the server's weight relative to other servers. All servers will receive a load proportional to their weight relative to the sum of all weights, so the higher the weight, the higher the load. A value of 0 means the server will not participate in load balancing but will still accept persistent connections.
max_sessions 0-500000 no Maximum number of sessions before queueing.
enabled true / false no Indicates if the member is enabled. Disabled members are excluded from load balancing.

Normal response

HTTP/1.1 200 OK

Modify dynamic member

Modifies existing member by given {service_uuid}, {backend_name} and {member_name}.

Request

PATCH /1.3/load-balancer/{service_uuid}/backends/{backend_name}/members/{member_name} HTTP/1.1
{
    "name": "member1.example.com",
    "type": "dynamic",
    "weight": 100,
    "max_sessions": 1000,
    "enabled": true
}

Attributes

Attribute Accepted value Required Description
name 1-254 characters no Fully qualified domain name of the member must be unique within backend. Note that load balancer members can reside in private networks directly attached to the load balancer or networks reachable via an SDN Virtual Router in those networks.
type dynamic no Member type.
ip IPv4 / IPv6 address no Optional fallback IP address in case of failure on DNS resolving.
port 1-65535 no Port is optional and can be specified in DNS SRV record.
weight 0-100 no Used to adjust the server's weight relative to other servers. All servers will receive a load proportional to their weight relative to the sum of all weights, so the higher the weight, the higher the load. A value of 0 means the server will not participate in load balancing but will still accept persistent connections.
max_sessions 0-500000 no Maximum number of sessions before queueing.
enabled true / false no Indicates if the member is enabled. Disabled members are excluded from load balancing.

Normal response

HTTP/1.1 200 OK

Delete member

Deletes existing member by given {service_uuid}, {backend_name} and {member_name}.

Request

DELETE /1.3/load-balancer/{service_uuid}/backends/{backend_name}/members/{member_name} HTTP/1.1

Normal response

HTTP/1.1 204 No Content

Error response

HTTP status Error code Description
404 Not Found RESOURCE_NOT_FOUND Resource not found.

Create Backend TLS config

Creates a new TLS config by given {service_uuid} and {backend_name}.

Request

POST /1.3/load-balancer/{service_uuid}/backends/{backend_name}/tls-configs HTTP/1.1
{
    "name": "example-tls-config",
    "certificate_bundle_uuid": "0aded5c1-c7a3-498a-b9c8-a871611c47a2"
}

Notes:

  • TLS config with certificate bundle of type authority used for backend member verification.
  • Only one TLS config with certificate bundle of type manual can be attached to the backend. It used for client authentication on a backend member server.

Attributes

Attribute Accepted value Required Description
name 1-64 characters, regexp pattern ^[a-zA-Z0-9_-]+$ yes The name of the TLS config must be unique within service backend.
certificate_bundle_uuid A valid certificate bundle identifier in UUID format yes Reference to certificate bundle. Certificate bundles of types authotity or manual can be attached to backend tls config.

Normal response

HTTP/1.1 201 Created

Error response

HTTP status Error code Description
402 Payment required INSUFFICIENT_CREDITS Customer account does not have enough credits for the requested action.
400 Bad Request INVALID_REQUEST Validation error.

List Backend TLS configs

Returns a list of available backend TLS Config by given {service_uuid} and {backend_name}.

Request

GET /1.3/load-balancer/{service_uuid}/backends/{backend_name}/tls-configs HTTP/1.1

Normal response

HTTP/1.1 200 OK
[
    {
        "certificate_bundle_uuid": "0aded5c1-c7a3-498a-b9c8-a871611c47a2",
        "created_at": "2022-02-11T17:33:08.490581Z",
        "name": "example-tls-config-1",
        "updated_at": "2022-02-11T17:33:08.490581Z"
    },
    {
        "certificate_bundle_uuid": "c136c429-d18f-4192-b55e-e7b5079dee40",
        "created_at": "2021-11-11T11:21:51.121789Z",
        "name": "example-tls-config-2",
        "updated_at": "2021-11-11T11:21:51.121789Z"
    }
]

Get Backend TLS config details

Returns backend TLS config details by given {service_uuid}, {backend_name} and {tls_config_name}.

Request

GET /1.3/load-balancer/{service_uuid}/backends/{backend_name}/tls-configs/{tls_config_name} HTTP/1.1

Normal response

HTTP/1.1 200 OK
{
    "certificate_bundle_uuid": "0aded5c1-c7a3-498a-b9c8-a871611c47a2",
    "created_at": "2022-02-11T17:33:08.490581Z",
    "name": "example-tls-config",
    "updated_at": "2022-02-11T17:33:08.490581Z"
}

Modify Backend TLS config

Modifies existing TLS config by given {service_uuid}, {backend_name} and {tls_config_name}.

Request

PATCH /1.3/load-balancer/{service_uuid}/backends/{backend_name}/tls-configs/{tls_config_name} HTTP/1.1
{
    "name": "example-tls-config",
    "certificate_bundle_uuid": "0aded5c1-c7a3-498a-b9c8-a871611c47a2"
}

Attributes

Attribute Accepted value Required Description
name 1-64 characters, regexp pattern ^[a-zA-Z0-9_-]+$ no The name of the TLS config must be unique within service backend.
certificate_bundle_uuid A valid certificate bundle identifier in UUID format no Reference to certificate bundle. Certificate bundles of type manual or authority can be attached to backend tls config.

Normal response

HTTP/1.1 200 OK

Error response

HTTP status Error code Description
402 Payment required INSUFFICIENT_CREDITS Customer account does not have enough credits for the requested action.
400 Bad Request INVALID_REQUEST Validation error.
404 Not Found RESOURCE_NOT_FOUND Resource not found.

Delete Backend TLS config

Deletes existing TLS config by given {service_uuid}, {backend_name} and {tls_config_name}.

Request

DELETE /1.3/load-balancer/{service_uuid}/backends/{backend_name}/tls-configs/{tls_config_name} HTTP/1.1

Normal response

HTTP/1.1 204 No Content

Error response

HTTP status Error code Description
404 Not Found RESOURCE_NOT_FOUND Resource not found.

Create resolver

Creates a new resolver by given {service_uuid}.

Resolver is a DNS server usually residing in a user's private network. It's used to resolve IPs for backend members of type dynamic.

POST /1.3/load-balancer/{service_uuid}/resolvers HTTP/1.1
{
    "name": "example-resolver",
    "nameservers": [
        "172.16.1.4:53"
    ],
    "retries": 5,
    "timeout": 30,
    "timeout_retry": 10,
    "cache_valid": 180,
    "cache_invalid": 10
}

Attributes

Attribute Accepted value Required Description
name 1-64 characters, regexp pattern ^[a-zA-Z0-9_-]+$ yes The name of the resolver must be unique within the service.
nameservers An array of 1-10 nameserver IP addresses, e.g. ["172.16.1.4:53", ...] yes Nameserver can reside in public internet or in customer private network. Port is optional, if missing then default 53 will be used.
retries 1-10 yes Number of retries on failure.
timeout 1-60 yes Timeout for the query in seconds.
timeout_retry 1-60 yes Timeout for the query retries in seconds.
cache_valid 1-86400 yes Time in seconds to cache valid results.
cache_invalid 1-86400 yes Time in seconds to cache invalid results.

Normal response

HTTP/1.1 201 Created

Error response

HTTP status Error code Description
402 Payment required INSUFFICIENT_CREDITS Customer account does not have enough credits for the requested action.
400 Bad Request INVALID_REQUEST Validation error.

List resolvers

Returns a list of available service domain name resolvers by given {service_uuid}.

Request

GET /1.3/load-balancer/{service_uuid}/resolvers HTTP/1.1

Normal response

HTTP/1.1 200 OK
[
    {
        "cache_invalid": 30,
        "cache_valid": 180,
        "created_at": "2022-02-11T16:39:55.321306Z",
        "name": "example-resolver",
        "nameservers": [
            "172.16.1.250"
        ],
        "retries": 5,
        "timeout": 30,
        "timeout_retry": 10,
        "updated_at": "2022-02-11T17:33:08.490581Z"
    }
]

Get resolver details

Returns backend resolver details by given {service_uuid} and {resolver_name}.

Request

GET /1.3/load-balancer/{service_uuid}/resolvers/{resolver_name} HTTP/1.1

Normal response

HTTP/1.1 200 OK
{
    "cache_invalid": 30,
    "cache_valid": 180,
    "created_at": "2022-02-11T16:39:55.321306Z",
    "name": "example-resolver",
    "nameservers": [
        "172.16.1.250"
    ],
    "retries": 5,
    "timeout": 30,
    "timeout_retry": 10,
    "updated_at": "2022-02-11T17:33:08.490581Z"
}

Modify resolver

Modifies existing resolver by given {service_uuid} and {resolver_name}.

Request

PATCH /1.3/load-balancer/{service_uuid}/resolvers/{resolver_name} HTTP/1.1
{
    "name": "example-resolver",
    "nameservers": [
        "172.16.1.4:53"
    ],
    "retries": 5,
    "timeout": 30,
    "timeout_retry": 10,
    "cache_valid": 180,
    "cache_invalid": 10
}

Attributes

Attribute Accepted value Required Description
name 1-64 characters, regexp pattern ^[a-zA-Z0-9_-]+$ no The name of the resolver must be unique within the service.
nameservers An array of 1-10 nameserver IP addresses, e.g. ["172.16.1.4:53", ...] no Nameserver can reside in public internet or in customer private network. Port is optional, if missing then default 53 will be used.
retries 1-10 no Number of retries on failure.
timeout 1-60 no Timeout for the query in seconds.
timeout_retry 1-60 no Timeout for the query retries in seconds.
cache_valid 1-86400 no Time in seconds to cache valid results.
cache_invalid 1-86400 no Time in seconds to cache invalid results.

Normal response

HTTP/1.1 200 OK

Delete resolver

Deletes existing resolver by given {service_uuid} and {resolver_name}.

Request

DELETE /1.3/load-balancer/{service_uuid}/resolvers/{resolver_name} HTTP/1.1

Normal response

HTTP/1.1 204 No Content

Error response

HTTP status Error code Description
404 Not Found RESOURCE_NOT_FOUND Resource not found.

Create service label

Creates a new label by given {service_uuid}.

Labels used for service filtering.

Service labels usage examples

Below are some examples of what certain GET requests might look like.

  • exact match: GET /1.3/load-balancer?label=env%3Dstaging
  • existence: GET /1.3/load-balancer?label=env
  • multiple: GET /1.3/load-balancer?label=env&label=foo%3Dbar
POST /1.3/load-balancer/{service_uuid}/labels HTTP/1.1
{
    "key": "foo",
    "value": "bar"
}

Attributes

Attribute Accepted value Required Description
key 2-32 characters, regexp pattern ^([a-zA-Z0-9])+([a-zA-Z0-9_-])*$ yes Represents the label identifier. The key is unique within a service.
value 0-255 characters, regexp pattern \A[\p{L}\p{N}\p{P}\p{S}\p{M}\p{Z}]*\z yes Represents the label value.

Normal response

HTTP/1.1 201 Created

Error response

HTTP status Error code Description
402 Payment required INSUFFICIENT_CREDITS Customer account does not have enough credits for the requested action.
400 Bad Request INVALID_REQUEST Validation error.

List service labels

Returns a list of available service labels by given {service_uuid}.

Request

GET /1.3/load-balancer/{service_uuid}/labels HTTP/1.1

Normal response

HTTP/1.1 200 OK
[
    {
        "key": "env",
        "value": "staging"
    },
    {
        "key": "foo",
        "value": "bar"
    }
]

Get service label details

Returns label details by given {service_uuid} and {key}.

Request

GET /1.3/load-balancer/{service_uuid}/labels/{key} HTTP/1.1

Normal response

HTTP/1.1 200 OK
{
    "key": "env",
    "value": "staging"  
}

Modify service label

Modifies existing label by given {service_uuid} and {key}.

Request

PATCH /1.3/load-balancer/{service_uuid}/labels/{key} HTTP/1.1
{
    "key": "env",
    "value": "production"
}

Attributes

Attribute Accepted value Required Description
key 2-32 characters, regexp pattern ^([a-zA-Z0-9])+([a-zA-Z0-9_-])*$ no Represents the label identifier. The key is unique within a service.
value 0-255 characters, regexp pattern \A[\p{L}\p{N}\p{P}\p{S}\p{M}\p{Z}]*\z / null no Represents the label value.

Normal response

HTTP/1.1 200 OK

Delete service label

Deletes existing label by given {service_uuid} and {key}.

Request

DELETE /1.3/load-balancer/{service_uuid}/labels/{key} HTTP/1.1

Normal response

HTTP/1.1 204 No Content

Error response

HTTP status Error code Description
404 Not Found RESOURCE_NOT_FOUND Resource not found.

Get metrics

Returns metrics by given {service_uuid}.

Request

GET /1.3/load-balancer/{service_uuid}/metrics HTTP/1.1

Normal response

HTTP/1.1 200 OK
{
    "backends": [
        {
            "avg_connection_time_ms": 2,
            "avg_queue_time_ms": 0,
            "avg_server_response_time_ms": 71,
            "avg_total_time_ms": 71,
            "connections_waiting": 0,
            "created_at": "2022-06-17T14:18:02.846435Z",
            "current_sessions": 115,
            "members": [
                {
                    "avg_connection_time_ms": 1,
                    "avg_queue_time_ms": 0,
                    "avg_server_response_time_ms": 70,
                    "avg_total_time_ms": 70,
                    "check_http_code": 200,
                    "check_status": "http_ok",
                    "connections_waiting": 0,
                    "created_at": "2022-06-17T14:18:02.857216Z",
                    "current_sessions": 65,
                    "name": "example-member-1",
                    "session_rate": 51,
                    "status": "up",
                    "total_client_aborted": 0,
                    "total_failed_checks": 0,
                    "total_failed_checks_transitions": 0,
                    "total_failed_connections": 0,
                    "total_http_responses_1xx": 0,
                    "total_http_responses_2xx": 29471,
                    "total_http_responses_3xx": 0,
                    "total_http_responses_4xx": 0,
                    "total_http_responses_5xx": 0,
                    "total_http_responses_other": 0,
                    "total_invalid_responses": 0,
                    "total_request_bytes": 2505205,
                    "total_response_bytes": 4951464,
                    "total_server_aborted": 0,
                    "total_server_connection_retries": 0,
                    "total_sessions": 29471,
                    "updated_at": "2022-06-29T12:26:34.884371Z"
                },
                {
                    "avg_connection_time_ms": 2,
                    "avg_queue_time_ms": 0,
                    "avg_server_response_time_ms": 72,
                    "avg_total_time_ms": 73,
                    "check_http_code": 200,
                    "check_status": "http_ok",
                    "connections_waiting": 0,
                    "created_at": "2022-06-17T14:18:02.857243Z",
                    "current_sessions": 50,
                    "name": "example-member-2",
                    "session_rate": 49,
                    "status": "up",
                    "total_client_aborted": 0,
                    "total_failed_checks": 0,
                    "total_failed_checks_transitions": 0,
                    "total_failed_connections": 0,
                    "total_http_responses_1xx": 0,
                    "total_http_responses_2xx": 29473,
                    "total_http_responses_3xx": 0,
                    "total_http_responses_4xx": 1,
                    "total_http_responses_5xx": 5,
                    "total_http_responses_other": 0,
                    "total_invalid_responses": 0,
                    "total_request_bytes": 2505715,
                    "total_response_bytes": 4952978,
                    "total_server_aborted": 0,
                    "total_server_connection_retries": 0,
                    "total_sessions": 29479,
                    "updated_at": "2022-06-29T12:26:34.884361Z"
                }
            ],
            "name": "example-backend-1",
            "session_rate": 98,
            "total_client_aborted": 0,
            "total_failed_checks_transitions": 0,
            "total_failed_connections": 0,
            "total_http_responses_1xx": 0,
            "total_http_responses_2xx": 58942,
            "total_http_responses_3xx": 0,
            "total_http_responses_4xx": 1,
            "total_http_responses_5xx": 7,
            "total_http_responses_other": 0,
            "total_invalid_responses": 0,
            "total_request_bytes": 5010750,
            "total_response_bytes": 9904106,
            "total_server_aborted": 0,
            "total_server_connection_retries": 0,
            "total_sessions": 58951,
            "updated_at": "2022-06-29T12:26:34.886954Z"
        }
    ],
    "frontends": [
        {
            "created_at": "2022-06-17T14:18:02.824071Z",
            "current_sessions": 115,
            "name": "example-frontend-1",
            "request_rate": 322,
            "session_rate": 98,
            "total_denied_requests": 16,
            "total_http_requests": 58963,
            "total_http_responses_1xx": 0,
            "total_http_responses_2xx": 58942,
            "total_http_responses_3xx": 0,
            "total_http_responses_4xx": 3,
            "total_http_responses_5xx": 7,
            "total_http_responses_other": 10,
            "total_invalid_requests": 0,
            "total_request_bytes": 5012102,
            "total_response_bytes": 9904500,
            "total_sessions": 58967,
            "updated_at": "2022-06-29T12:26:34.867576Z"
        }
    ]
}

Attributes

Attribute Value Object Description
name 1-64 characters frontend / backend / member The Name of the object.
avg_connection_time_ms >= 0 backend / member The average connect time in ms over the 1024 last requests.
avg_queue_time_ms >= 0 backend / member The average queue time in ms over the 1024 last requests.
avg_server_response_time_ms >= 0 backend / member The average response time in ms over the 1024 last requests.
avg_total_time_ms >= 0 backend / member Total request+response time in ms, averaged over the 1024 last requests.
status up / down / maintenance member Current member state.
check_http_code 100-599 member HTTP Status Code of last health check of type http (see backend properties).
check_status unknown / initializing / socket_error / tcp_ok / tcp_timeout / tcp_connection_error / tls_ok / tls_timeout / tls_protocol_error / http_ok / http_timeout / http_protocol_error / http_response_error member Status of last health check.
connections_waiting >= 0 backend / member Current number of connections waiting in the queue.
current_sessions >= 0 frontend / backend / member Current number of sessions on the frontend, backend or member.
request_rate >= 0 frontend HTTP requests per second over last elapsed second.
session_rate >= 0 frontend / backend / member Total number of sessions per second over last elapsed second.
total_client_aborted >= 0 backend / member Total number of requests or connections aborted by the client.
total_failed_checks >= 0 member Total number of failed health checks.
total_failed_checks_transitions >= 0 backend / member Total number of failed health checks causing up to down member transitions.
total_failed_connections >= 0 backend / member Total number of failed connections to member.
total_http_responses_1xx >= 0 frontend / backend / member Total number of HTTP responses with status 100-199.
total_http_responses_2xx >= 0 frontend / backend / member Total number of HTTP responses with status 200-299.
total_http_responses_3xx >= 0 frontend / backend / member Total number of HTTP responses with status 300-399.
total_http_responses_4xx >= 0 frontend / backend / member Total number of HTTP responses with status 400-499.
total_http_responses_5xx >= 0 frontend / backend / member Total number of HTTP responses with status 500-599.
total_http_responses_other >= 0 frontend / backend / member Total number of HTTP responses with status <100, >599.
total_invalid_requests >= 0 frontend Total number of invalid requests.
total_invalid_responses >= 0 backend / member Total number of invalid responses.
total_request_bytes >= 0 frontend / backend / member Total number of request bytes.
total_response_bytes >= 0 frontend / backend / member Total number of response bytes.
total_server_aborted >= 0 backend / member Total number of requests or connections aborted by the server.
total_server_connection_retries >= 0 backend / member Total number of server connection retries.
total_sessions >= 0 frontend / backend / member Total number of sessions.
total_http_requests >= 0 frontend Total number of HTTP requests.
total_denied_requests >= 0 frontend Total number of denied requests.
created_at datetime frontend / backend / member Date and time when first metrics sample collected.
updated_at datetime frontend / backend / member Date and time when latest metrics sample collected.

Get frontend metric series

Returns the frontend metric series via the given {service_uuid}, and {frontend_name}.

Request

GET /1.3/load-balancer/{service_uuid}/metrics/series/frontends/{frontend_name} HTTP/1.1

Query Parameters

Attribute Accepted Values Constraints Default Value Required Description
interval Time formats: m, h, mh. Examples: 5m, 1h, 1h10m. Min: 1min, Max: 24hr, and rounded to the nearest minute. 10m no Metrics aggregation interval.
to Example: 2024-02-07T07:20:00Z, Format: (ISO 8601) Must be greater than from current time no End of the time range for which to return metrics.
from Example: 2024-02-06T07:20:00Z, Format: (ISO 8601) Must be less than to 24 hours ago no Beginning of the time range for which to return metrics.
sort start_at, or -start_at Must only be: start_at, or -start_at start_at no Metric sort order.

Error response

Http status Accepted Values Default Value
400 Bad Request INVALID_REQUEST Validation error.

Normal response

HTTP/1.1 200 OK
[
  {
    "denied_connections": 0,
    "denied_requests": 0,
    "denied_responses": 0,
    "denied_sessions": 0,
    "end_at": "2024-02-06T15:00:00Z",
    "frontends": [
      "my-frontend-1"
    ],
    "http_requests": 0,
    "http_responses_1xx": 0,
    "http_responses_2xx": 0,
    "http_responses_3xx": 0,
    "http_responses_4xx": 0,
    "http_responses_5xx": 0,
    "http_responses_other": 0,
    "intercepted_requests": 0,
    "invalid_requests": 0,
    "request_bytes": 0,
    "response_bytes": 0,
    "sessions": 0,
    "start_at": "2024-02-06T14:50:00Z"
  }
]

Attributes

Attribute Value Description
denied_connections >= 0 Total number of denied connections.
denied_requests >= 0 Total number of denied requests.
denied_responses >= 0 Total number of denied responses.
denied_sessions >= 0 Total number of denied sessions.
end_at datetime Date and time when the last metrics sample was collected.
frontends An array of 0-100 frontend objects List of frontend names.
http_requests >= 0 Total number of HTTP requests.
http_responses_1xx >= 0 Total number of HTTP 1XX responses.
http_responses_2xx >= 0 Total number of HTTP 2XX responses.
http_responses_3xx >= 0 Total number of HTTP 3XX responses.
http_responses_4xx >= 0 Total number of HTTP 4XX responses.
http_responses_5xx >= 0 Total number of HTTP 5XX responses.
http_responses_other >= 0 Total number of other HTTP responses.
intercepted_requests >= 0 Total number of intercepted requests.
invalid_requests >= 0 Total number of invalid requests.
request_bytes >= 0 Total number of request bytes.
response_bytes >= 0 Total number of response bytes.
sessions >= 0 Total number of sessions.
start_at datetime Date and time when the first metrics sample was collected, formatted as RFC 3339 timestamp.

Get combined frontend metric series

Returns the combined frontend metric series by the given {service_uuid}.

Request

GET /1.3/load-balancer/{service_uuid}/metrics/series/frontends HTTP/1.1

Query Parameters

Attribute Accepted Values Constraints Default Value Required Description
interval Time formats: m, h, mh. Examples: 5m, 1h, 1h10m. Min: 1min, Max: 24hr, and rounded to the nearest minute. 10m no Metrics aggregation interval.
to Example: 2024-02-07T07:20:00Z, Format: (ISO 8601) Must be greater than from current time no End of the time range for which to return metrics.
from Example: 2024-02-06T07:20:00Z, Format: (ISO 8601) Must be less than to 24 hours ago no Beginning of the time range for which to return metrics.
sort start_at, or -start_at Must only be: start_at, or -start_at start_at no Metric sort order.

Error response

Http status Accepted Values Default Value
400 Bad Request INVALID_REQUEST Validation error.

Normal response

HTTP/1.1 200 OK
[
  {
    "denied_connections": 0,
    "denied_requests": 0,
    "denied_responses": 0,
    "denied_sessions": 0,
    "end_at": "2024-02-06T15:00:00Z",
    "frontends": [
      "my-frontend-1"
    ],
    "http_requests": 0,
    "http_responses_1xx": 0,
    "http_responses_2xx": 0,
    "http_responses_3xx": 0,
    "http_responses_4xx": 0,
    "http_responses_5xx": 0,
    "http_responses_other": 0,
    "intercepted_requests": 0,
    "invalid_requests": 0,
    "request_bytes": 0,
    "response_bytes": 0,
    "sessions": 0,
    "start_at": "2024-02-06T14:50:00Z"
  }
]

Attributes

Attribute Value Description
denied_connections >= 0 Total number of denied connections.
denied_requests >= 0 Total number of denied requests.
denied_responses >= 0 Total number of denied responses.
denied_sessions >= 0 Total number of denied sessions.
end_at datetime Date and time when the last metrics sample was collected.
frontends An array of 0-100 frontend objects List of frontend names.
http_requests >= 0 Total number of HTTP requests.
http_responses_1xx >= 0 Total number of HTTP 1XX responses.
http_responses_2xx >= 0 Total number of HTTP 2XX responses.
http_responses_3xx >= 0 Total number of HTTP 3XX responses.
http_responses_4xx >= 0 Total number of HTTP 4XX responses.
http_responses_5xx >= 0 Total number of HTTP 5XX responses.
http_responses_other >= 0 Total number of other HTTP responses.
intercepted_requests >= 0 Total number of intercepted requests.
invalid_requests >= 0 Total number of invalid requests.
request_bytes >= 0 Total number of request bytes.
response_bytes >= 0 Total number of response bytes.
sessions >= 0 Total number of sessions.
start_at datetime Date and time when the first metrics sample was collected, formatted as RFC 3339 timestamp.

Get backend metric series

Returns the backend metric series via the given {service_uuid}, and {backend_name}.

Request

GET /1.3/load-balancer/{service_uuid}/metrics/series/backends/{backend_name} HTTP/1.1

Query Parameters

Attribute Accepted Values Constraints Default Value Required Description
interval Time formats: m, h, mh. Examples: 5m, 1h, 1h10m. Min: 1min, Max: 24hr, and rounded to the nearest minute. 10m no Metrics aggregation interval.
to Example: 2024-02-07T07:20:00Z, Format: (ISO 8601) Must be greater than from current time no End of the time range for which to return metrics.
from Example: 2024-02-06T07:20:00Z, Format: (ISO 8601) Must be less than to 24 hours ago no Beginning of the time range for which to return metrics.
sort start_at, or -start_at Must only be: start_at, or -start_at start_at no Metric sort order.

Error response

Http status Accepted Values Default Value
400 Bad Request INVALID_REQUEST Validation error.

Normal response

HTTP/1.1 200 OK
[
  {
    "backends": [
      "my-backend-1"
    ],
    "client_aborted": 0,
    "denied_responses": 0,
    "downtime_s": 0,
    "end_at": "2024-02-07T07:20:00Z",
    "failed_checks_transitions": 0,
    "failed_connections": 0,
    "http_responses_1xx": 0,
    "http_responses_2xx": 2,
    "http_responses_3xx": 0,
    "http_responses_4xx": 2,
    "http_responses_5xx": 0,
    "http_responses_other": 0,
    "invalid_responses": 0,
    "request_bytes": 0,
    "response_bytes": 0,
    "routed_requests": 0,
    "server_aborted": 0,
    "server_connection_retries": 0,
    "server_redispatches": 0,
    "sessions": 0,
    "start_at": "2024-02-07T07:10:00Z"
  }
]

Attributes

Attribute Value Description
backends An array of 0-100 backend objects List of backend names.
client_aborted >= 0 Total number of client-aborted connections.
denied_responses >= 0 Total number of denied responses.
downtime_s >= 0 Total downtime in seconds.
end_at datetime Date and time when the last metrics sample was collected.
failed_checks_transitions >= 0 Total number of failed checks transitions.
failed_connections >= 0 Total number of failed connections.
http_responses_1xx >= 0 Total number of HTTP 1XX responses.
http_responses_2xx >= 0 Total number of HTTP 2XX responses.
http_responses_3xx >= 0 Total number of HTTP 3XX responses.
http_responses_4xx >= 0 Total number of HTTP 4XX responses.
http_responses_5xx >= 0 Total number of HTTP 5XX responses.
http_responses_other >= 0 Total number of other HTTP responses.
invalid_responses >= 0 Total number of invalid responses.
request_bytes >= 0 Total number of request bytes.
response_bytes >= 0 Total number of response bytes.
routed_requests >= 0 Total number of routed requests.
server_aborted >= 0 Total number of server-aborted connections.
server_connection_retries >= 0 Total number of server connection retries.
server_redispatches >= 0 Total number of server redispatches.
sessions >= 0 Total number of sessions.
start_at datetime Date and time when the first metrics sample was collected, formatted as RFC 3339 timestamp.

Get combined backend metric series

Returns the combined backend metric series by the given {service_uuid}.

Request

GET /1.3/load-balancer/{service_uuid}/metrics/series/backends HTTP/1.1

Query Parameters

Attribute Accepted Values Constraints Default Value Required Description
interval Time formats: m, h, mh. Examples: 5m, 1h, 1h10m. Min: 1min, Max: 24hr, and rounded to the nearest minute. 10m no Metrics aggregation interval.
to Example: 2024-02-07T07:20:00Z, Format: (ISO 8601) Must be greater than from current time no End of the time range for which to return metrics.
from Example: 2024-02-06T07:20:00Z, Format: (ISO 8601) Must be less than to 24 hours ago no Beginning of the time range for which to return metrics.
sort start_at, or -start_at Must only be: start_at, or -start_at start_at no Metric sort order.

Error response

Http status Accepted Values Default Value
400 Bad Request INVALID_REQUEST Validation error.

Normal response

HTTP/1.1 200 OK
[
  {
    "backends": [
      "my-backend-1"
    ],
    "client_aborted": 0,
    "denied_responses": 0,
    "downtime_s": 0,
    "end_at": "2024-02-07T07:20:00Z",
    "failed_checks_transitions": 0,
    "failed_connections": 0,
    "http_responses_1xx": 0,
    "http_responses_2xx": 2,
    "http_responses_3xx": 0,
    "http_responses_4xx": 2,
    "http_responses_5xx": 0,
    "http_responses_other": 0,
    "invalid_responses": 0,
    "request_bytes": 0,
    "response_bytes": 0,
    "routed_requests": 0,
    "server_aborted": 0,
    "server_connection_retries": 0,
    "server_redispatches": 0,
    "sessions": 0,
    "start_at": "2024-02-07T07:10:00Z"
  }
]

Attributes

Attribute Value Description
backends An array of 0-100 backend objects List of backend names.
client_aborted >= 0 Total number of client-aborted connections.
denied_responses >= 0 Total number of denied responses.
downtime_s >= 0 Total downtime in seconds.
end_at datetime Date and time when the last metrics sample was collected.
failed_checks_transitions >= 0 Total number of failed checks transitions.
failed_connections >= 0 Total number of failed connections.
http_responses_1xx >= 0 Total number of HTTP 1XX responses.
http_responses_2xx >= 0 Total number of HTTP 2XX responses.
http_responses_3xx >= 0 Total number of HTTP 3XX responses.
http_responses_4xx >= 0 Total number of HTTP 4XX responses.
http_responses_5xx >= 0 Total number of HTTP 5XX responses.
http_responses_other >= 0 Total number of other HTTP responses.
invalid_responses >= 0 Total number of invalid responses.
request_bytes >= 0 Total number of request bytes.
response_bytes >= 0 Total number of response bytes.
routed_requests >= 0 Total number of routed requests.
server_aborted >= 0 Total number of server-aborted connections.
server_connection_retries >= 0 Total number of server connection retries.
server_redispatches >= 0 Total number of server redispatches.
sessions >= 0 Total number of sessions.
start_at datetime Date and time when the first metrics sample was collected, formatted as RFC 3339 timestamp.

Get backend member metric series

Returns the backend members metric series via the given {service_uuid}, {backend_name}, and {member_name}.

Request

GET /1.3/load-balancer/{service_uuid}/metrics/series/backends/{backend_name}/members/{member_name} HTTP/1.1

Query Parameters

Attribute Accepted Values Constraints Default Value Required Description
interval Time formats: m, h, mh. Examples: 5m, 1h, 1h10m. Min: 1min, Max: 24hr, and rounded to the nearest minute. 10m no Metrics aggregation interval.
to Example: 2024-02-07T07:20:00Z, Format: (ISO 8601) Must be greater than from current time no End of the time range for which to return metrics.
from Example: 2024-02-06T07:20:00Z, Format: (ISO 8601) Must be less than to 24 hours ago no Beginning of the time range for which to return metrics.
sort start_at, or -start_at Must only be: start_at, or -start_at start_at no Metric sort order.

Error response

Http status Accepted Values Default Value
400 Bad Request INVALID_REQUEST Validation error.

Normal response

HTTP/1.1 200 OK
[
  {
    "client_aborted": 0,
    "denied_responses": 0,
    "end_at": "2024-02-13T14:30:00Z",
    "failed_checks": 0,
    "failed_checks_transitions": 0,
    "failed_connections": 0,
    "http_responses_1xx": 0,
    "http_responses_2xx": 0,
    "http_responses_3xx": 0,
    "http_responses_4xx": 0,
    "http_responses_5xx": 0,
    "http_responses_other": 0,
    "invalid_responses": 0,
    "members": [
      "terraformtest"
    ],
    "request_bytes": 0,
    "response_bytes": 0,
    "routed_requests": 0,
    "server_aborted": 0,
    "server_connection_retries": 0,
    "server_redispatches": 0,
    "sessions": 0,
    "start_at": "2024-02-13T14:20:00Z"
  }
]

Attributes

Attribute Value Description
client_aborted >= 0 Total number of client-aborted connections.
denied_responses >= 0 Total number of denied responses.
downtime_s >= 0 Total downtime in seconds.
end_at datetime Date and time when the last metrics sample was collected.
failed_checks_transitions >= 0 Total number of failed checks transitions.
failed_connections >= 0 Total number of failed connections.
http_responses_1xx >= 0 Total number of HTTP 1XX responses.
http_responses_2xx >= 0 Total number of HTTP 2XX responses.
http_responses_3xx >= 0 Total number of HTTP 3XX responses.
http_responses_4xx >= 0 Total number of HTTP 4XX responses.
http_responses_5xx >= 0 Total number of HTTP 5XX responses.
http_responses_other >= 0 Total number of other HTTP responses.
invalid_responses >= 0 Total number of invalid responses.
members An array of member names List of member names.
request_bytes >= 0 Total number of request bytes.
response_bytes >= 0 Total number of response bytes.
routed_requests >= 0 Total number of routed requests.
server_aborted >= 0 Total number of server-aborted connections.
server_connection_retries >= 0 Total number of server connection retries.
server_redispatches >= 0 Total number of server redispatches.
sessions >= 0 Total number of sessions.
start_at datetime Date and time when the first metrics sample was collected, formatted as RFC 3339 timestamp.

Get combined backend members metric series

Returns the combined backend members metric series via the given {service_uuid}, and {backend_name}.

Request

GET /1.3/load-balancer/{service_uuid}/metrics/series/backends/{backend_name}/members HTTP/1.1

Query Parameters

Attribute Accepted Values Constraints Default Value Required Description
interval Time formats: m, h, mh. Examples: 5m, 1h, 1h10m. Min: 1min, Max: 24hr, and rounded to the nearest minute. 10m no Metrics aggregation interval.
to Example: 2024-02-07T07:20:00Z, Format: (ISO 8601) Must be greater than from current time no End of the time range for which to return metrics.
from Example: 2024-02-06T07:20:00Z, Format: (ISO 8601) Must be less than to 24 hours ago no Beginning of the time range for which to return metrics.
sort start_at, or -start_at Must only be: start_at, or -start_at start_at no Metric sort order.

Error response

Http status Accepted Values Default Value
400 Bad Request INVALID_REQUEST Validation error.

Normal response

HTTP/1.1 200 OK
[
  {
    "backends": [
      "my-backend-1"
    ],
    "client_aborted": 0,
    "denied_responses": 0,
    "downtime_s": 0,
    "end_at": "2024-02-07T07:20:00Z",
    "failed_checks_transitions": 0,
    "failed_connections": 0,
    "http_responses_1xx": 0,
    "http_responses_2xx": 2,
    "http_responses_3xx": 0,
    "http_responses_4xx": 2,
    "http_responses_5xx": 0,
    "http_responses_other": 0,
    "invalid_responses": 0,
    "request_bytes": 0,
    "response_bytes": 0,
    "routed_requests": 0,
    "server_aborted": 0,
    "server_connection_retries": 0,
    "server_redispatches": 0,
    "sessions": 0,
    "start_at": "2024-02-07T07:10:00Z"
  }
]

Attributes

Attribute Value Description
client_aborted >= 0 Total number of client-aborted connections.
denied_responses >= 0 Total number of denied responses.
downtime_s >= 0 Total downtime in seconds.
end_at datetime Date and time when the last metrics sample was collected.
failed_checks_transitions >= 0 Total number of failed checks transitions.
failed_connections >= 0 Total number of failed connections.
http_responses_1xx >= 0 Total number of HTTP 1XX responses.
http_responses_2xx >= 0 Total number of HTTP 2XX responses.
http_responses_3xx >= 0 Total number of HTTP 3XX responses.
http_responses_4xx >= 0 Total number of HTTP 4XX responses.
http_responses_5xx >= 0 Total number of HTTP 5XX responses.
http_responses_other >= 0 Total number of other HTTP responses.
invalid_responses >= 0 Total number of invalid responses.
members An array of member names List of member names.
request_bytes >= 0 Total number of request bytes.
response_bytes >= 0 Total number of response bytes.
routed_requests >= 0 Total number of routed requests.
server_aborted >= 0 Total number of server-aborted connections.
server_connection_retries >= 0 Total number of server connection retries.
server_redispatches >= 0 Total number of server redispatches.
sessions >= 0 Total number of sessions.
start_at datetime Date and time when the first metrics sample was collected, formatted as RFC 3339 timestamp.

Create manual certificate bundle

Creates a new certificate bundle of manual type.

Can be used:

  • to establish TLS connection when attached to the Frontend
  • for client authentication on a backend member server when attached to the Backend
POST /1.3/load-balancer/certificate-bundles HTTP/1.1
{
    "name": "example-manual-certificate",
    "type": "manual",
    "certificate": "LS0LS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNIVENDQWNPZ0F3SUJBZ0lVSWlNbzg1cGd0b25kUmVESU1McVR4YjhncHI0d0NnWUlLb1pJemowRUF3SXcKWkRFTE1Ba0dBMVVFQmhNQ1FWVXhFekFSQmdOVkJBZ01DbE52YldVdFUzUmhkR1V4SVRBZkJnTlZCQW9NR0VsdQpkR1Z5Ym1WMElGZHBaR2RwZEhNZ1VIUjVJRXgwWkRFZE1Cc0dBMVVFQXd3VVpHVjJMblZ3YkdJdWRYQmpiRzkxClpDNWpiMjB3SGhjTk1qRXhNREl5TVRJeE1ETTJXaGNOTXpFeE1ESXdNVEl4TURNMldqQmtNUXN3Q1FZRFZRUUcKRXdKQlZURVRNQkVHQTFVRUNBd0tVMjl0WlMxVGRHRjBaVEVoTUI4R0ExVUVDZ3dZU1c1MFpYSnVaWFFnVjJsawpaMmwwY3lCUWRIa2dUSFJrTVIwd0d3WURWUVFEREJSa1pYWXVkWEJzWWk1MWNHTnNiM1ZrTG1OdmJUQlpNQk1HCkJ5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCQmpVcUgyaVNuMFV2ZkU3UDdkT0QrSDBoKytxUWpnTG9OeWQKSTFwMmkvdlJPZmhMa0hCUjIxZ2JCSUdENjllYU1WWnZ4RWNxVWlKVWYwcmxLU3FzKzIralV6QlJNQjBHQTFVZApEZ1FXQkJTYTFaU3V1NkxJczMrc2lSSUJ5MHRXL3RnamZEQWZCZ05WSFNNRUdEQVdnQlNhMVpTdXU2TElzMytzCmlSSUJ5MHRXL3RnamZEQVBCZ05WSFJNQkFmOEVCVEFEQVFIL01Bb0dDQ3FHU000OUJBTUNBMGdBTUVVQ0lRQ3IKWXA5dHc2TmVXTHZGOGwrWm9rSE9QUzUzaGc2SDM0OHNMSjEvNit4YXN3SWdWVmN6WkFDc3JyUWt3TnVBZEVCeQo5TkxJR1VrWlhqeWgwdVFCS2x4Si9Wdz0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=",
    "intermediates": "LS0tLS1CRdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJ0VENDQVZ1Z0F4SUJBZ0lSQU5wSDZzV0ZtQzErWkdnUzFMWllVZGN3Q2dZSUtvWkl6ajBFQXdJd0pERU0KTUFvR0ExVUVDaE1EWkdWMk1SUXdFZ1lEVlFRREV3dGtaWFlnVW05dmRDQkRRVEFlRncweU1URXlNRGt4TXpVMwpNREZhRncwek1URXlNRGN4TXpVM01ERmFNQ3d4RERBS0JnTlZCQW9UQTJSbGRqRWNNQm9HQTFVRUF4TVRaR1YyCklFbHVkR1Z5YldWa2FXRjBaU0JEUVRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQkswbGMzNmcKN01TaDJTaXd3MUdDUjkvL3lSODR6S1VuNml6SmdCUkpFTlBxbmNXcjQzTi8rNktJR1EraERaazhRWHZ6RmExYQp2dFloc3JEVGtnRm9EV0tqWmpCa01BNEdBMVVkRHdFQi93UUVBd0lCQmpBU0JnTlZIUk1CQWY4RUNEQUdBUUgvCkFnRUFNQjBHQTFVZERnUVdCQlRWcG44d3hraHZhYVhvajF6c0Rkcmk4eGJuSnpBZkJnTlZIU01FR0RBV2dCU2oKckgwV0pubDdUSUJtc3NESGVveENFTVZyRmpBS0JnZ3Foa2pPUFFRREFnTklBREJGQWlBa3NhUXdPMkFESGhBLwppRVR1SVY1dTlNV3hFTU5BVGlVODFIZjc0cGVhWlFJaEFLMnJDRmhVVnQxbFlzR1o3dFdjWGFHVDhyU1k2cU1YClBmK3dnUXFnNXUyVAotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==",
    "private_key": "LS0tL1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JR0hBZ0VBTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEJHMHdhd0lCQVFRZ3NQMzI2RlIxcmNwL0xybmcKNFBCT3BLRjIzSUNaM01GdGNrZFJuWkFESnRlaFJBTkNBQVFZMUtoOW9rcDlGTDN4T3orM1RnL2g5SWZ2cWtJNApDNkRjblNOYWRvdjcwVG40UzVCd1VkdFlHd1NCZyt2WG1qRldiOFJIS2xJaVZIOUs1U2txclB0dgotLS0tLUVORCBQUklWQVRFIEtFWS0tLS0tCg==",
    "labels": [
        {
            "key": "foo",
            "value": "bar"
        }
    ]
}

Attributes

Attribute Accepted value Required Description
name 1-64 characters, regexp pattern ^[a-zA-Z0-9_-]+$ yes The name of the bundle must be unique within customer account.
type manual yes Certificate bundle type.
certificate Base64 encoded string yes Certificate within base64 string must be in PEM format.
intermediates Base64 encoded string no Intermediate certificates within base64 string must be in PEM format.
private_key Base64 encoded string yes Private key within base64 string must be in PEM format.
labels An array of 0-255 labels objects no Labels used for service filtering, see labels usage

Normal response

HTTP/1.1 201 Created

Error response

HTTP status Error code Description
402 Payment required INSUFFICIENT_CREDITS Customer account does not have enough credits for the requested action.
400 Bad Request INVALID_REQUEST Validation error.

Create dynamic certificate bundle

Creates a new certificate bundle of dynamic type.

POST /1.3/load-balancer/certificate-bundles HTTP/1.1
{
    "name": "example-dynamic-certificate",
    "type": "dynamic",
    "hostnames": [
        "example.com",
        "app.example.com"
    ],
    "key_type": "rsa",
    "labels": [
        {
            "key": "foo",
            "value": "bar"
        }
    ]
}

Attributes

Attribute Accepted value Required Description
name 1-64 characters, regexp pattern ^[a-zA-Z0-9_-]+$ yes The name of the bundle must be unique within customer account.
type dynamic yes Certificate bundle type.
hostnames An array of 1-100 hostnames yes Certificate hostnames.
key_type rsa / ecdsa yes Private key type.
labels An array of 0-255 labels objects no Labels used for service filtering, see labels usage

Normal response

HTTP/1.1 201 Created

Error response

HTTP status Error code Description
402 Payment required INSUFFICIENT_CREDITS Customer account does not have enough credits for the requested action.
400 Bad Request INVALID_REQUEST Validation error.

Create authority certificate bundle

Creates a new certificate bundle of authority type. Used to verify and authenticate the identity of backend servers when backend TLS enabled (see Backend properties).

POST /1.3/load-balancer/certificate-bundles HTTP/1.1
{
    "name": "example-authority-certificate",
    "type": "authority",
    "certificate": "LS0LS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNIVENDQWNPZ0F3SUJBZ0lVSWlNbzg1cGd0b25kUmVESU1McVR4YjhncHI0d0NnWUlLb1pJemowRUF3SXcKWkRFTE1Ba0dBMVVFQmhNQ1FWVXhFekFSQmdOVkJBZ01DbE52YldVdFUzUmhkR1V4SVRBZkJnTlZCQW9NR0VsdQpkR1Z5Ym1WMElGZHBaR2RwZEhNZ1VIUjVJRXgwWkRFZE1Cc0dBMVVFQXd3VVpHVjJMblZ3YkdJdWRYQmpiRzkxClpDNWpiMjB3SGhjTk1qRXhNREl5TVRJeE1ETTJXaGNOTXpFeE1ESXdNVEl4TURNMldqQmtNUXN3Q1FZRFZRUUcKRXdKQlZURVRNQkVHQTFVRUNBd0tVMjl0WlMxVGRHRjBaVEVoTUI4R0ExVUVDZ3dZU1c1MFpYSnVaWFFnVjJsawpaMmwwY3lCUWRIa2dUSFJrTVIwd0d3WURWUVFEREJSa1pYWXVkWEJzWWk1MWNHTnNiM1ZrTG1OdmJUQlpNQk1HCkJ5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCQmpVcUgyaVNuMFV2ZkU3UDdkT0QrSDBoKytxUWpnTG9OeWQKSTFwMmkvdlJPZmhMa0hCUjIxZ2JCSUdENjllYU1WWnZ4RWNxVWlKVWYwcmxLU3FzKzIralV6QlJNQjBHQTFVZApEZ1FXQkJTYTFaU3V1NkxJczMrc2lSSUJ5MHRXL3RnamZEQWZCZ05WSFNNRUdEQVdnQlNhMVpTdXU2TElzMytzCmlSSUJ5MHRXL3RnamZEQVBCZ05WSFJNQkFmOEVCVEFEQVFIL01Bb0dDQ3FHU000OUJBTUNBMGdBTUVVQ0lRQ3IKWXA5dHc2TmVXTHZGOGwrWm9rSE9QUzUzaGc2SDM0OHNMSjEvNit4YXN3SWdWVmN6WkFDc3JyUWt3TnVBZEVCeQo5TkxJR1VrWlhqeWgwdVFCS2x4Si9Wdz0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=",
    "labels": [
        {
            "key": "foo",
            "value": "bar"
        }
    ]
}

Attributes

Attribute Accepted value Required Description
name 1-64 characters, regexp pattern ^[a-zA-Z0-9_-]+$ yes The name of the bundle must be unique within customer account.
type manual yes Certificate bundle type.
certificate Base64 encoded string yes Certificate within base64 string must be in PEM format.
labels An array of 0-255 labels objects no Labels used for service filtering, see labels usage

Normal response

HTTP/1.1 201 Created

Error response

HTTP status Error code Description
402 Payment required INSUFFICIENT_CREDITS Customer account does not have enough credits for the requested action.
400 Bad Request INVALID_REQUEST Validation error.

List certificate bundles

Returns a list of available certificate bundles.

Request

GET /1.3/load-balancer/certificate-bundles HTTP/1.1

Query parameters

Attribute Accepted value Default value Required Description
limit 0-100 10 no Number of entries to receive at most.
offset >= 0 0 no Offset for retrieved results.
filter_service_uuid String with a valid service UUID no Only return certificates used by the service with the specified UUID.
filter_name_or_hostname String no Only return certificates with names or one of the hostnames matching the specified string.
filter_type manual / dynamic / authority no Only return certificates of specified type. Can be provided multiple times to get certificates of more than one type.

Normal response

HTTP/1.1 200 OK
[
    {
        "certificate": "LS0LS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNIVENDQWNPZ0F3SUJBZ0lVSWlNbzg1cGd0b25kUmVESU1McVR4YjhncHI0d0NnWUlLb1pJemowRUF3SXcKWkRFTE1Ba0dBMVVFQmhNQ1FWVXhFekFSQmdOVkJBZ01DbE52YldVdFUzUmhkR1V4SVRBZkJnTlZCQW9NR0VsdQpkR1Z5Ym1WMElGZHBaR2RwZEhNZ1VIUjVJRXgwWkRFZE1Cc0dBMVVFQXd3VVpHVjJMblZ3YkdJdWRYQmpiRzkxClpDNWpiMjB3SGhjTk1qRXhNREl5TVRJeE1ETTJXaGNOTXpFeE1ESXdNVEl4TURNMldqQmtNUXN3Q1FZRFZRUUcKRXdKQlZURVRNQkVHQTFVRUNBd0tVMjl0WlMxVGRHRjBaVEVoTUI4R0ExVUVDZ3dZU1c1MFpYSnVaWFFnVjJsawpaMmwwY3lCUWRIa2dUSFJrTVIwd0d3WURWUVFEREJSa1pYWXVkWEJzWWk1MWNHTnNiM1ZrTG1OdmJUQlpNQk1HCkJ5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCQmpVcUgyaVNuMFV2ZkU3UDdkT0QrSDBoKytxUWpnTG9OeWQKSTFwMmkvdlJPZmhMa0hCUjIxZ2JCSUdENjllYU1WWnZ4RWNxVWlKVWYwcmxLU3FzKzIralV6QlJNQjBHQTFVZApEZ1FXQkJTYTFaU3V1NkxJczMrc2lSSUJ5MHRXL3RnamZEQWZCZ05WSFNNRUdEQVdnQlNhMVpTdXU2TElzMytzCmlSSUJ5MHRXL3RnamZEQVBCZ05WSFJNQkFmOEVCVEFEQVFIL01Bb0dDQ3FHU000OUJBTUNBMGdBTUVVQ0lRQ3IKWXA5dHc2TmVXTHZGOGwrWm9rSE9QUzUzaGc2SDM0OHNMSjEvNit4YXN3SWdWVmN6WkFDc3JyUWt3TnVBZEVCeQo5TkxJR1VrWlhqeWgwdVFCS2x4Si9Wdz0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=",
        "created_at": "2021-11-09T08:07:39.749472Z",
        "hostnames": [
            "application.example.com"
        ],
        "labels": [
               {
                "key": "env",
                "value": "staging"
            }
        ],      
        "key_type": "ecdsa",
        "name": "example-manual-certificate",
        "not_after": "2031-10-20T12:10:36Z",
        "not_before": "2021-10-22T12:10:36Z",
        "operational_state": "idle",
        "type": "manual",
        "updated_at": "2021-11-09T08:07:39.749472Z",
        "uuid": "bf571589-7378-41f8-879e-5505613b070d"
    },
    {
        "certificate": "LStLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUN3ekNDQW1tZ0F3SUJBZ0lRS0oxNWtaSFVtb1llUUN2ZGE2YVRzVEFLQmdncWhrak9QUVFEQWpBc01Rd3cKQ2dZRFZRUUtFd05rWlhZeEhEQWFCZ05WQkFNVEUyUmxkaUJKYm5SbGNtMWxaR2xoZEdVZ1EwRXdIaGNOTWpJdwpNakV5TURVek1qUXpXaGNOTWpJd01qRXpNRFV6TXpReldqQUFNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DCkFROEFNSUlCQ2dLQ0FRRUExTlhmUzhIdEhVbURncjB1VkptbTl0SWRZTHpYS0NrSklGejFJNDI1WVZGTlB5cGYKZkJ5MDdxMUpYejIyQSs5WFdrZEVLY21yZ3N3QU50YVZkbHFDRzU5SzVQbXhCTVRLREFTYXc5REtZcGVTNUNlMwpWVG1PRnB3T3lMbUluMFJTZmdzdU5DOWRTR1BvemdhR0VLNXVVS29SRU4rNzRzNGNkcmVVME5pM0lQTUpzeHpmClMvVXJQRTcydzU5eG5jaEs4dVNUL0pzRzBsQUt4TkRsMHRqRkw3K25zNmYvNzQxRE9YSVVRZERMekhVYktheEsKWVNKTlQ2dGNlVlJqM01RNEtaaDRlQ3pNRmJlc0V2M1UxRVRRL1ZYYkNhQXBBOTB6UWdJQURqbGNNZTV0UTFZcwplNDIvWTkrWGVYZ25ISXFvR2RzdlF3VlNXYkdlWmdsZ1orZlNCd0lEQVFBQm80SE5NSUhLTUE0R0ExVWREd0VCCi93UUVBd0lGb0RBZEJnTlZIU1VFRmpBVUJnZ3JCZ0VGQlFjREFRWUlLd1lCQlFVSEF3SXdIUVlEVlIwT0JCWUUKRkh1NVVOZGlkb0VyN0FrTTR4Um1NQzR4NUdxTU1COEdBMVVkSXdRWU1CYUFGTldtZnpER1NHOXBwZWlQWE93TgoydUx6RnVjbk1Eb0dBMVVkRVFFQi93UXdNQzZDTEd4aUxUQmhabVkyWkdGak1UUXpZelF6TURBNVlqTXpaV1V5Ck56VTJaalkxT1RKa0xtRndjR3hsWW1WbE1CMEdEQ3NHQVFRQmdxUmt4aWhBQVFRTk1Bc0NBUVlFQkdGamJXVUUKQURBS0JnZ3Foa2pPUFFRREFnTklBREJGQWlFQTBUcXhjNlVVejREVlh1OFJwSFhxS2R3VHVoSkNkSGxOMVA1agpNekkvMTFjQ0lEb2ZoelkwSFcxUHlMbEgrckVydW90cC9FYm5IMElLaDEzQTM4dndTQnM2Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K",
        "created_at": "2022-02-11T17:31:38.202398Z",
        "hostnames": [
            "web.example.com"
        ],
        "intermediates": "LS0tS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJ0VENDQVZ1Z0F3SUJBZ0lSQU5wSDZzV0ZtQzErWkdnUzFMWllVZGN3Q2dZSUtvWkl6ajBFQXdJd0pERU0KTUFvR0ExVUVDaE1EWkdWMk1SUXdFZ1lEVlFRREV3dGtaWFlnVW05dmRDQkRRVEFlRncweU1URXlNRGt4TXpVMwpNREZhRncwek1URXlNRGN4TXpVM01ERmFNQ3d4RERBS0JnTlZCQW9UQTJSbGRqRWNNQm9HQTFVRUF4TVRaR1YyCklFbHVkR1Z5YldWa2FXRjBaU0JEUVRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQkswbGMzNmcKN01TaDJTaXd3MUdDUjkvL3lSODR6S1VuNml6SmdCUkpFTlBxbmNXcjQzTi8rNktJR1EraERaazhRWHZ6RmExYQp2dFloc3JEVGtnRm9EV0tqWmpCa01BNEdBMVVkRHdFQi93UUVBd0lCQmpBU0JnTlZIUk1CQWY4RUNEQUdBUUgvCkFnRUFNQjBHQTFVZERnUVdCQlRWcG44d3hraHZhYVhvajF6c0Rkcmk4eGJuSnpBZkJnTlZIU01FR0RBV2dCU2oKckgwV0pubDdUSUJtc3NESGVveENFTVZyRmpBS0JnZ3Foa2pPUFFRREFnTklBREJGQWlBa3NhUXdPMkFESGhBLwppRVR1SVY1dTlNV3hFTU5BVGlVODFIZjc0cGVhWlFJaEFLMnJDRmhVVnQxbFlzR1o3dFdjWGFHVDhyU1k2cU1YClBmK3dnUXFnNXUyVAotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==",
        "key_type": "rsa",
        "labels": [
               {
                "key": "foo",
                "value": "bar"
            }
        ],
        "name": "example-dynamic-certificate",
        "not_after": "2022-02-13T05:33:43Z",
        "not_before": "2022-02-12T05:32:43Z",
        "operational_state": "idle",
        "type": "dynamic",
        "updated_at": "2022-02-12T08:13:47.877562Z",
        "uuid": "0aded5c1-c7a3-498a-b9c8-a871611c47a2"
    }
]

Notes:

Get certificate bundle details

Returns certificate bundle details by given {certificate_bundle_uuid}.

Request

GET /1.3/load-balancer/certificate-bundles/{certificate_bundle_uuid} HTTP/1.1

Normal response

HTTP/1.1 200 OK
{
    "certificate": "LStLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUN3ekNDQW1tZ0F3SUJBZ0lRS0oxNWtaSFVtb1llUUN2ZGE2YVRzVEFLQmdncWhrak9QUVFEQWpBc01Rd3cKQ2dZRFZRUUtFd05rWlhZeEhEQWFCZ05WQkFNVEUyUmxkaUJKYm5SbGNtMWxaR2xoZEdVZ1EwRXdIaGNOTWpJdwpNakV5TURVek1qUXpXaGNOTWpJd01qRXpNRFV6TXpReldqQUFNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DCkFROEFNSUlCQ2dLQ0FRRUExTlhmUzhIdEhVbURncjB1VkptbTl0SWRZTHpYS0NrSklGejFJNDI1WVZGTlB5cGYKZkJ5MDdxMUpYejIyQSs5WFdrZEVLY21yZ3N3QU50YVZkbHFDRzU5SzVQbXhCTVRLREFTYXc5REtZcGVTNUNlMwpWVG1PRnB3T3lMbUluMFJTZmdzdU5DOWRTR1BvemdhR0VLNXVVS29SRU4rNzRzNGNkcmVVME5pM0lQTUpzeHpmClMvVXJQRTcydzU5eG5jaEs4dVNUL0pzRzBsQUt4TkRsMHRqRkw3K25zNmYvNzQxRE9YSVVRZERMekhVYktheEsKWVNKTlQ2dGNlVlJqM01RNEtaaDRlQ3pNRmJlc0V2M1UxRVRRL1ZYYkNhQXBBOTB6UWdJQURqbGNNZTV0UTFZcwplNDIvWTkrWGVYZ25ISXFvR2RzdlF3VlNXYkdlWmdsZ1orZlNCd0lEQVFBQm80SE5NSUhLTUE0R0ExVWREd0VCCi93UUVBd0lGb0RBZEJnTlZIU1VFRmpBVUJnZ3JCZ0VGQlFjREFRWUlLd1lCQlFVSEF3SXdIUVlEVlIwT0JCWUUKRkh1NVVOZGlkb0VyN0FrTTR4Um1NQzR4NUdxTU1COEdBMVVkSXdRWU1CYUFGTldtZnpER1NHOXBwZWlQWE93TgoydUx6RnVjbk1Eb0dBMVVkRVFFQi93UXdNQzZDTEd4aUxUQmhabVkyWkdGak1UUXpZelF6TURBNVlqTXpaV1V5Ck56VTJaalkxT1RKa0xtRndjR3hsWW1WbE1CMEdEQ3NHQVFRQmdxUmt4aWhBQVFRTk1Bc0NBUVlFQkdGamJXVUUKQURBS0JnZ3Foa2pPUFFRREFnTklBREJGQWlFQTBUcXhjNlVVejREVlh1OFJwSFhxS2R3VHVoSkNkSGxOMVA1agpNekkvMTFjQ0lEb2ZoelkwSFcxUHlMbEgrckVydW90cC9FYm5IMElLaDEzQTM4dndTQnM2Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K",
    "created_at": "2022-02-11T17:31:38.202398Z",
    "hostnames": [
        "web.example.com"
    ],
    "intermediates": "LS0tS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJ0VENDQVZ1Z0F3SUJBZ0lSQU5wSDZzV0ZtQzErWkdnUzFMWllVZGN3Q2dZSUtvWkl6ajBFQXdJd0pERU0KTUFvR0ExVUVDaE1EWkdWMk1SUXdFZ1lEVlFRREV3dGtaWFlnVW05dmRDQkRRVEFlRncweU1URXlNRGt4TXpVMwpNREZhRncwek1URXlNRGN4TXpVM01ERmFNQ3d4RERBS0JnTlZCQW9UQTJSbGRqRWNNQm9HQTFVRUF4TVRaR1YyCklFbHVkR1Z5YldWa2FXRjBaU0JEUVRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQkswbGMzNmcKN01TaDJTaXd3MUdDUjkvL3lSODR6S1VuNml6SmdCUkpFTlBxbmNXcjQzTi8rNktJR1EraERaazhRWHZ6RmExYQp2dFloc3JEVGtnRm9EV0tqWmpCa01BNEdBMVVkRHdFQi93UUVBd0lCQmpBU0JnTlZIUk1CQWY4RUNEQUdBUUgvCkFnRUFNQjBHQTFVZERnUVdCQlRWcG44d3hraHZhYVhvajF6c0Rkcmk4eGJuSnpBZkJnTlZIU01FR0RBV2dCU2oKckgwV0pubDdUSUJtc3NESGVveENFTVZyRmpBS0JnZ3Foa2pPUFFRREFnTklBREJGQWlBa3NhUXdPMkFESGhBLwppRVR1SVY1dTlNV3hFTU5BVGlVODFIZjc0cGVhWlFJaEFLMnJDRmhVVnQxbFlzR1o3dFdjWGFHVDhyU1k2cU1YClBmK3dnUXFnNXUyVAotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==",
    "key_type": "rsa",
     "labels": [
        {
            "key": "foo",
            "value": "bar"
        }
    ],
    "name": "example-dynamic-certificate",
    "not_after": "2022-02-13T05:33:43Z",
    "not_before": "2022-02-12T05:32:43Z",
    "operational_state": "idle",
    "services": [
        {
            "backends": [
                {
                    "name": "example-backend",
                    "tls_configs": [
                        {
                            "certificate_bundle_uuid": "0aded5c1-c7a3-498a-b9c8-a871611c47a2",
                            "name": "auth"
                        }
                    ]
                }
            ],
            "frontends": [],
            "name": "example-service-1",
            "uuid": "0a98ddbf-29e3-408c-b081-278a67101f76"
        },
        {
            "frontends": [
                {
                    "name": "example-frontend",
                    "tls_configs": [
                        {
                            "certificate_bundle_uuid": "0aded5c1-c7a3-498a-b9c8-a871611c47a2",
                            "name": "example-tls-config"
                        }
                    ]
                }
            ],
            "name": "example-service-2",
            "uuid": "0a2f6730-5cbb-4676-a731-67acd3323ac4"
        }
    ],
    "type": "dynamic",
    "updated_at": "2022-02-12T08:13:47.877562Z",
    "uuid": "0aded5c1-c7a3-498a-b9c8-a871611c47a2"

}

Notes:

Modify manual certificate bundle

Modifies existing manual certificate bundle by given {certificate_bundle_uuid}.

Request

PATCH /1.3/load-balancer/certificate-bundles/{certificate_bundle_uuid} HTTP/1.1
{
    "name": "example-manual-certificate",
    "certificate": "LS0LS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNIVENDQWNPZ0F3SUJBZ0lVSWlNbzg1cGd0b25kUmVESU1McVR4YjhncHI0d0NnWUlLb1pJemowRUF3SXcKWkRFTE1Ba0dBMVVFQmhNQ1FWVXhFekFSQmdOVkJBZ01DbE52YldVdFUzUmhkR1V4SVRBZkJnTlZCQW9NR0VsdQpkR1Z5Ym1WMElGZHBaR2RwZEhNZ1VIUjVJRXgwWkRFZE1Cc0dBMVVFQXd3VVpHVjJMblZ3YkdJdWRYQmpiRzkxClpDNWpiMjB3SGhjTk1qRXhNREl5TVRJeE1ETTJXaGNOTXpFeE1ESXdNVEl4TURNMldqQmtNUXN3Q1FZRFZRUUcKRXdKQlZURVRNQkVHQTFVRUNBd0tVMjl0WlMxVGRHRjBaVEVoTUI4R0ExVUVDZ3dZU1c1MFpYSnVaWFFnVjJsawpaMmwwY3lCUWRIa2dUSFJrTVIwd0d3WURWUVFEREJSa1pYWXVkWEJzWWk1MWNHTnNiM1ZrTG1OdmJUQlpNQk1HCkJ5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCQmpVcUgyaVNuMFV2ZkU3UDdkT0QrSDBoKytxUWpnTG9OeWQKSTFwMmkvdlJPZmhMa0hCUjIxZ2JCSUdENjllYU1WWnZ4RWNxVWlKVWYwcmxLU3FzKzIralV6QlJNQjBHQTFVZApEZ1FXQkJTYTFaU3V1NkxJczMrc2lSSUJ5MHRXL3RnamZEQWZCZ05WSFNNRUdEQVdnQlNhMVpTdXU2TElzMytzCmlSSUJ5MHRXL3RnamZEQVBCZ05WSFJNQkFmOEVCVEFEQVFIL01Bb0dDQ3FHU000OUJBTUNBMGdBTUVVQ0lRQ3IKWXA5dHc2TmVXTHZGOGwrWm9rSE9QUzUzaGc2SDM0OHNMSjEvNit4YXN3SWdWVmN6WkFDc3JyUWt3TnVBZEVCeQo5TkxJR1VrWlhqeWgwdVFCS2x4Si9Wdz0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=",
    "intermediates": "LS0tLS1CRdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJ0VENDQVZ1Z0F4SUJBZ0lSQU5wSDZzV0ZtQzErWkdnUzFMWllVZGN3Q2dZSUtvWkl6ajBFQXdJd0pERU0KTUFvR0ExVUVDaE1EWkdWMk1SUXdFZ1lEVlFRREV3dGtaWFlnVW05dmRDQkRRVEFlRncweU1URXlNRGt4TXpVMwpNREZhRncwek1URXlNRGN4TXpVM01ERmFNQ3d4RERBS0JnTlZCQW9UQTJSbGRqRWNNQm9HQTFVRUF4TVRaR1YyCklFbHVkR1Z5YldWa2FXRjBaU0JEUVRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQkswbGMzNmcKN01TaDJTaXd3MUdDUjkvL3lSODR6S1VuNml6SmdCUkpFTlBxbmNXcjQzTi8rNktJR1EraERaazhRWHZ6RmExYQp2dFloc3JEVGtnRm9EV0tqWmpCa01BNEdBMVVkRHdFQi93UUVBd0lCQmpBU0JnTlZIUk1CQWY4RUNEQUdBUUgvCkFnRUFNQjBHQTFVZERnUVdCQlRWcG44d3hraHZhYVhvajF6c0Rkcmk4eGJuSnpBZkJnTlZIU01FR0RBV2dCU2oKckgwV0pubDdUSUJtc3NESGVveENFTVZyRmpBS0JnZ3Foa2pPUFFRREFnTklBREJGQWlBa3NhUXdPMkFESGhBLwppRVR1SVY1dTlNV3hFTU5BVGlVODFIZjc0cGVhWlFJaEFLMnJDRmhVVnQxbFlzR1o3dFdjWGFHVDhyU1k2cU1YClBmK3dnUXFnNXUyVAotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==",
    "private_key": "LS0tL1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JR0hBZ0VBTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEJHMHdhd0lCQVFRZ3NQMzI2RlIxcmNwL0xybmcKNFBCT3BLRjIzSUNaM01GdGNrZFJuWkFESnRlaFJBTkNBQVFZMUtoOW9rcDlGTDN4T3orM1RnL2g5SWZ2cWtJNApDNkRjblNOYWRvdjcwVG40UzVCd1VkdFlHd1NCZyt2WG1qRldiOFJIS2xJaVZIOUs1U2txclB0dgotLS0tLUVORCBQUklWQVRFIEtFWS0tLS0tCg=="
}

Attributes

Attribute Accepted value Required Description
name 1-64 characters, regexp pattern ^[a-zA-Z0-9_-]+$ no The name of the bundle must be unique within customer account.
certificate Base64 encoded string no Certificate within base64 string must be in PEM format.
intermediates Base64 encoded string no Intermediate certificates within base64 string must be in PEM format.
private_key Base64 encoded string no Private key within base64 string must be in PEM format.
labels An array of 0-255 labels objects no Labels used for service filtering, see labels usage

Normal response

HTTP/1.1 200 OK

Modify dynamic certificate bundle

Modifies existing dynamic certificate bundle by given {certificate_bundle_uuid}.

Request

PATCH /1.3/load-balancer/certificate-bundles/{certificate_bundle_uuid} HTTP/1.1
{
    "name": "example-manual-certificate",
    "hostnames": [
        "web.example.com"
    ]
}

Attributes

Attribute Accepted value Required Description
name 1-64 characters, regexp pattern ^[a-zA-Z0-9_-]+$ no The name of the bundle must be unique within customer account.
hostnames An array of 1-100 hostnames no Certificate hostnames.
labels An array of 0-255 labels objects no Labels used for service filtering, see labels usage

Normal response

HTTP/1.1 200 OK

Modify authority certificate bundle

Modifies existing authority certificate bundle by given {certificate_bundle_uuid}.

Request

PATCH /1.3/load-balancer/certificate-bundles/{certificate_bundle_uuid} HTTP/1.1
{
    "name": "example-authority-certificate",
    "certificate": "LS0LS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNIVENDQWNPZ0F3SUJBZ0lVSWlNbzg1cGd0b25kUmVESU1McVR4YjhncHI0d0NnWUlLb1pJemowRUF3SXcKWkRFTE1Ba0dBMVVFQmhNQ1FWVXhFekFSQmdOVkJBZ01DbE52YldVdFUzUmhkR1V4SVRBZkJnTlZCQW9NR0VsdQpkR1Z5Ym1WMElGZHBaR2RwZEhNZ1VIUjVJRXgwWkRFZE1Cc0dBMVVFQXd3VVpHVjJMblZ3YkdJdWRYQmpiRzkxClpDNWpiMjB3SGhjTk1qRXhNREl5TVRJeE1ETTJXaGNOTXpFeE1ESXdNVEl4TURNMldqQmtNUXN3Q1FZRFZRUUcKRXdKQlZURVRNQkVHQTFVRUNBd0tVMjl0WlMxVGRHRjBaVEVoTUI4R0ExVUVDZ3dZU1c1MFpYSnVaWFFnVjJsawpaMmwwY3lCUWRIa2dUSFJrTVIwd0d3WURWUVFEREJSa1pYWXVkWEJzWWk1MWNHTnNiM1ZrTG1OdmJUQlpNQk1HCkJ5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCQmpVcUgyaVNuMFV2ZkU3UDdkT0QrSDBoKytxUWpnTG9OeWQKSTFwMmkvdlJPZmhMa0hCUjIxZ2JCSUdENjllYU1WWnZ4RWNxVWlKVWYwcmxLU3FzKzIralV6QlJNQjBHQTFVZApEZ1FXQkJTYTFaU3V1NkxJczMrc2lSSUJ5MHRXL3RnamZEQWZCZ05WSFNNRUdEQVdnQlNhMVpTdXU2TElzMytzCmlSSUJ5MHRXL3RnamZEQVBCZ05WSFJNQkFmOEVCVEFEQVFIL01Bb0dDQ3FHU000OUJBTUNBMGdBTUVVQ0lRQ3IKWXA5dHc2TmVXTHZGOGwrWm9rSE9QUzUzaGc2SDM0OHNMSjEvNit4YXN3SWdWVmN6WkFDc3JyUWt3TnVBZEVCeQo5TkxJR1VrWlhqeWgwdVFCS2x4Si9Wdz0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo="
}

Attributes

Attribute Accepted value Required Description
name 1-64 characters, regexp pattern ^[a-zA-Z0-9_-]+$ no The name of the bundle must be unique within customer account.
certificate Base64 encoded string no Certificate within base64 string must be in PEM format.
labels An array of 0-255 labels objects no Labels used for service filtering, see labels usage

Normal response

HTTP/1.1 200 OK

Delete certificate bundle

Deletes existing certificate bundle by given {certificate_bundle_uuid}.

Request

DELETE /1.3/load-balancer/certificate-bundles/{certificate_bundle_uuid} HTTP/1.1

Normal response

HTTP/1.1 204 No Content

Error response

HTTP status Error code Description
404 Not Found RESOURCE_NOT_FOUND Resource not found.
409 Conflict INVALID_REQUEST Certificate bundle is in use.

Create certificate bundle label

Creates a new label by given {certificate_bundle_uuid}.

Labels used for certificate bundles filtering.

Certificate bundle labels usage examples

Below are some examples of what certain GET requests might look like.

  • exact match: GET /1.3/load-balancer/certificate-bundles?label=env%3Dstaging
  • existence: GET /1.3/load-balancer/certificate-bundles?label=env
  • multiple: GET /1.3/load-balancer/certificate-bundles?label=env&label=foo%3Dbar
POST /1.3/load-balancer/certificate-bundles/{certificate_bundle_uuid}/labels HTTP/1.1
{
    "key": "foo",
    "value": "bar"
}

Attributes

Attribute Accepted value Required Description
key 2-32 characters, regexp pattern ^([a-zA-Z0-9])+([a-zA-Z0-9_-])*$ yes Represents the label identifier. The key is unique within a service.
value 0-255 characters, regexp pattern \A[\p{L}\p{N}\p{P}\p{S}\p{M}\p{Z}]*\z yes Represents the label value.

Normal response

HTTP/1.1 201 Created

Error response

HTTP status Error code Description
402 Payment required INSUFFICIENT_CREDITS Customer account does not have enough credits for the requested action.
400 Bad Request INVALID_REQUEST Validation error.

List certificate bundle labels

Returns a list of available certificate bundle labels by given {certificate_bundle_uuid}.

Request

GET /1.3/load-balancer/certificate-bundles/{certificate_bundle_uuid}/labels HTTP/1.1

Normal response

HTTP/1.1 200 OK
[
    {
        "key": "env",
        "value": "staging"
    },
    {
        "key": "foo",
        "value": "bar"
    }
]

Get certificate bundle label details

Returns label details by given {certificate_bundle_uuid} and {key}.

Request

GET /1.3/load-balancer/certificate-bundles/{certificate_bundle_uuid}/labels/{key} HTTP/1.1

Normal response

HTTP/1.1 200 OK
{
    "key": "env",
    "value": "staging"  
}

Modify certificate bundle label

Modifies existing label by given {certificate_bundle_uuid} and {key}.

Request

PATCH /1.3/load-balancer/certificate-bundles/{certificate_bundle_uuid}/labels/{key} HTTP/1.1
{
    "key": "env",
    "value": "production"
}

Attributes

Attribute Accepted value Required Description
key 2-32 characters, regexp pattern ^([a-zA-Z0-9])+([a-zA-Z0-9_-])*$ no Represents the label identifier. The key is unique within a service.
value 0-255 characters, regexp pattern \A[\p{L}\p{N}\p{P}\p{S}\p{M}\p{Z}]*\z / null no Represents the label value.

Normal response

HTTP/1.1 200 OK

Delete certificate bundle label

Deletes existing label by given {certificate_bundle_uuid} and {key}.

Request

DELETE /1.3/load-balancer/certificate-bundles/{certificate_bundle_uuid}/labels/{key} HTTP/1.1

Normal response

HTTP/1.1 204 No Content

Error response

HTTP status Error code Description
404 Not Found RESOURCE_NOT_FOUND Resource not found.

Rule Matchers

Matcher Type Frontend modes Description
src_ip IP tcp / http Matches by source IP address.
src_port Integer tcp / http Matches by source port number.
body_size Integer http Matches by HTTP request body size.
path String http Matches by URL path.
url String http Matches by URL without scheme, e.g. example.com/dashboard.
url_query String http Matches by URL query string.
host Host tcp / http Matches by hostname. Header extracted from HTTP Headers or from TLS certificate in case of secured connection.
http_method HTTP method http Matches by HTTP method.
cookie String with argument http Matches by HTTP cookie value. Cookie name must be provided.
header String with argument http Matches by HTTP header value. Header name must be provided.
url_param String with argument http Matches by URL query parameter value. Query parameter name must be provided
num_members_up Backend tcp Matches by number of healthy backend members.

Matcher type IP

Attribute Accepted value Required Description
type src_ip yes Matcher type.
inverse true / false no Optional flag indicates that condition should be inverted, default is false. Works similar to logical NOT operator.
match_{type} Matcher object yes Embedded matcher configuration.
value IPv4 / IPv6 yes IP address. CIDR masks are supported, e.g. 192.168.0.0/24.

Example:

{
    "type": "src_ip",
    "inverse": false,
    "match_src_ip": {
        "value": "213.3.44.11"
    }
}

Matcher type Integer

Attribute Accepted value Required Description
type src_port / body_size yes Matcher type.
inverse true / false no Optional flag indicates that condition should be inverted, default is false. Works similar to logical NOT operator.
match_{type} Matcher object yes Embedded matcher configuration.
method equal / greater_or_equal / greater / less_or_equal / less yes Match method.
value >= 0 yes Integer value.

Example:

{
    "type": "src_port",
    "match_src_port": {
        "method": "equal",
        "value": 8000
    }
}

Matcher type Integer (range)

Attribute Accepted value Required Description
type src_port / body_size yes Matcher type.
inverse true / false no Optional flag indicates that condition should be inverted, default is false. Works similar to logical NOT operator.
match_{type} Matcher object yes Embedded matcher configuration.
method range yes Match method.
range_start >= 0 yes Integer value (inclusive).
range_end >= 0 yes Integer value (inclusive).

Example:

{
    "type": "src_port",
    "inverse": true,
    "match_src_port": {
        "method": "range",
        "range_start": 8000,
        "range_end": 9000
    }
}

Matcher type String

Attribute Accepted value Required Description
type path / url / url_query yes Matcher type.
inverse true / false no Optional flag indicates that condition should be inverted, default is false. Works similar to logical NOT operator.
match_{type} Matcher object yes Embedded matcher configuration.
method exact / substring / regexp / starts / ends / domain / exists / ip yes Match method.
value 1-255 characters yes String value.
ignore_case true / false no Ignore case, default false.

Examples:

{
    "type": "path",
    "match_path": {
        "method": "starts",
        "value": "/application",
        "ignore_case": true
    }
}

Notes:

  • matcher with exists and ip methods must be used without value and ignore_case fields.
{
    "type": "url_query",
    "inverse": true,
    "match_url_query": {
        "method": "exists"
    }
}

Matcher type Host

Attribute Accepted value Required Description
type host yes Matcher type.
inverse true / false no Optional flag indicates that condition should be inverted, default is false. Works similar to logical NOT operator.
match_host Matcher object yes Embedded matcher configuration.
value 1-255 characters yes String value.

Examples:

{
    "type": "host",
    "match_host": {
        "value": "example.com"
    }
}

Matcher type HTTP Method

Attribute Accepted value Required Description
type http_method yes Matcher type.
inverse true / false no Optional flag indicates that condition should be inverted, default is false. Works similar to logical NOT operator.
match_host Matcher object yes Embedded matcher configuration.
value GET / HEAD / POST / PUT / PATCH / DELETE / CONNECT / OPTIONS / TRACE yes String value.

Examples:

{
    "type": "http_method",
    "match_http_method": {
        "value": "PATCH"
    }
}

Matcher type String with argument

Attribute Accepted value Required Description
type cookie / header / url_param yes Matcher type.
inverse true / false no Optional flag indicates that condition should be inverted, default is false. Works similar to logical NOT operator.
match_{type} Matcher object yes Embedded matcher configuration.
method exact / substring / regexp / starts / ends / domain / exists / ip yes Match method.
name 1-255 characters yes Name of the argument.
value 1-255 characters yes String value.
ignore_case true / false no Ignore case, default false.

Example:

{
    "type": "url_param",
    "match_url_param": {
        "method": "exact",
        "name": "status",
        "value": "active",
        "ignore_case": true
    }
}

Notes:

  • matcher with exists and ip methods must be used without value and ignore_case fields.
{
    "type": "cookie",
    "match_cookie": {
        "method": "exists",
        "name": "x-session-id"
    }
}

Matcher type Backend

Attribute Accepted value Required Description
type num_members_up yes Matcher type.
inverse true / false no Optional flag indicates that condition should be inverted, default is false. Works similar to logical NOT operator.
match_{type} Matcher object yes Embedded matcher configuration.
method equal / greater_or_equal / greater / less_or_equal / less yes Match method.
value 0-100 yes Integer value.
backend A valid backend identifier, e.g. example-backend yes The name of the backend which members will be monitored.

Example:

{
    "type": "num_members_up",
    "match_num_members_up": {
        "method": "less",
        "value": 1,
        "backend": "example-fallback-backend"
    }
}

Matcher type Backend (range)

Attribute Accepted value Required Description
type num_members_up yes Matcher type.
inverse true / false no Optional flag indicates that condition should be inverted, default is false. Works similar to logical NOT operator.
match_{type} Matcher object yes Embedded matcher configuration.
method range yes Match method.
range_start 0-100 yes Integer value (inclusive).
range_end 0-100 yes Integer value (inclusive).
backend A valid backend identifier, e.g. example-backend yes The name of the backend which members will be monitored.

Example:

{
    "type": "num_members_up",
    "match_num_members_up": {
        "method": "less",
        "range_start": 10,
        "range_end": 20,
        "backend": "example-fallback-backend"
    }
}

Rule Actions

Action Type Frontend modes Description
use_backend Use backend tcp / http Rotes traffic to specified backend.
tcp_reject TCP Reject tcp / http Terminates a connection.
http_return HTTP Return http Returns HTTP response with specified HTTP status.
http_redirect HTTP Redirect http Redirects HTTP requests to specified location or URL scheme.
set_forwarded_headers Set X-Forwarded Headers http Adds "X-Forwarded-For / -Proto / -Port" headers in the forwarded requests.
set_request_header Set Request Headers http Adds/Overrides custom headers in requests.
set_response_header Set Response Headers http Adds/Overrides custom headers in responses.

Action type Use Backend

Attribute Accepted value Required Description
type use_backend yes Action type.
action_use_backend Action object yes Embedded action configuration.
backend A valid backend identifier, e.g. example-backend yes The name of the backend where traffic will be routed.

Example:

{
    "type": "use_backend",
    "action_use_backend": {
        "backend": "example-backend"
    }
}

Action type TCP Reject

Attribute Accepted value Required Description
type tcp_reject yes Action type.
action_tcp_reject Action object yes Embedded action configuration. Intended to be empty.

Example:

{
    "type": "tcp_reject",
    "action_tcp_reject": {}
}

Action type HTTP Return

Attribute Accepted value Required Description
type http_return yes Action type.
action_http_return Action object yes Embedded action configuration.
status 100-599 yes HTTP status code.
content_type text/plain / text/html / application/json yes Content type.
payload Base64 encoded string of 1-4096 characters yes The payload.

Example:

{
    "type": "http_return",
    "action_http_return": {
        "status": 200,
        "content_type": "text/html",
        "payload": "PGgxPmFwcGxlYmVlPC9oMT4K"
    }
}

Action type HTTP Redirect

Attribute Accepted value Required Description
type http_redirect yes Action type.
action_http_redirect Action object yes Embedded action configuration.
location URI yes Target location.

Example:

{
    "type": "http_redirect",
    "action_http_redirect": {
        "location": "https://internal.example.com"
    }
}

Action type HTTP Redirect (scheme)

Attribute Accepted value Required Description
type http_redirect yes Action type.
action_http_redirect Action object yes Embedded action configuration.
scheme http / https yes Target scheme.

Example:

{
    "type": "http_redirect",
    "action_http_redirect": {
        "scheme": "https"
    }
}

Action Set X-Forwarded Headers

Attribute Accepted value Required Description
type set_forwarded_headers yes Action type.
action_set_forwarded_headers Action object yes Embedded action configuration. Intended to be empty.

Example:

{
    "type": "set_forwarded_headers",
    "action_set_forwarded_headers": {}
}

Action Set Request Header

Attribute Accepted value Required Description
type set_request_header yes Action type.
action_set_request_header Action object yes Embedded action configuration.
header 1-256 characters yes Header name.
value 0-256 characters no Header value.

Example:

{
    "type": "set_request_header",
    "action_set_request_header": {
        "header": "example-header",
        "value": "example-value"
    }
}

Action Set Response Header

Attribute Accepted value Required Description
type set_response_header yes Action type. The rule with set_response_header action should not contain any matchers.
action_set_response_header Action object yes Embedded action configuration.
header 1-256 characters yes Header name.
value 0-256 characters no Header value.

Example:

{
    "type": "set_response_header",
    "action_set_response_header": {
        "header": "example-header",
        "value": "example-value"
    }
}

Frontend Properties

Attribute Accepted value Required Default Description
timeout_client 1-86400 no 10 Client request timeout in seconds.
inbound_proxy_protocol true / false no false Enable or disable inbound proxy protocol support.
http2_enabled true / false no false Allow HTTP/2 connections to frontend by utilizing ALPN extension of TLS protocol, therefore can only be enabled when at least one TLS config is attached.

Example:

{
    "timeout_client": 5,
    "inbound_proxy_protocol": true,
    "http2_enabled": true
}

Backend Properties

Attribute Accepted value Required Default Description
timeout_server 1-86400 no 10 Backend server timeout in seconds.
timeout_tunnel 1-3024000 no 3600 Maximum inactivity time on the client and server side for tunnels in seconds.
health_check_type tcp / http no tcp Health check type.
health_check_interval 1-86400 no 10 Interval between health checks.
health_check_fall 1-100 no 3 Sets how many failed health checks are allowed until the backend member is taken off from the rotation.
health_check_rise 1-100 no 3 Sets how many passing checks there must be before returning the backend member to the rotation.
health_check_url 1-255 characters no / Health check endpoint. The field accepts URLs in the following formats [scheme:]//[host][:port][/path] or /path. Supported URL schemes are tcp/http/https or omitted. If port is provided as part of a URL, then checks go to that port instead of ports where members are listening. If host is provided as part of a URL, then HTTP checks contain a Host header. Examples: //:8080, tcp://:8080, http://anyhost/anypath, https://anyhost:443, /anypath.
health_check_tls_verify true / false no false Enables certificate verification. For the verification will be used the certificate bundle of type authority if it attached via TLS config, or system CA certificate. Works when tls_enabled or with https scheme in health_check_url, otherwise ignored.
health_check_expected_status 100-599 no 200 Expected HTTP status code returned by the customer application to mark server as healthy. Ignored for tcp type.
health_check_on_down (empty string) / shutdown-sessions no (empty string) Immediately terminates the peer connections, if the server goes down.
sticky_session_cookie_name 0-64 / null no Sets sticky session cookie name. Empty string disables sticky session.
outbound_proxy_protocol v1 / v2 / null no Enables outbound proxy protocol by setting the desired version. Empty string disables.
tls_enabled true / false no false Enables TLS connection from the load balancer to backend servers.
tls_verify true / false no false Enables backend servers certificate verification. Please make sure that TLS config with the certificate bundle of type authority attached to the backend or tls_use_system_ca enabled. Note: tls_verify has preference over health_check_tls_verify when tls_enabled in true.
tls_use_system_ca true / false no false If enabled, then the system CA certificate bundle will be used for the certificate verification.
http2_enabled true / false no false Allow HTTP/2 connections to backend members by utilizing ALPN extension of TLS protocol, therefore it can only be enabled when tls_enabled is set to true. Note: members should support HTTP/2 for this setting to work.

Example:

{
    "timeout_server": 30,
    "timeout_tunnel": 3600,
    "health_check_type": "http",
    "health_check_on_down": "",
    "health_check_interval": 20,
    "health_check_fall": 3,
    "health_check_rise": 3,
    "health_check_tls_verify": false,
    "health_check_url": "/health",
    "health_check_expected_status": 200,
    "sticky_session_cookie_name": "SERVERID",
    "outbound_proxy_protocol": "v1",
    "tls_enabled": false,
    "tls_verify": false,
    "tls_use_system_ca": false,
    "http2_enabled": false
}

Service configured status

The service configured status indicates the service's current intended status. Managed by the customer.

Status Description
started The service is running.
stopped The service is stopped.

Service operational state

The service operational state indicates the service's current operational, effective state. Managed by the system.

State Description
pending Indicates newly created service or started reconfiguration.
setup-agent Configuring management tool.
setup-server Configuring load balancer nodes.
setup-network Configuring network.
setup-lb Configuring load balancer.
setup-dns Updating DNS records.
checkup Verifying load balancer correctly configured and running.
running Indicates service up and running.
delete-dns Removing DNS records.
delete-network Reconfiguring network.
delete-server Deleting load balancer nodes.
delete-service Deleting the service.

Dynamic certificate bundle operational state

Indicates current operational state for certificate bundle of dynamic type. Operational state is driven by the system.

System automatically starts renew process when the certificate is about to expire.

State Description
idle Newly created certificate / Ready to use.
pending Indicates that certificate attached to load balancer service and about to start the challenge.
setup-challenge Setting up challenge for the certificate retrieval process and waiting for validation request.
complete-challenge Confirming success response on validation request. Back to idle state.