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.

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",
    "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_type": "http",
                "health_check_interval": 10,
                "health_check_fall": 5,
                "health_check_rise": 5,
                "health_check_url": "/health",
                "health_check_expected_status": 200,
                "sticky_session_cookie_name": "x-session"
            }
        },
        {
            "name": "example-backend-2",
            "resolver": "example-resolver",
            "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
        }
    ]
}

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 2-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
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.

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_type": "http",
                    "health_check_url": "/health",
                    "sticky_session_cookie_name": "x-session",
                    "timeout_server": 10,
                    "timeout_tunnel": 3600
                },
                "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_type": "tcp",
                    "health_check_url": "/",
                    "sticky_session_cookie_name": "",
                    "timeout_server": 10,
                    "timeout_tunnel": 3600
                },
                "resolver": "example-resolver",
                "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",
        "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"
            }
        ],
        "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_type": "http",
                "health_check_url": "/health",
                "sticky_session_cookie_name": "x-session",
                "timeout_server": 10,
                "timeout_tunnel": 3600
            },
            "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_type": "tcp",
                "health_check_url": "/",
                "sticky_session_cookie_name": "",
                "timeout_server": 10,
                "timeout_tunnel": 3600
            },
            "resolver": "example-resolver",
            "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",
    "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"
        }
    ],
    "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",
    "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_interval": 20,
                "health_check_fall": 3,
                "health_check_rise": 3,
                "health_check_url": "/",
                "health_check_expected_status": 200,
                "sticky_session_cookie_name": ""
            }
        },
        {
            "name": "example-backend-2",
            "resolver": "example-resolver",
            "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
        }
    ]
}

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.
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

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"
}

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.

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 0-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-100 TLS configs no Set of TLS configs.
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 0-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.
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 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.

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 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 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 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.

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 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
}

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.

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_interval": 20,
        "health_check_fall": 3,
        "health_check_rise": 3,
        "sticky_session_cookie_name": "SERVERID",
        "outbound_proxy_protocol": "v2"
    }
}

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.

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",
        "resolver": "dns",
        "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_type": "http",
            "health_check_url": "/",
            "sticky_session_cookie_name": "",
            "timeout_server": 10,
            "timeout_tunnel": 3600
        },
        "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_type": "http",
        "health_check_url": "/health",
        "sticky_session_cookie_name": "",
        "timeout_server": 10,
        "timeout_tunnel": 3600
    },
    "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",
    "properties": {
        "timeout_server": 30,
        "timeout_tunnel": 3600,
        "health_check_type": "http",
        "health_check_interval": 20,
        "health_check_fall": 3,
        "health_check_rise": 2,
        "health_check_url": "/health",
        "health_check_expected_status": 200,
        "sticky_session_cookie_name": "SERVERID",
        "outbound_proxy_protocol": "v1"
    }
}

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 no Domain Name Resolver used with dynamic type members.
properties Properties object no Embedded Backend 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 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.
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.
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.
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.
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 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.

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.

Create manual certificate bundle

Creates a new certificate bundle of manual type.

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

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.

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"
}

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.

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.

Normal response

HTTP/1.1 200 OK
[
    {
        "certificate": "LS0LS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNIVENDQWNPZ0F3SUJBZ0lVSWlNbzg1cGd0b25kUmVESU1McVR4YjhncHI0d0NnWUlLb1pJemowRUF3SXcKWkRFTE1Ba0dBMVVFQmhNQ1FWVXhFekFSQmdOVkJBZ01DbE52YldVdFUzUmhkR1V4SVRBZkJnTlZCQW9NR0VsdQpkR1Z5Ym1WMElGZHBaR2RwZEhNZ1VIUjVJRXgwWkRFZE1Cc0dBMVVFQXd3VVpHVjJMblZ3YkdJdWRYQmpiRzkxClpDNWpiMjB3SGhjTk1qRXhNREl5TVRJeE1ETTJXaGNOTXpFeE1ESXdNVEl4TURNMldqQmtNUXN3Q1FZRFZRUUcKRXdKQlZURVRNQkVHQTFVRUNBd0tVMjl0WlMxVGRHRjBaVEVoTUI4R0ExVUVDZ3dZU1c1MFpYSnVaWFFnVjJsawpaMmwwY3lCUWRIa2dUSFJrTVIwd0d3WURWUVFEREJSa1pYWXVkWEJzWWk1MWNHTnNiM1ZrTG1OdmJUQlpNQk1HCkJ5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCQmpVcUgyaVNuMFV2ZkU3UDdkT0QrSDBoKytxUWpnTG9OeWQKSTFwMmkvdlJPZmhMa0hCUjIxZ2JCSUdENjllYU1WWnZ4RWNxVWlKVWYwcmxLU3FzKzIralV6QlJNQjBHQTFVZApEZ1FXQkJTYTFaU3V1NkxJczMrc2lSSUJ5MHRXL3RnamZEQWZCZ05WSFNNRUdEQVdnQlNhMVpTdXU2TElzMytzCmlSSUJ5MHRXL3RnamZEQVBCZ05WSFJNQkFmOEVCVEFEQVFIL01Bb0dDQ3FHU000OUJBTUNBMGdBTUVVQ0lRQ3IKWXA5dHc2TmVXTHZGOGwrWm9rSE9QUzUzaGc2SDM0OHNMSjEvNit4YXN3SWdWVmN6WkFDc3JyUWt3TnVBZEVCeQo5TkxJR1VrWlhqeWgwdVFCS2x4Si9Wdz0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=",
        "created_at": "2021-11-09T08:07:39.749472Z",
        "hostnames": [
            "application.example.com"
        ],
        "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",
        "name": "example-dynamic-certificate",
        "not_after": "2022-02-13T05:33:43Z",
        "not_before": "2022-02-12T05:32:43Z",
        "operational_state": "idle",
        "services": [
            {
                "frontends": [
                    {
                        "name": "example-frontend",
                        "tls_configs": [
                            {
                                "certificate_bundle_uuid": "0aded5c1-c7a3-498a-b9c8-a871611c47a2",
                                "name": "example-tls-config"
                            }
                        ]
                    }
                ],
                "name": "example-service",
                "uuid": "0a2f6730-5cbb-4676-a731-67acd3323ac4"
            }
        ],
        "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",
    "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:

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.

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.

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.

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.

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": {}
}

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.

Example:

{
    "timeout_client": 5,
    "inbound_proxy_protocol": 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 / Target path for health check HTTP GET requests. Ignored for tcp type.
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.
sticky_session_cookie_name 0-64 no Sets sticky session cookie name. Empty string disables sticky session.
outbound_proxy_protocol v1 / v2 no Enable outbound proxy protocol by setting the desired version. Empty string disables.

Example:

{
    "timeout_server": 30,
    "timeout_tunnel": 3600,
    "health_check_type": "http",
    "health_check_interval": 20,
    "health_check_fall": 3,
    "health_check_rise": 3,
    "health_check_url": "/health",
    "health_check_expected_status": 200,
    "sticky_session_cookie_name": "SERVERID",
    "outbound_proxy_protocol": "v1"
}

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.