openapi: 3.1.0
info:
title: Load Balancer API
description: "Load Balancers are highly available and fully managed [Instances](https://www.scaleway.com/en/docs/instances/concepts/#instance)
that facilitate the distribution of incoming traffic across multiple servers.
Load Balancers allow you to scale your applications while ensuring their continuous
availability, even in the event of heavy traffic. They are commonly used to improve
the performance and reliability of websites, applications, databases and other
services.\n\nA Scaleway Load Balancer has a **public IP address** which is always
reachable: in the event of hardware failure it is rerouted to a backup Instance.
The Load Balancer receives incoming traffic at this IP address, monitors the health
and availability of its **backend servers** via **health checks**, and balances
traffic load between all healthy and available backend servers. \n\nYou can create
as many **frontends** and **backends** for each Load Balancer as you wish, with
frontends configured to listen on defined ports and forward traffic to specific
backends. You can also add **certificates** to frontends to enable secure, encrypted
connections and facilitate SSL bridging or offloading. Backends can be configured
to use your **protocol** of choice (TCP or HTTP) to connect to their backend servers.
Additional features such as Access Control Lists (ACLs) and routes allow you to
further configure the flow of traffic through your Scaleway Load Balancer.\n\n\n\n\n##
Concepts\n\nRefer to our [dedicated concepts page](https://www.scaleway.com/en/docs/load-balancer/concepts/)
to find definitions of all Load Balancer-related terminology.\n\n\n\n\n## Quickstart\n\n**Requirements**:\nTo
perform the following steps, you must first ensure that:\n- You have a [Scaleway
account](https://console.scaleway.com/)\n- You have created an [API key](https://www.scaleway.com/en/docs/iam/how-to/create-api-keys/)
and that the API key has sufficient [IAM permissions](https://www.scaleway.com/en/docs/iam/reference-content/permission-sets/)
to perform the actions described on this page\n- You have [installed `curl`](https://curl.se/download.html)\n\n1.
Configure your environment variables.\n\n \n This
is an optional step that seeks to simplify your usage of the Load Balancer API.\n
\ \n\n ```bash\n export SCW_SECRET_KEY=\"\"\n
\ export SCW_DEFAULT_ZONE=\"\"\n export
SCW_PROJECT_ID=\"\"\n ```\n\n2. Create a Load Balancer:
run the following command to create a Load Balancer. You can customize the details
in the payload (name, description, tags, etc) as you wish.\n\n ```bash\n curl
-X POST \\\n -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\\n -H \"Content-Type:
application/json\" \\\n \"https://api.scaleway.com/lb/v1/zones/$SCW_DEFAULT_ZONE/lbs\"
\\\n -d '{\n \"name\":\"API Test LB\",\n \"description\": \"my
new Load Balancer\",\n \"project_id\":\"'\"$SCW_PROJECT_ID\"'\",\n \"tags\":[\"test\",\"another
tag\"]\n }'\n ```\n\n3. **Get a list of your Load Balancers**: run the
following command to get a list of all the Load Balancers in your account, with
their details:\n\n ```bash\n curl -X GET \\\n -H \"Content-Type: application/json\"
\\\n -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\\n \"https://api.scaleway.com/lb/v1/zones/$SCW_DEFAULT_ZONE/lbs\"\n
\ ```\n\n4. **Create a backend for your Load Balancer**: run the following command
to create a backend for a specified Load Balancer. Ensure that you replace ``
in the URL with the ID of the Load Balancer you want to create a backend for.
You can customize the configuration of the backend according to your needs: use
the information below to adjust the payload as necessary.\n\n ```bash\n curl
-X POST \\\n -H \"Content-Type: application/json\" \\\n -H \"X-Auth-Token:
$SCW_SECRET_KEY\" \\\n \"https://api.scaleway.com/lb/v1/zones/$SCW_DEFAULT_ZONE/lbs//backends\"
\\\n -d '{\n \"name\":\"main backend\",\n \"forward_port\":
80,\n \"forward_port_algorithm\": \"roundrobin\",\n \"forward_protocol\":
\"tcp\",\n \"health_check\":{\n \"check_delay\": 2000,\n \"check_max_retries\":
3,\n \"check_timeout\": 1000,\n \"port\": 80,\n \"tcp_config\":{}\n
\ }, \n \"server_ip\": [\"184.224.68.187\", \"139.7.243.56\"]\n }'\n
\ ```\n\n **Payload values**:\n\n * **name** (string): A name for
the backend, e.g. `\"main backend\"`\n * **forward_port** (number): The port
to use when connecting to a backend server to forward a user session, e.g. `8080`\n
\ * **forward_port_algorithm** (string): The forwarding algorithm to use when
determining which backend server to forward a user session to. Must be one of
the following:\n * `\"roundrobin\"`: New sessions are forwarded to each
backend server in turn. \n * `\"leastconn\"`: New sessions are forwarded
to the backend server with the fewest current active sessions.\n * `\"first\"`:
New sessions are forwarded to the first backend server found .\n * **forward_protocol**
(string): The protocol to use when connecting to a backend server to forward a
user session. Must be one of the following: \n * `\"tcp\"`: Transmission
Control Protocol\n * `\"http\"`: Hypertext Transfer Protocol \n *
**health_check** (object): The definition of the health check to use to check
that backend servers are available and able to receive forwarded user sessions.
Must contain the following parameters:\n * `\"check_delay\"`: The time
between two consecutive health checks (in milliseconds)\n * `\"check_max_retries\"`:
The number of consecutive unsuccessful health checks, after which the server will
be considered dead\n * `\"check_timeout:\"` The maximum time a backend
server has to reply to the health check (in milliseconds)\n * `\"port\"`:
The port to use when connecting to a backend server for a health check\n *
`\"_config\"`: The health check type to use. This parameter name must be
one of `\"mysqlconfig\"`, `\"ldap_config\"`, `\"redis_config\"`, `\"tcp_config\"`,
`\"pgsql_config\"`, `\"http_config\"` or `\"https_config\"`. The parameter value
may be an empty object, or an object containing further parameters, depending
on the health check configuration type selected. See the full documentation below
on health checks for further details.\n * Example of valid `health_check`
value `{\"check_delay\":2000,\"check_max_retries\":3,\"check_timeout\":1000,\"port\":80,\"tcp_config\":{}}`\n
\ * **server_ip** (array): The list of IPv4 or IPv6 addresses of the backend
servers to forward user sessions to, e.g. `[\"184.224.68.187\", \"139.7.243.56\"]`\n\n5.
**Create a frontend for your Load Balancer**: run the following command to create
a frontend for a specified Load Balancer. Ensure that you replace ``
in the URL with the ID of the Load Balancer you want to create a frontend for.
You can customize the configuration according to your needs: use the information
below to adjust the payload as necessary.\n\n ```bash\n curl -X POST \\\n
\ -H \"Content-Type: application/json\" \\\n -H \"X-Auth-Token: $SCW_SECRET_KEY\"
\\\n \"https://api.scaleway.com/lb/v1/zones/$SCW_DEFAULT_ZONE/lbs//frontends\"
\\\n -d '{\n \"name\": \"main frontend\",\n \"backend_id\":
\"6920166d-8665-426e-85a6-f137e7e71e7f\",\n \"inbound_port\": 80,\n \"timeout_client\":
5000\n }'\n ```\n\n **Payload values**:\n\n * **name** (string):
A name for the frontend, e.g. `\"main frontend\"`\n * **backend_id** (number):
The ID of the backend to attach to the frontend, e.g. `6920166d-8665-426e-85a6-f137e7e71e7f`\n
\ * **inbound_port** (number): The port that the frontend should listen on for
incoming connections, e.g. `80`\n * **timeout_client** (number): The maximum
amount of inactivity time, in milliseconds, the frontend should allow before closing
the connection, e.g. `5000`\n\n6. **Delete your Load Balancer**: run the following
command to delete a Load Balancer. Ensure that you replace ``
in the URL with the ID of the Load Balancer you want to delete. You can customize
the payload to specify whether you want to release (delete) the [Flexible IP](https://www.scaleway.com/en/docs/load-balancer/concepts/#flexible-ip-address)
associated with the Load Balancer or not.\n\n ```bash\n curl -X DELETE \\\n
\ -H \"Content-Type: application/json\" \\\n -H \"X-Auth-Token: $SCW_SECRET_KEY\"
\\\n \"https://api.scaleway.com/lb/v1/zones/$SCW_DEFAULT_ZONE/lbs/\"
\\\n -d '{\n \"release_ip\": false\n }'\n ```\n\n\n\n- You have a [Scaleway account](https://console.scaleway.com/)\n-
You have created an [API key](https://www.scaleway.com/en/docs/iam/how-to/create-api-keys/)
and that the API key has sufficient [IAM permissions](https://www.scaleway.com/en/docs/iam/reference-content/permission-sets/)
to perform the actions described on this page\n- You have [installed `curl`](https://curl.se/download.html)\n\n\n\n##
Technical information\n\n\n### Availability Zones\n\nLoad Balancers can be deployed
in the following Availability Zones:\n\n| Name | API ID |\n|-----------|----------------------------------|\n|
Paris | `fr-par-1` `fr-par-2` |\n| Amsterdam | `nl-ams-1` `nl-ams-2`
`nl-ams-3` |\n| Warsaw | `pl-waw-1` `pl-waw-2` `pl-waw-3` |\n\nThe Scaleway
Load Balancer API is a **zoned** API, meaning that each call must specify in its
path parameters the Availability Zone for the resources concerned by the call.\n\n##
Going further\n\nFor more help using Scaleway Load Balancers, check out the following
resources:\n- Our [main documentation](https://www.scaleway.com/en/docs/load-balancer/)\n-
The #load-balancer channel on our [Slack Community](https://www.scaleway.com/en/docs/tutorials/scaleway-slack-community/)\n-
Our [support ticketing system](https://www.scaleway.com/en/docs/account/how-to/open-a-support-ticket/)."
version: v1
servers:
- url: https://api.scaleway.com
tags:
- name: Load Balancer
description: The main Load Balancer object. A Scaleway Load Balancer is a representation
of a fully-managed, highly-available Instance configured to direct traffic across
multiple servers. Use the Load Balancer endpoint to create, list, manage, update,
and delete Load Balancers.
- name: Frontends
description: The Load Balancer frontend object. It listens on a configured port
and forward requests to one or several backends. You can create multiple frontends
for any given Load Balancer, each listening on a different port, and choose to
add certificates to them if you wish. Use the frontends endpoint to create, list,
manage and delete frontends.
- name: Backends
description: The Load Balancer backend object. It represents a set of backend servers
that the frontend forwards requests to using the specified configuration (port,
protocol, proxy protocol etc). You can create multiple backends for each of your
Load Balancers. Use the backends endpoint to create backends, list, manage and
update them and their healthchecks / backend servers, and delete them as required
- name: Route
description: The Load Balancer route object. It represents a configuration on a
particular frontend to direct traffic to a particular backend if certain conditions
are fulfilled. Conditions must be based on SNI for direction to TCP backends,
or HTTP host headers for direction to HTTP backends. Use the routes endpoint to
create, edit, list, get and delete your routes.
- name: IP addresses
description: The Load Balancer IP address object. It represents a flexible IP address
which can be attached to a Load Balancer. Use this endpoint to create, list, get,
update and delete your Load Balancer IP addresses.
- name: Stats
description: Load balancer statistics (deprecated).
- name: ACLs
description: The Load Balancer ACL object. It represents an Access Control List
rule, which tells a given frontend to allow or deny incoming traffic based on
the traffic's source IP address and/or HTTP path and header. Use this endpoint
to create, list, get, update and delete ACLs.
- name: Certificate
description: The Load Balancer certificate object. It represents an SSL/TLS certificate
for your Load Balancer which can be used by a frontend to establish secure, encrypted
connections for incoming traffic. Use this endpoint to create Let's Encrypt certificates
or import custom certificates for your Load Balancer, and update, list, get and
delete them as required.
- name: Load Balancer Types
description: The Load Balancer offer type object. It represents the different commercial
types of Load Balancer offered by Scaleway, each with different specifications
and pricing. Use this endpoint to list all Load Balancer offer types.
- name: Alert Subscribers
description: The Alert Subscribers object. It represents a subscription to alerts
about Scaleway incidents impacting a given Load Balancer. Use this endpoint to
create subscribers (email addresses or webhooks), subscribe / unsubscribe them
to alerts for a particular Load Balancer, and update, list, get and delete subscribers.
- name: Private Networks
description: The Private Network object. It represents Scaleway Private Networks
which can be attached to/detached from a Load Balancer. Use this endpoint to list
the Private Networks attached to a Load Balancer, and to attach/detach a Load
Balancer to/from a Private Network. To create new Private Networks, use the dedicated
[Private Networks API](https://www.scaleway.com/en/developers/api/vpc/).
components:
schemas:
google.protobuf.StringValue:
type: string
nullable: true
scaleway.lb.v1.Acl:
type: object
properties:
id:
type: string
description: ACL ID.
name:
type: string
description: ACL name.
match:
type: object
description: ACL match filter object. One of `ip_subnet`, `ips_edge_services`
or `http_filter` & `http_filter_value` are required.
properties:
ip_subnet:
type: array
description: List of IPs or CIDR v4/v6 addresses to filter for from
the client side.
items:
$ref: '#/components/schemas/google.protobuf.StringValue'
ips_edge_services:
type: boolean
description: Defines whether Edge Services IPs should be matched.
http_filter:
type: string
description: Type of HTTP filter to match. Extracts the request's URL
path, which starts at the first slash and ends before the question
mark (without the host part). Defines where to filter for the http_filter_value.
Only supported for HTTP backends.
enum:
- acl_http_filter_none
- path_begin
- path_end
- regex
- http_header_match
default: acl_http_filter_none
http_filter_value:
type: array
description: List of values to filter for.
items:
$ref: '#/components/schemas/google.protobuf.StringValue'
http_filter_option:
type: string
description: Name of the HTTP header to filter on if `http_header_match`
was selected in `http_filter`.
nullable: true
invert:
type: boolean
description: Defines whether to invert the match condition. If set to
`true`, the ACL carries out its action when the condition DOES NOT
match.
x-properties-order:
- ip_subnet
- ips_edge_services
- http_filter
- http_filter_value
- http_filter_option
- invert
action:
type: object
description: Action to take when incoming traffic matches an ACL filter.
properties:
type:
type: string
description: Action to take when incoming traffic matches an ACL filter.
enum:
- allow
- deny
- redirect
default: allow
redirect:
type: object
description: Redirection parameters when using an ACL with a `redirect`
action.
properties:
type:
type: string
description: Redirect type.
enum:
- location
- scheme
default: location
target:
type: string
description: Redirect target. For a location redirect, you can use
a URL e.g. `https://scaleway.com`. Using a scheme name (e.g. `https`,
`http`, `ftp`, `git`) will replace the request's original scheme.
This can be useful to implement HTTP to HTTPS redirects. Valid
placeholders that can be used in a `location` redirect to preserve
parts of the original request in the redirection URL are \{\{host\}\},
\{\{query\}\}, \{\{path\}\} and \{\{scheme\}\}.
code:
type: integer
description: HTTP redirect code to use. Valid values are 301, 302,
303, 307 and 308. Default value is 302.
format: int32
nullable: true
x-properties-order:
- type
- target
- code
x-properties-order:
- type
- redirect
frontend:
type: object
description: ACL is attached to this frontend object.
properties:
id:
type: string
description: Frontend ID.
name:
type: string
description: Name of the frontend.
inbound_port:
type: integer
description: Port the frontend listens on.
format: int32
backend:
type: object
description: Backend object the frontend is attached to.
properties:
id:
type: string
description: Backend ID.
name:
type: string
description: Name of the backend.
forward_protocol:
type: string
description: Protocol used by the backend when forwarding traffic
to backend servers.
enum:
- tcp
- http
default: tcp
forward_port:
type: integer
description: Port used by the backend when forwarding traffic to
backend servers.
format: int32
forward_port_algorithm:
type: string
description: Load balancing algorithm to use when determining which
backend server to forward new traffic to.
enum:
- roundrobin
- leastconn
- first
default: roundrobin
sticky_sessions:
type: string
description: Defines whether sticky sessions (binding a particular
session to a particular backend server) are activated and the
method to use if so. None disables sticky sessions. Cookie-based
uses an HTTP cookie to stick a session to a backend server. Table-based
uses the source (client) IP address to stick a session to a backend
server.
enum:
- none
- cookie
- table
default: none
sticky_sessions_cookie_name:
type: string
description: Cookie name for cookie-based sticky sessions.
health_check:
type: object
description: Object defining the health check to be carried out
by the backend when checking the status and health of backend
servers.
properties:
port:
type: integer
description: Port to use for the backend server health check.
format: int32
check_delay:
type: number
description: Time to wait between two consecutive health checks.
(in milliseconds)
default: 3000
check_timeout:
type: number
description: Maximum time a backend server has to reply to the
health check. (in milliseconds)
default: 1000
check_max_retries:
type: integer
description: Number of consecutive unsuccessful health checks
after which the server will be considered dead.
format: int32
tcp_config:
type: object
description: Object to configure a basic TCP health check.
nullable: true
x-one-of: config
mysql_config:
type: object
description: Object to configure a MySQL health check. The check
requires MySQL >=3.22 or <9.0. For older or newer versions,
use a TCP health check.
properties:
user:
type: string
description: MySQL user to use for the health check.
nullable: true
x-properties-order:
- user
x-one-of: config
pgsql_config:
type: object
description: Object to configure a PostgreSQL health check.
properties:
user:
type: string
description: PostgreSQL user to use for the health check.
nullable: true
x-properties-order:
- user
x-one-of: config
ldap_config:
type: object
description: Object to configure an LDAP health check. The response
is analyzed to find the LDAPv3 response message.
nullable: true
x-one-of: config
redis_config:
type: object
description: Object to configure a Redis health check. The response
is analyzed to find the +PONG response message.
nullable: true
x-one-of: config
http_config:
type: object
description: Object to configure an HTTP health check.
properties:
uri:
type: string
description: |-
HTTP path used for the health check.
The HTTP path to use when performing a health check on backend servers.
method:
type: string
description: |-
HTTP method used for the health check.
The HTTP method used when performing a health check on backend servers.
code:
type: integer
description: |-
HTTP response code expected for a successful health check.
The HTTP response code that should be returned for a health check to be considered successful.
format: int32
nullable: true
host_header:
type: string
description: |-
HTTP host header used for the health check.
The HTTP host header used when performing a health check on backend servers.
nullable: true
x-properties-order:
- uri
- method
- code
- host_header
x-one-of: config
https_config:
type: object
description: Object to configure an HTTPS health check.
properties:
uri:
type: string
description: |-
HTTP path used for the health check.
The HTTP path to use when performing a health check on backend servers.
method:
type: string
description: |-
HTTP method used for the health check.
The HTTP method used when performing a health check on backend servers.
code:
type: integer
description: |-
HTTP response code expected for a successful health check.
The HTTP response code that should be returned for a health check to be considered successful.
format: int32
nullable: true
host_header:
type: string
description: |-
HTTP host header used for the health check.
The HTTP host header used when performing a health check on backend servers.
sni:
type: string
description: |-
SNI used for SSL health checks.
The SNI value used when performing a health check on backend servers over SSL.
nullable: true
x-properties-order:
- uri
- method
- code
- host_header
- sni
x-one-of: config
check_send_proxy:
type: boolean
description: Defines whether proxy protocol should be activated
for the health check.
transient_check_delay:
type: string
description: Time to wait between two consecutive health checks
when a backend server is in a transient state (going UP or
DOWN). (in seconds)
example: 2.5s
nullable: true
default: 0.5s
x-properties-order:
- port
- check_delay
- check_timeout
- check_max_retries
- tcp_config
- mysql_config
- pgsql_config
- ldap_config
- redis_config
- http_config
- https_config
- check_send_proxy
- transient_check_delay
pool:
type: array
description: List of IP addresses of backend servers attached to
this backend.
items:
type: string
lb:
type: object
description: Load Balancer the backend is attached to.
properties:
id:
type: string
description: Underlying Instance ID.
name:
type: string
description: Load Balancer name.
description:
type: string
description: Load Balancer description.
status:
type: string
description: Load Balancer status.
enum:
- unknown
- ready
- pending
- stopped
- error
- locked
- migrating
- to_create
- creating
- to_delete
- deleting
default: unknown
instances:
type: array
description: List of underlying Instances.
items:
$ref: '#/components/schemas/scaleway.lb.v1.Instance'
organization_id:
type: string
description: Scaleway Organization ID.
project_id:
type: string
description: Scaleway Project ID.
ip:
type: array
description: List of IP addresses attached to the Load Balancer.
items:
$ref: '#/components/schemas/scaleway.lb.v1.Ip'
tags:
type: array
description: Load Balancer tags.
items:
type: string
frontend_count:
type: integer
description: Number of frontends the Load Balancer has.
format: int32
backend_count:
type: integer
description: Number of backends the Load Balancer has.
format: int32
type:
type: string
description: Load Balancer offer type.
subscriber:
type: object
description: Subscriber information.
properties:
id:
type: string
description: Subscriber ID.
name:
type: string
description: Subscriber name.
email_config:
type: object
description: Email address of subscriber.
properties:
email:
type: string
description: Email address to send alerts to.
nullable: true
x-properties-order:
- email
x-one-of: config
webhook_config:
type: object
description: Webhook URI of subscriber.
properties:
uri:
type: string
description: URI to receive POST requests.
nullable: true
x-properties-order:
- uri
x-one-of: config
x-properties-order:
- id
- name
- email_config
- webhook_config
ssl_compatibility_level:
type: string
description: Determines the minimal SSL version which needs
to be supported on client side.
enum:
- ssl_compatibility_level_unknown
- ssl_compatibility_level_intermediate
- ssl_compatibility_level_modern
- ssl_compatibility_level_old
default: ssl_compatibility_level_unknown
created_at:
type: string
description: Date on which the Load Balancer was created. (RFC
3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
updated_at:
type: string
description: Date on which the Load Balancer was last updated.
(RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
private_network_count:
type: integer
description: Number of Private Networks attached to the Load
Balancer.
format: int32
route_count:
type: integer
description: Number of routes configured on the Load Balancer.
format: int32
region:
type: string
description: The region the Load Balancer is in.
deprecated: true
zone:
type: string
description: The zone the Load Balancer is in.
x-properties-order:
- id
- name
- description
- status
- instances
- organization_id
- project_id
- ip
- tags
- frontend_count
- backend_count
- type
- subscriber
- ssl_compatibility_level
- created_at
- updated_at
- private_network_count
- route_count
- region
- zone
send_proxy_v2:
type: boolean
description: Deprecated in favor of proxy_protocol field.
deprecated: true
timeout_server:
type: number
description: Maximum allowed time for a backend server to process
a request. (in milliseconds)
default: 300000
timeout_connect:
type: number
description: Maximum allowed time for establishing a connection
to a backend server. (in milliseconds)
default: 5000
timeout_tunnel:
type: number
description: Maximum allowed tunnel inactivity time after Websocket
is established (takes precedence over client and server timeout).
(in milliseconds)
default: 900000
on_marked_down_action:
type: string
description: Action to take when a backend server is marked as down.
enum:
- on_marked_down_action_none
- shutdown_sessions
default: on_marked_down_action_none
proxy_protocol:
type: string
description: Protocol to use between the Load Balancer and backend
servers. Allows the backend servers to be informed of the client's
real IP address. The PROXY protocol must be supported by the backend
servers' software.
enum:
- proxy_protocol_unknown
- proxy_protocol_none
- proxy_protocol_v1
- proxy_protocol_v2
- proxy_protocol_v2_ssl
- proxy_protocol_v2_ssl_cn
default: proxy_protocol_unknown
created_at:
type: string
description: Date at which the backend was created. (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
updated_at:
type: string
description: Date at which the backend was updated. (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
failover_host:
type: string
description: Scaleway Object Storage bucket website to be served
as failover if all backend servers are down, e.g. failover-website.s3-website.fr-par.scw.cloud.
nullable: true
ssl_bridging:
type: boolean
description: Defines whether to enable SSL bridging between the
Load Balancer and backend servers.
nullable: true
ignore_ssl_server_verify:
type: boolean
description: Defines whether the server certificate verification
should be ignored.
nullable: true
redispatch_attempt_count:
type: integer
description: Whether to use another backend server on each attempt.
format: int32
nullable: true
max_retries:
type: integer
description: Number of retries when a backend server connection
failed.
format: int32
nullable: true
max_connections:
type: integer
description: Maximum number of connections allowed per backend server.
format: int32
nullable: true
timeout_queue:
type: string
description: Maximum time for a request to be left pending in queue
when `max_connections` is reached. (in seconds)
example: 2.5s
nullable: true
x-properties-order:
- id
- name
- forward_protocol
- forward_port
- forward_port_algorithm
- sticky_sessions
- sticky_sessions_cookie_name
- health_check
- pool
- lb
- send_proxy_v2
- timeout_server
- timeout_connect
- timeout_tunnel
- on_marked_down_action
- proxy_protocol
- created_at
- updated_at
- failover_host
- ssl_bridging
- ignore_ssl_server_verify
- redispatch_attempt_count
- max_retries
- max_connections
- timeout_queue
lb:
type: object
description: Load Balancer object the frontend is attached to.
properties:
id:
type: string
description: Underlying Instance ID.
name:
type: string
description: Load Balancer name.
description:
type: string
description: Load Balancer description.
status:
type: string
description: Load Balancer status.
enum:
- unknown
- ready
- pending
- stopped
- error
- locked
- migrating
- to_create
- creating
- to_delete
- deleting
default: unknown
instances:
type: array
description: List of underlying Instances.
items:
$ref: '#/components/schemas/scaleway.lb.v1.Instance'
organization_id:
type: string
description: Scaleway Organization ID.
project_id:
type: string
description: Scaleway Project ID.
ip:
type: array
description: List of IP addresses attached to the Load Balancer.
items:
$ref: '#/components/schemas/scaleway.lb.v1.Ip'
tags:
type: array
description: Load Balancer tags.
items:
type: string
frontend_count:
type: integer
description: Number of frontends the Load Balancer has.
format: int32
backend_count:
type: integer
description: Number of backends the Load Balancer has.
format: int32
type:
type: string
description: Load Balancer offer type.
subscriber:
type: object
description: Subscriber information.
properties:
id:
type: string
description: Subscriber ID.
name:
type: string
description: Subscriber name.
email_config:
type: object
description: Email address of subscriber.
properties:
email:
type: string
description: Email address to send alerts to.
nullable: true
x-properties-order:
- email
x-one-of: config
webhook_config:
type: object
description: Webhook URI of subscriber.
properties:
uri:
type: string
description: URI to receive POST requests.
nullable: true
x-properties-order:
- uri
x-one-of: config
x-properties-order:
- id
- name
- email_config
- webhook_config
ssl_compatibility_level:
type: string
description: Determines the minimal SSL version which needs to be
supported on client side.
enum:
- ssl_compatibility_level_unknown
- ssl_compatibility_level_intermediate
- ssl_compatibility_level_modern
- ssl_compatibility_level_old
default: ssl_compatibility_level_unknown
created_at:
type: string
description: Date on which the Load Balancer was created. (RFC 3339
format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
updated_at:
type: string
description: Date on which the Load Balancer was last updated. (RFC
3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
private_network_count:
type: integer
description: Number of Private Networks attached to the Load Balancer.
format: int32
route_count:
type: integer
description: Number of routes configured on the Load Balancer.
format: int32
region:
type: string
description: The region the Load Balancer is in.
deprecated: true
zone:
type: string
description: The zone the Load Balancer is in.
x-properties-order:
- id
- name
- description
- status
- instances
- organization_id
- project_id
- ip
- tags
- frontend_count
- backend_count
- type
- subscriber
- ssl_compatibility_level
- created_at
- updated_at
- private_network_count
- route_count
- region
- zone
timeout_client:
type: number
description: Maximum allowed inactivity time on the client side. (in
milliseconds)
default: 300000
certificate:
type: object
description: Certificate, deprecated in favor of certificate_ids array.
deprecated: true
properties:
type:
type: string
description: Certificate type (Let's Encrypt or custom).
enum:
- letsencryt
- custom
- letsencrypt
default: letsencryt
id:
type: string
description: Certificate ID.
common_name:
type: string
description: Main domain name of certificate.
subject_alternative_name:
type: array
description: Alternative domain names.
items:
type: string
fingerprint:
type: string
description: Identifier (SHA-1) of the certificate.
not_valid_before:
type: string
description: Lower validity bound. (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
not_valid_after:
type: string
description: Upper validity bound. (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
status:
type: string
description: Certificate status.
enum:
- pending
- ready
- error
default: pending
lb:
type: object
description: Load Balancer object the certificate is attached to.
properties:
id:
type: string
description: Underlying Instance ID.
name:
type: string
description: Load Balancer name.
description:
type: string
description: Load Balancer description.
status:
type: string
description: Load Balancer status.
enum:
- unknown
- ready
- pending
- stopped
- error
- locked
- migrating
- to_create
- creating
- to_delete
- deleting
default: unknown
instances:
type: array
description: List of underlying Instances.
items:
$ref: '#/components/schemas/scaleway.lb.v1.Instance'
organization_id:
type: string
description: Scaleway Organization ID.
project_id:
type: string
description: Scaleway Project ID.
ip:
type: array
description: List of IP addresses attached to the Load Balancer.
items:
$ref: '#/components/schemas/scaleway.lb.v1.Ip'
tags:
type: array
description: Load Balancer tags.
items:
type: string
frontend_count:
type: integer
description: Number of frontends the Load Balancer has.
format: int32
backend_count:
type: integer
description: Number of backends the Load Balancer has.
format: int32
type:
type: string
description: Load Balancer offer type.
subscriber:
type: object
description: Subscriber information.
properties:
id:
type: string
description: Subscriber ID.
name:
type: string
description: Subscriber name.
email_config:
type: object
description: Email address of subscriber.
properties:
email:
type: string
description: Email address to send alerts to.
nullable: true
x-properties-order:
- email
x-one-of: config
webhook_config:
type: object
description: Webhook URI of subscriber.
properties:
uri:
type: string
description: URI to receive POST requests.
nullable: true
x-properties-order:
- uri
x-one-of: config
x-properties-order:
- id
- name
- email_config
- webhook_config
ssl_compatibility_level:
type: string
description: Determines the minimal SSL version which needs
to be supported on client side.
enum:
- ssl_compatibility_level_unknown
- ssl_compatibility_level_intermediate
- ssl_compatibility_level_modern
- ssl_compatibility_level_old
default: ssl_compatibility_level_unknown
created_at:
type: string
description: Date on which the Load Balancer was created. (RFC
3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
updated_at:
type: string
description: Date on which the Load Balancer was last updated.
(RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
private_network_count:
type: integer
description: Number of Private Networks attached to the Load
Balancer.
format: int32
route_count:
type: integer
description: Number of routes configured on the Load Balancer.
format: int32
region:
type: string
description: The region the Load Balancer is in.
deprecated: true
zone:
type: string
description: The zone the Load Balancer is in.
x-properties-order:
- id
- name
- description
- status
- instances
- organization_id
- project_id
- ip
- tags
- frontend_count
- backend_count
- type
- subscriber
- ssl_compatibility_level
- created_at
- updated_at
- private_network_count
- route_count
- region
- zone
name:
type: string
description: Certificate name.
created_at:
type: string
description: Date on which the certificate was created. (RFC 3339
format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
updated_at:
type: string
description: Date on which the certificate was last updated. (RFC
3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
status_details:
type: string
description: Additional information about the certificate status
(useful in case of certificate generation failure, for example).
nullable: true
x-properties-order:
- type
- id
- common_name
- subject_alternative_name
- fingerprint
- not_valid_before
- not_valid_after
- status
- lb
- name
- created_at
- updated_at
- status_details
certificate_ids:
type: array
description: List of SSL/TLS certificate IDs to bind to the frontend.
items:
type: string
created_at:
type: string
description: Date on which the frontend was created. (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
updated_at:
type: string
description: Date on which the frontend was last updated. (RFC 3339
format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
enable_http3:
type: boolean
description: Defines whether to enable HTTP/3 protocol on the frontend.
connection_rate_limit:
type: integer
description: Rate limit for new connections established on this frontend.
Use 0 value to disable, else value is connections per second.
format: uint32
nullable: true
enable_access_logs:
type: boolean
description: Defines whether to enable access logs on the frontend.
x-properties-order:
- id
- name
- inbound_port
- backend
- lb
- timeout_client
- certificate
- certificate_ids
- created_at
- updated_at
- enable_http3
- connection_rate_limit
- enable_access_logs
index:
type: integer
description: Priority of this ACL (ACLs are applied in ascending order,
0 is the first ACL executed).
format: int32
created_at:
type: string
description: Date on which the ACL was created. (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
updated_at:
type: string
description: Date on which the ACL was last updated. (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
description:
type: string
description: ACL description.
x-properties-order:
- id
- name
- match
- action
- frontend
- index
- created_at
- updated_at
- description
scaleway.lb.v1.AclSpec:
type: object
properties:
name:
type: string
description: ACL name.
action:
type: object
description: Action to take when incoming traffic matches an ACL filter.
properties:
type:
type: string
description: Action to take when incoming traffic matches an ACL filter.
enum:
- allow
- deny
- redirect
default: allow
redirect:
type: object
description: Redirection parameters when using an ACL with a `redirect`
action.
properties:
type:
type: string
description: Redirect type.
enum:
- location
- scheme
default: location
target:
type: string
description: Redirect target. For a location redirect, you can use
a URL e.g. `https://scaleway.com`. Using a scheme name (e.g. `https`,
`http`, `ftp`, `git`) will replace the request's original scheme.
This can be useful to implement HTTP to HTTPS redirects. Valid
placeholders that can be used in a `location` redirect to preserve
parts of the original request in the redirection URL are \{\{host\}\},
\{\{query\}\}, \{\{path\}\} and \{\{scheme\}\}.
code:
type: integer
description: HTTP redirect code to use. Valid values are 301, 302,
303, 307 and 308. Default value is 302.
format: int32
nullable: true
x-properties-order:
- type
- target
- code
x-properties-order:
- type
- redirect
match:
type: object
description: ACL match filter object. One of `ip_subnet`, `ips_edge_services`
or `http_filter` and `http_filter_value` are required.
properties:
ip_subnet:
type: array
description: List of IPs or CIDR v4/v6 addresses to filter for from
the client side.
items:
$ref: '#/components/schemas/google.protobuf.StringValue'
ips_edge_services:
type: boolean
description: Defines whether Edge Services IPs should be matched.
http_filter:
type: string
description: Type of HTTP filter to match. Extracts the request's URL
path, which starts at the first slash and ends before the question
mark (without the host part). Defines where to filter for the http_filter_value.
Only supported for HTTP backends.
enum:
- acl_http_filter_none
- path_begin
- path_end
- regex
- http_header_match
default: acl_http_filter_none
http_filter_value:
type: array
description: List of values to filter for.
items:
$ref: '#/components/schemas/google.protobuf.StringValue'
http_filter_option:
type: string
description: Name of the HTTP header to filter on if `http_header_match`
was selected in `http_filter`.
nullable: true
invert:
type: boolean
description: Defines whether to invert the match condition. If set to
`true`, the ACL carries out its action when the condition DOES NOT
match.
x-properties-order:
- ip_subnet
- ips_edge_services
- http_filter
- http_filter_value
- http_filter_option
- invert
index:
type: integer
description: Priority of this ACL (ACLs are applied in ascending order,
0 is the first ACL executed).
format: int32
description:
type: string
description: ACL description.
required:
- name
- action
- index
x-properties-order:
- name
- action
- match
- index
- description
scaleway.lb.v1.Backend:
type: object
properties:
id:
type: string
description: Backend ID.
name:
type: string
description: Name of the backend.
forward_protocol:
type: string
description: Protocol used by the backend when forwarding traffic to backend
servers.
enum:
- tcp
- http
default: tcp
forward_port:
type: integer
description: Port used by the backend when forwarding traffic to backend
servers.
format: int32
forward_port_algorithm:
type: string
description: Load balancing algorithm to use when determining which backend
server to forward new traffic to.
enum:
- roundrobin
- leastconn
- first
default: roundrobin
sticky_sessions:
type: string
description: Defines whether sticky sessions (binding a particular session
to a particular backend server) are activated and the method to use if
so. None disables sticky sessions. Cookie-based uses an HTTP cookie to
stick a session to a backend server. Table-based uses the source (client)
IP address to stick a session to a backend server.
enum:
- none
- cookie
- table
default: none
sticky_sessions_cookie_name:
type: string
description: Cookie name for cookie-based sticky sessions.
health_check:
type: object
description: Object defining the health check to be carried out by the backend
when checking the status and health of backend servers.
properties:
port:
type: integer
description: Port to use for the backend server health check.
format: int32
check_delay:
type: number
description: Time to wait between two consecutive health checks. (in
milliseconds)
default: 3000
check_timeout:
type: number
description: Maximum time a backend server has to reply to the health
check. (in milliseconds)
default: 1000
check_max_retries:
type: integer
description: Number of consecutive unsuccessful health checks after
which the server will be considered dead.
format: int32
tcp_config:
type: object
description: Object to configure a basic TCP health check.
nullable: true
x-one-of: config
mysql_config:
type: object
description: Object to configure a MySQL health check. The check requires
MySQL >=3.22 or <9.0. For older or newer versions, use a TCP health
check.
properties:
user:
type: string
description: MySQL user to use for the health check.
nullable: true
x-properties-order:
- user
x-one-of: config
pgsql_config:
type: object
description: Object to configure a PostgreSQL health check.
properties:
user:
type: string
description: PostgreSQL user to use for the health check.
nullable: true
x-properties-order:
- user
x-one-of: config
ldap_config:
type: object
description: Object to configure an LDAP health check. The response
is analyzed to find the LDAPv3 response message.
nullable: true
x-one-of: config
redis_config:
type: object
description: Object to configure a Redis health check. The response
is analyzed to find the +PONG response message.
nullable: true
x-one-of: config
http_config:
type: object
description: Object to configure an HTTP health check.
properties:
uri:
type: string
description: |-
HTTP path used for the health check.
The HTTP path to use when performing a health check on backend servers.
method:
type: string
description: |-
HTTP method used for the health check.
The HTTP method used when performing a health check on backend servers.
code:
type: integer
description: |-
HTTP response code expected for a successful health check.
The HTTP response code that should be returned for a health check to be considered successful.
format: int32
nullable: true
host_header:
type: string
description: |-
HTTP host header used for the health check.
The HTTP host header used when performing a health check on backend servers.
nullable: true
x-properties-order:
- uri
- method
- code
- host_header
x-one-of: config
https_config:
type: object
description: Object to configure an HTTPS health check.
properties:
uri:
type: string
description: |-
HTTP path used for the health check.
The HTTP path to use when performing a health check on backend servers.
method:
type: string
description: |-
HTTP method used for the health check.
The HTTP method used when performing a health check on backend servers.
code:
type: integer
description: |-
HTTP response code expected for a successful health check.
The HTTP response code that should be returned for a health check to be considered successful.
format: int32
nullable: true
host_header:
type: string
description: |-
HTTP host header used for the health check.
The HTTP host header used when performing a health check on backend servers.
sni:
type: string
description: |-
SNI used for SSL health checks.
The SNI value used when performing a health check on backend servers over SSL.
nullable: true
x-properties-order:
- uri
- method
- code
- host_header
- sni
x-one-of: config
check_send_proxy:
type: boolean
description: Defines whether proxy protocol should be activated for
the health check.
transient_check_delay:
type: string
description: Time to wait between two consecutive health checks when
a backend server is in a transient state (going UP or DOWN). (in seconds)
example: 2.5s
nullable: true
default: 0.5s
x-properties-order:
- port
- check_delay
- check_timeout
- check_max_retries
- tcp_config
- mysql_config
- pgsql_config
- ldap_config
- redis_config
- http_config
- https_config
- check_send_proxy
- transient_check_delay
pool:
type: array
description: List of IP addresses of backend servers attached to this backend.
items:
type: string
lb:
type: object
description: Load Balancer the backend is attached to.
properties:
id:
type: string
description: Underlying Instance ID.
name:
type: string
description: Load Balancer name.
description:
type: string
description: Load Balancer description.
status:
type: string
description: Load Balancer status.
enum:
- unknown
- ready
- pending
- stopped
- error
- locked
- migrating
- to_create
- creating
- to_delete
- deleting
default: unknown
instances:
type: array
description: List of underlying Instances.
items:
$ref: '#/components/schemas/scaleway.lb.v1.Instance'
organization_id:
type: string
description: Scaleway Organization ID.
project_id:
type: string
description: Scaleway Project ID.
ip:
type: array
description: List of IP addresses attached to the Load Balancer.
items:
$ref: '#/components/schemas/scaleway.lb.v1.Ip'
tags:
type: array
description: Load Balancer tags.
items:
type: string
frontend_count:
type: integer
description: Number of frontends the Load Balancer has.
format: int32
backend_count:
type: integer
description: Number of backends the Load Balancer has.
format: int32
type:
type: string
description: Load Balancer offer type.
subscriber:
type: object
description: Subscriber information.
properties:
id:
type: string
description: Subscriber ID.
name:
type: string
description: Subscriber name.
email_config:
type: object
description: Email address of subscriber.
properties:
email:
type: string
description: Email address to send alerts to.
nullable: true
x-properties-order:
- email
x-one-of: config
webhook_config:
type: object
description: Webhook URI of subscriber.
properties:
uri:
type: string
description: URI to receive POST requests.
nullable: true
x-properties-order:
- uri
x-one-of: config
x-properties-order:
- id
- name
- email_config
- webhook_config
ssl_compatibility_level:
type: string
description: Determines the minimal SSL version which needs to be supported
on client side.
enum:
- ssl_compatibility_level_unknown
- ssl_compatibility_level_intermediate
- ssl_compatibility_level_modern
- ssl_compatibility_level_old
default: ssl_compatibility_level_unknown
created_at:
type: string
description: Date on which the Load Balancer was created. (RFC 3339
format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
updated_at:
type: string
description: Date on which the Load Balancer was last updated. (RFC
3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
private_network_count:
type: integer
description: Number of Private Networks attached to the Load Balancer.
format: int32
route_count:
type: integer
description: Number of routes configured on the Load Balancer.
format: int32
region:
type: string
description: The region the Load Balancer is in.
deprecated: true
zone:
type: string
description: The zone the Load Balancer is in.
x-properties-order:
- id
- name
- description
- status
- instances
- organization_id
- project_id
- ip
- tags
- frontend_count
- backend_count
- type
- subscriber
- ssl_compatibility_level
- created_at
- updated_at
- private_network_count
- route_count
- region
- zone
send_proxy_v2:
type: boolean
description: Deprecated in favor of proxy_protocol field.
deprecated: true
timeout_server:
type: number
description: Maximum allowed time for a backend server to process a request.
(in milliseconds)
default: 300000
timeout_connect:
type: number
description: Maximum allowed time for establishing a connection to a backend
server. (in milliseconds)
default: 5000
timeout_tunnel:
type: number
description: Maximum allowed tunnel inactivity time after Websocket is established
(takes precedence over client and server timeout). (in milliseconds)
default: 900000
on_marked_down_action:
type: string
description: Action to take when a backend server is marked as down.
enum:
- on_marked_down_action_none
- shutdown_sessions
default: on_marked_down_action_none
proxy_protocol:
type: string
description: Protocol to use between the Load Balancer and backend servers.
Allows the backend servers to be informed of the client's real IP address.
The PROXY protocol must be supported by the backend servers' software.
enum:
- proxy_protocol_unknown
- proxy_protocol_none
- proxy_protocol_v1
- proxy_protocol_v2
- proxy_protocol_v2_ssl
- proxy_protocol_v2_ssl_cn
default: proxy_protocol_unknown
created_at:
type: string
description: Date at which the backend was created. (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
updated_at:
type: string
description: Date at which the backend was updated. (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
failover_host:
type: string
description: Scaleway Object Storage bucket website to be served as failover
if all backend servers are down, e.g. failover-website.s3-website.fr-par.scw.cloud.
nullable: true
ssl_bridging:
type: boolean
description: Defines whether to enable SSL bridging between the Load Balancer
and backend servers.
nullable: true
ignore_ssl_server_verify:
type: boolean
description: Defines whether the server certificate verification should
be ignored.
nullable: true
redispatch_attempt_count:
type: integer
description: Whether to use another backend server on each attempt.
format: int32
nullable: true
max_retries:
type: integer
description: Number of retries when a backend server connection failed.
format: int32
nullable: true
max_connections:
type: integer
description: Maximum number of connections allowed per backend server.
format: int32
nullable: true
timeout_queue:
type: string
description: Maximum time for a request to be left pending in queue when
`max_connections` is reached. (in seconds)
example: 2.5s
nullable: true
x-properties-order:
- id
- name
- forward_protocol
- forward_port
- forward_port_algorithm
- sticky_sessions
- sticky_sessions_cookie_name
- health_check
- pool
- lb
- send_proxy_v2
- timeout_server
- timeout_connect
- timeout_tunnel
- on_marked_down_action
- proxy_protocol
- created_at
- updated_at
- failover_host
- ssl_bridging
- ignore_ssl_server_verify
- redispatch_attempt_count
- max_retries
- max_connections
- timeout_queue
scaleway.lb.v1.BackendServerStats:
type: object
properties:
instance_id:
type: string
description: ID of your Load Balancer's underlying Instance.
backend_id:
type: string
description: Backend ID.
ip:
type: string
description: IPv4 or IPv6 address of the backend server.
server_state:
type: string
description: Server operational state (stopped/starting/running/stopping).
enum:
- stopped
- starting
- running
- stopping
default: stopped
server_state_changed_at:
type: string
description: Time since last operational change. (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
last_health_check_status:
type: string
description: Last health check status (unknown/neutral/failed/passed/condpass).
enum:
- unknown
- neutral
- failed
- passed
- condpass
default: unknown
x-properties-order:
- instance_id
- backend_id
- ip
- server_state
- server_state_changed_at
- last_health_check_status
scaleway.lb.v1.Certificate:
type: object
properties:
type:
type: string
description: Certificate type (Let's Encrypt or custom).
enum:
- letsencryt
- custom
- letsencrypt
default: letsencryt
id:
type: string
description: Certificate ID.
common_name:
type: string
description: Main domain name of certificate.
subject_alternative_name:
type: array
description: Alternative domain names.
items:
type: string
fingerprint:
type: string
description: Identifier (SHA-1) of the certificate.
not_valid_before:
type: string
description: Lower validity bound. (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
not_valid_after:
type: string
description: Upper validity bound. (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
status:
type: string
description: Certificate status.
enum:
- pending
- ready
- error
default: pending
lb:
type: object
description: Load Balancer object the certificate is attached to.
properties:
id:
type: string
description: Underlying Instance ID.
name:
type: string
description: Load Balancer name.
description:
type: string
description: Load Balancer description.
status:
type: string
description: Load Balancer status.
enum:
- unknown
- ready
- pending
- stopped
- error
- locked
- migrating
- to_create
- creating
- to_delete
- deleting
default: unknown
instances:
type: array
description: List of underlying Instances.
items:
$ref: '#/components/schemas/scaleway.lb.v1.Instance'
organization_id:
type: string
description: Scaleway Organization ID.
project_id:
type: string
description: Scaleway Project ID.
ip:
type: array
description: List of IP addresses attached to the Load Balancer.
items:
$ref: '#/components/schemas/scaleway.lb.v1.Ip'
tags:
type: array
description: Load Balancer tags.
items:
type: string
frontend_count:
type: integer
description: Number of frontends the Load Balancer has.
format: int32
backend_count:
type: integer
description: Number of backends the Load Balancer has.
format: int32
type:
type: string
description: Load Balancer offer type.
subscriber:
type: object
description: Subscriber information.
properties:
id:
type: string
description: Subscriber ID.
name:
type: string
description: Subscriber name.
email_config:
type: object
description: Email address of subscriber.
properties:
email:
type: string
description: Email address to send alerts to.
nullable: true
x-properties-order:
- email
x-one-of: config
webhook_config:
type: object
description: Webhook URI of subscriber.
properties:
uri:
type: string
description: URI to receive POST requests.
nullable: true
x-properties-order:
- uri
x-one-of: config
x-properties-order:
- id
- name
- email_config
- webhook_config
ssl_compatibility_level:
type: string
description: Determines the minimal SSL version which needs to be supported
on client side.
enum:
- ssl_compatibility_level_unknown
- ssl_compatibility_level_intermediate
- ssl_compatibility_level_modern
- ssl_compatibility_level_old
default: ssl_compatibility_level_unknown
created_at:
type: string
description: Date on which the Load Balancer was created. (RFC 3339
format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
updated_at:
type: string
description: Date on which the Load Balancer was last updated. (RFC
3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
private_network_count:
type: integer
description: Number of Private Networks attached to the Load Balancer.
format: int32
route_count:
type: integer
description: Number of routes configured on the Load Balancer.
format: int32
region:
type: string
description: The region the Load Balancer is in.
deprecated: true
zone:
type: string
description: The zone the Load Balancer is in.
x-properties-order:
- id
- name
- description
- status
- instances
- organization_id
- project_id
- ip
- tags
- frontend_count
- backend_count
- type
- subscriber
- ssl_compatibility_level
- created_at
- updated_at
- private_network_count
- route_count
- region
- zone
name:
type: string
description: Certificate name.
created_at:
type: string
description: Date on which the certificate was created. (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
updated_at:
type: string
description: Date on which the certificate was last updated. (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
status_details:
type: string
description: Additional information about the certificate status (useful
in case of certificate generation failure, for example).
nullable: true
x-properties-order:
- type
- id
- common_name
- subject_alternative_name
- fingerprint
- not_valid_before
- not_valid_after
- status
- lb
- name
- created_at
- updated_at
- status_details
scaleway.lb.v1.Frontend:
type: object
properties:
id:
type: string
description: Frontend ID.
name:
type: string
description: Name of the frontend.
inbound_port:
type: integer
description: Port the frontend listens on.
format: int32
backend:
type: object
description: Backend object the frontend is attached to.
properties:
id:
type: string
description: Backend ID.
name:
type: string
description: Name of the backend.
forward_protocol:
type: string
description: Protocol used by the backend when forwarding traffic to
backend servers.
enum:
- tcp
- http
default: tcp
forward_port:
type: integer
description: Port used by the backend when forwarding traffic to backend
servers.
format: int32
forward_port_algorithm:
type: string
description: Load balancing algorithm to use when determining which
backend server to forward new traffic to.
enum:
- roundrobin
- leastconn
- first
default: roundrobin
sticky_sessions:
type: string
description: Defines whether sticky sessions (binding a particular session
to a particular backend server) are activated and the method to use
if so. None disables sticky sessions. Cookie-based uses an HTTP cookie
to stick a session to a backend server. Table-based uses the source
(client) IP address to stick a session to a backend server.
enum:
- none
- cookie
- table
default: none
sticky_sessions_cookie_name:
type: string
description: Cookie name for cookie-based sticky sessions.
health_check:
type: object
description: Object defining the health check to be carried out by the
backend when checking the status and health of backend servers.
properties:
port:
type: integer
description: Port to use for the backend server health check.
format: int32
check_delay:
type: number
description: Time to wait between two consecutive health checks.
(in milliseconds)
default: 3000
check_timeout:
type: number
description: Maximum time a backend server has to reply to the health
check. (in milliseconds)
default: 1000
check_max_retries:
type: integer
description: Number of consecutive unsuccessful health checks after
which the server will be considered dead.
format: int32
tcp_config:
type: object
description: Object to configure a basic TCP health check.
nullable: true
x-one-of: config
mysql_config:
type: object
description: Object to configure a MySQL health check. The check
requires MySQL >=3.22 or <9.0. For older or newer versions, use
a TCP health check.
properties:
user:
type: string
description: MySQL user to use for the health check.
nullable: true
x-properties-order:
- user
x-one-of: config
pgsql_config:
type: object
description: Object to configure a PostgreSQL health check.
properties:
user:
type: string
description: PostgreSQL user to use for the health check.
nullable: true
x-properties-order:
- user
x-one-of: config
ldap_config:
type: object
description: Object to configure an LDAP health check. The response
is analyzed to find the LDAPv3 response message.
nullable: true
x-one-of: config
redis_config:
type: object
description: Object to configure a Redis health check. The response
is analyzed to find the +PONG response message.
nullable: true
x-one-of: config
http_config:
type: object
description: Object to configure an HTTP health check.
properties:
uri:
type: string
description: |-
HTTP path used for the health check.
The HTTP path to use when performing a health check on backend servers.
method:
type: string
description: |-
HTTP method used for the health check.
The HTTP method used when performing a health check on backend servers.
code:
type: integer
description: |-
HTTP response code expected for a successful health check.
The HTTP response code that should be returned for a health check to be considered successful.
format: int32
nullable: true
host_header:
type: string
description: |-
HTTP host header used for the health check.
The HTTP host header used when performing a health check on backend servers.
nullable: true
x-properties-order:
- uri
- method
- code
- host_header
x-one-of: config
https_config:
type: object
description: Object to configure an HTTPS health check.
properties:
uri:
type: string
description: |-
HTTP path used for the health check.
The HTTP path to use when performing a health check on backend servers.
method:
type: string
description: |-
HTTP method used for the health check.
The HTTP method used when performing a health check on backend servers.
code:
type: integer
description: |-
HTTP response code expected for a successful health check.
The HTTP response code that should be returned for a health check to be considered successful.
format: int32
nullable: true
host_header:
type: string
description: |-
HTTP host header used for the health check.
The HTTP host header used when performing a health check on backend servers.
sni:
type: string
description: |-
SNI used for SSL health checks.
The SNI value used when performing a health check on backend servers over SSL.
nullable: true
x-properties-order:
- uri
- method
- code
- host_header
- sni
x-one-of: config
check_send_proxy:
type: boolean
description: Defines whether proxy protocol should be activated
for the health check.
transient_check_delay:
type: string
description: Time to wait between two consecutive health checks
when a backend server is in a transient state (going UP or DOWN).
(in seconds)
example: 2.5s
nullable: true
default: 0.5s
x-properties-order:
- port
- check_delay
- check_timeout
- check_max_retries
- tcp_config
- mysql_config
- pgsql_config
- ldap_config
- redis_config
- http_config
- https_config
- check_send_proxy
- transient_check_delay
pool:
type: array
description: List of IP addresses of backend servers attached to this
backend.
items:
type: string
lb:
type: object
description: Load Balancer the backend is attached to.
properties:
id:
type: string
description: Underlying Instance ID.
name:
type: string
description: Load Balancer name.
description:
type: string
description: Load Balancer description.
status:
type: string
description: Load Balancer status.
enum:
- unknown
- ready
- pending
- stopped
- error
- locked
- migrating
- to_create
- creating
- to_delete
- deleting
default: unknown
instances:
type: array
description: List of underlying Instances.
items:
$ref: '#/components/schemas/scaleway.lb.v1.Instance'
organization_id:
type: string
description: Scaleway Organization ID.
project_id:
type: string
description: Scaleway Project ID.
ip:
type: array
description: List of IP addresses attached to the Load Balancer.
items:
$ref: '#/components/schemas/scaleway.lb.v1.Ip'
tags:
type: array
description: Load Balancer tags.
items:
type: string
frontend_count:
type: integer
description: Number of frontends the Load Balancer has.
format: int32
backend_count:
type: integer
description: Number of backends the Load Balancer has.
format: int32
type:
type: string
description: Load Balancer offer type.
subscriber:
type: object
description: Subscriber information.
properties:
id:
type: string
description: Subscriber ID.
name:
type: string
description: Subscriber name.
email_config:
type: object
description: Email address of subscriber.
properties:
email:
type: string
description: Email address to send alerts to.
nullable: true
x-properties-order:
- email
x-one-of: config
webhook_config:
type: object
description: Webhook URI of subscriber.
properties:
uri:
type: string
description: URI to receive POST requests.
nullable: true
x-properties-order:
- uri
x-one-of: config
x-properties-order:
- id
- name
- email_config
- webhook_config
ssl_compatibility_level:
type: string
description: Determines the minimal SSL version which needs to be
supported on client side.
enum:
- ssl_compatibility_level_unknown
- ssl_compatibility_level_intermediate
- ssl_compatibility_level_modern
- ssl_compatibility_level_old
default: ssl_compatibility_level_unknown
created_at:
type: string
description: Date on which the Load Balancer was created. (RFC 3339
format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
updated_at:
type: string
description: Date on which the Load Balancer was last updated. (RFC
3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
private_network_count:
type: integer
description: Number of Private Networks attached to the Load Balancer.
format: int32
route_count:
type: integer
description: Number of routes configured on the Load Balancer.
format: int32
region:
type: string
description: The region the Load Balancer is in.
deprecated: true
zone:
type: string
description: The zone the Load Balancer is in.
x-properties-order:
- id
- name
- description
- status
- instances
- organization_id
- project_id
- ip
- tags
- frontend_count
- backend_count
- type
- subscriber
- ssl_compatibility_level
- created_at
- updated_at
- private_network_count
- route_count
- region
- zone
send_proxy_v2:
type: boolean
description: Deprecated in favor of proxy_protocol field.
deprecated: true
timeout_server:
type: number
description: Maximum allowed time for a backend server to process a
request. (in milliseconds)
default: 300000
timeout_connect:
type: number
description: Maximum allowed time for establishing a connection to a
backend server. (in milliseconds)
default: 5000
timeout_tunnel:
type: number
description: Maximum allowed tunnel inactivity time after Websocket
is established (takes precedence over client and server timeout).
(in milliseconds)
default: 900000
on_marked_down_action:
type: string
description: Action to take when a backend server is marked as down.
enum:
- on_marked_down_action_none
- shutdown_sessions
default: on_marked_down_action_none
proxy_protocol:
type: string
description: Protocol to use between the Load Balancer and backend servers.
Allows the backend servers to be informed of the client's real IP
address. The PROXY protocol must be supported by the backend servers'
software.
enum:
- proxy_protocol_unknown
- proxy_protocol_none
- proxy_protocol_v1
- proxy_protocol_v2
- proxy_protocol_v2_ssl
- proxy_protocol_v2_ssl_cn
default: proxy_protocol_unknown
created_at:
type: string
description: Date at which the backend was created. (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
updated_at:
type: string
description: Date at which the backend was updated. (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
failover_host:
type: string
description: Scaleway Object Storage bucket website to be served as
failover if all backend servers are down, e.g. failover-website.s3-website.fr-par.scw.cloud.
nullable: true
ssl_bridging:
type: boolean
description: Defines whether to enable SSL bridging between the Load
Balancer and backend servers.
nullable: true
ignore_ssl_server_verify:
type: boolean
description: Defines whether the server certificate verification should
be ignored.
nullable: true
redispatch_attempt_count:
type: integer
description: Whether to use another backend server on each attempt.
format: int32
nullable: true
max_retries:
type: integer
description: Number of retries when a backend server connection failed.
format: int32
nullable: true
max_connections:
type: integer
description: Maximum number of connections allowed per backend server.
format: int32
nullable: true
timeout_queue:
type: string
description: Maximum time for a request to be left pending in queue
when `max_connections` is reached. (in seconds)
example: 2.5s
nullable: true
x-properties-order:
- id
- name
- forward_protocol
- forward_port
- forward_port_algorithm
- sticky_sessions
- sticky_sessions_cookie_name
- health_check
- pool
- lb
- send_proxy_v2
- timeout_server
- timeout_connect
- timeout_tunnel
- on_marked_down_action
- proxy_protocol
- created_at
- updated_at
- failover_host
- ssl_bridging
- ignore_ssl_server_verify
- redispatch_attempt_count
- max_retries
- max_connections
- timeout_queue
lb:
type: object
description: Load Balancer object the frontend is attached to.
properties:
id:
type: string
description: Underlying Instance ID.
name:
type: string
description: Load Balancer name.
description:
type: string
description: Load Balancer description.
status:
type: string
description: Load Balancer status.
enum:
- unknown
- ready
- pending
- stopped
- error
- locked
- migrating
- to_create
- creating
- to_delete
- deleting
default: unknown
instances:
type: array
description: List of underlying Instances.
items:
$ref: '#/components/schemas/scaleway.lb.v1.Instance'
organization_id:
type: string
description: Scaleway Organization ID.
project_id:
type: string
description: Scaleway Project ID.
ip:
type: array
description: List of IP addresses attached to the Load Balancer.
items:
$ref: '#/components/schemas/scaleway.lb.v1.Ip'
tags:
type: array
description: Load Balancer tags.
items:
type: string
frontend_count:
type: integer
description: Number of frontends the Load Balancer has.
format: int32
backend_count:
type: integer
description: Number of backends the Load Balancer has.
format: int32
type:
type: string
description: Load Balancer offer type.
subscriber:
type: object
description: Subscriber information.
properties:
id:
type: string
description: Subscriber ID.
name:
type: string
description: Subscriber name.
email_config:
type: object
description: Email address of subscriber.
properties:
email:
type: string
description: Email address to send alerts to.
nullable: true
x-properties-order:
- email
x-one-of: config
webhook_config:
type: object
description: Webhook URI of subscriber.
properties:
uri:
type: string
description: URI to receive POST requests.
nullable: true
x-properties-order:
- uri
x-one-of: config
x-properties-order:
- id
- name
- email_config
- webhook_config
ssl_compatibility_level:
type: string
description: Determines the minimal SSL version which needs to be supported
on client side.
enum:
- ssl_compatibility_level_unknown
- ssl_compatibility_level_intermediate
- ssl_compatibility_level_modern
- ssl_compatibility_level_old
default: ssl_compatibility_level_unknown
created_at:
type: string
description: Date on which the Load Balancer was created. (RFC 3339
format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
updated_at:
type: string
description: Date on which the Load Balancer was last updated. (RFC
3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
private_network_count:
type: integer
description: Number of Private Networks attached to the Load Balancer.
format: int32
route_count:
type: integer
description: Number of routes configured on the Load Balancer.
format: int32
region:
type: string
description: The region the Load Balancer is in.
deprecated: true
zone:
type: string
description: The zone the Load Balancer is in.
x-properties-order:
- id
- name
- description
- status
- instances
- organization_id
- project_id
- ip
- tags
- frontend_count
- backend_count
- type
- subscriber
- ssl_compatibility_level
- created_at
- updated_at
- private_network_count
- route_count
- region
- zone
timeout_client:
type: number
description: Maximum allowed inactivity time on the client side. (in milliseconds)
default: 300000
certificate:
type: object
description: Certificate, deprecated in favor of certificate_ids array.
deprecated: true
properties:
type:
type: string
description: Certificate type (Let's Encrypt or custom).
enum:
- letsencryt
- custom
- letsencrypt
default: letsencryt
id:
type: string
description: Certificate ID.
common_name:
type: string
description: Main domain name of certificate.
subject_alternative_name:
type: array
description: Alternative domain names.
items:
type: string
fingerprint:
type: string
description: Identifier (SHA-1) of the certificate.
not_valid_before:
type: string
description: Lower validity bound. (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
not_valid_after:
type: string
description: Upper validity bound. (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
status:
type: string
description: Certificate status.
enum:
- pending
- ready
- error
default: pending
lb:
type: object
description: Load Balancer object the certificate is attached to.
properties:
id:
type: string
description: Underlying Instance ID.
name:
type: string
description: Load Balancer name.
description:
type: string
description: Load Balancer description.
status:
type: string
description: Load Balancer status.
enum:
- unknown
- ready
- pending
- stopped
- error
- locked
- migrating
- to_create
- creating
- to_delete
- deleting
default: unknown
instances:
type: array
description: List of underlying Instances.
items:
$ref: '#/components/schemas/scaleway.lb.v1.Instance'
organization_id:
type: string
description: Scaleway Organization ID.
project_id:
type: string
description: Scaleway Project ID.
ip:
type: array
description: List of IP addresses attached to the Load Balancer.
items:
$ref: '#/components/schemas/scaleway.lb.v1.Ip'
tags:
type: array
description: Load Balancer tags.
items:
type: string
frontend_count:
type: integer
description: Number of frontends the Load Balancer has.
format: int32
backend_count:
type: integer
description: Number of backends the Load Balancer has.
format: int32
type:
type: string
description: Load Balancer offer type.
subscriber:
type: object
description: Subscriber information.
properties:
id:
type: string
description: Subscriber ID.
name:
type: string
description: Subscriber name.
email_config:
type: object
description: Email address of subscriber.
properties:
email:
type: string
description: Email address to send alerts to.
nullable: true
x-properties-order:
- email
x-one-of: config
webhook_config:
type: object
description: Webhook URI of subscriber.
properties:
uri:
type: string
description: URI to receive POST requests.
nullable: true
x-properties-order:
- uri
x-one-of: config
x-properties-order:
- id
- name
- email_config
- webhook_config
ssl_compatibility_level:
type: string
description: Determines the minimal SSL version which needs to be
supported on client side.
enum:
- ssl_compatibility_level_unknown
- ssl_compatibility_level_intermediate
- ssl_compatibility_level_modern
- ssl_compatibility_level_old
default: ssl_compatibility_level_unknown
created_at:
type: string
description: Date on which the Load Balancer was created. (RFC 3339
format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
updated_at:
type: string
description: Date on which the Load Balancer was last updated. (RFC
3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
private_network_count:
type: integer
description: Number of Private Networks attached to the Load Balancer.
format: int32
route_count:
type: integer
description: Number of routes configured on the Load Balancer.
format: int32
region:
type: string
description: The region the Load Balancer is in.
deprecated: true
zone:
type: string
description: The zone the Load Balancer is in.
x-properties-order:
- id
- name
- description
- status
- instances
- organization_id
- project_id
- ip
- tags
- frontend_count
- backend_count
- type
- subscriber
- ssl_compatibility_level
- created_at
- updated_at
- private_network_count
- route_count
- region
- zone
name:
type: string
description: Certificate name.
created_at:
type: string
description: Date on which the certificate was created. (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
updated_at:
type: string
description: Date on which the certificate was last updated. (RFC 3339
format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
status_details:
type: string
description: Additional information about the certificate status (useful
in case of certificate generation failure, for example).
nullable: true
x-properties-order:
- type
- id
- common_name
- subject_alternative_name
- fingerprint
- not_valid_before
- not_valid_after
- status
- lb
- name
- created_at
- updated_at
- status_details
certificate_ids:
type: array
description: List of SSL/TLS certificate IDs to bind to the frontend.
items:
type: string
created_at:
type: string
description: Date on which the frontend was created. (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
updated_at:
type: string
description: Date on which the frontend was last updated. (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
enable_http3:
type: boolean
description: Defines whether to enable HTTP/3 protocol on the frontend.
connection_rate_limit:
type: integer
description: Rate limit for new connections established on this frontend.
Use 0 value to disable, else value is connections per second.
format: uint32
nullable: true
enable_access_logs:
type: boolean
description: Defines whether to enable access logs on the frontend.
x-properties-order:
- id
- name
- inbound_port
- backend
- lb
- timeout_client
- certificate
- certificate_ids
- created_at
- updated_at
- enable_http3
- connection_rate_limit
- enable_access_logs
scaleway.lb.v1.HealthCheck:
type: object
properties:
port:
type: integer
description: Port to use for the backend server health check.
format: int32
check_delay:
type: number
description: Time to wait between two consecutive health checks. (in milliseconds)
default: 3000
check_timeout:
type: number
description: Maximum time a backend server has to reply to the health check.
(in milliseconds)
default: 1000
check_max_retries:
type: integer
description: Number of consecutive unsuccessful health checks after which
the server will be considered dead.
format: int32
tcp_config:
type: object
description: Object to configure a basic TCP health check.
nullable: true
x-one-of: config
mysql_config:
type: object
description: Object to configure a MySQL health check. The check requires
MySQL >=3.22 or <9.0. For older or newer versions, use a TCP health check.
properties:
user:
type: string
description: MySQL user to use for the health check.
nullable: true
x-properties-order:
- user
x-one-of: config
pgsql_config:
type: object
description: Object to configure a PostgreSQL health check.
properties:
user:
type: string
description: PostgreSQL user to use for the health check.
nullable: true
x-properties-order:
- user
x-one-of: config
ldap_config:
type: object
description: Object to configure an LDAP health check. The response is analyzed
to find the LDAPv3 response message.
nullable: true
x-one-of: config
redis_config:
type: object
description: Object to configure a Redis health check. The response is analyzed
to find the +PONG response message.
nullable: true
x-one-of: config
http_config:
type: object
description: Object to configure an HTTP health check.
properties:
uri:
type: string
description: |-
HTTP path used for the health check.
The HTTP path to use when performing a health check on backend servers.
method:
type: string
description: |-
HTTP method used for the health check.
The HTTP method used when performing a health check on backend servers.
code:
type: integer
description: |-
HTTP response code expected for a successful health check.
The HTTP response code that should be returned for a health check to be considered successful.
format: int32
nullable: true
host_header:
type: string
description: |-
HTTP host header used for the health check.
The HTTP host header used when performing a health check on backend servers.
nullable: true
x-properties-order:
- uri
- method
- code
- host_header
x-one-of: config
https_config:
type: object
description: Object to configure an HTTPS health check.
properties:
uri:
type: string
description: |-
HTTP path used for the health check.
The HTTP path to use when performing a health check on backend servers.
method:
type: string
description: |-
HTTP method used for the health check.
The HTTP method used when performing a health check on backend servers.
code:
type: integer
description: |-
HTTP response code expected for a successful health check.
The HTTP response code that should be returned for a health check to be considered successful.
format: int32
nullable: true
host_header:
type: string
description: |-
HTTP host header used for the health check.
The HTTP host header used when performing a health check on backend servers.
sni:
type: string
description: |-
SNI used for SSL health checks.
The SNI value used when performing a health check on backend servers over SSL.
nullable: true
x-properties-order:
- uri
- method
- code
- host_header
- sni
x-one-of: config
check_send_proxy:
type: boolean
description: Defines whether proxy protocol should be activated for the
health check.
transient_check_delay:
type: string
description: Time to wait between two consecutive health checks when a backend
server is in a transient state (going UP or DOWN). (in seconds)
example: 2.5s
nullable: true
default: 0.5s
x-properties-order:
- port
- check_delay
- check_timeout
- check_max_retries
- tcp_config
- mysql_config
- pgsql_config
- ldap_config
- redis_config
- http_config
- https_config
- check_send_proxy
- transient_check_delay
scaleway.lb.v1.Instance:
type: object
properties:
id:
type: string
description: Underlying Instance ID.
status:
type: string
description: Instance status.
enum:
- unknown
- ready
- pending
- stopped
- error
- locked
- migrating
default: unknown
ip_address:
type: string
description: Instance IP address.
created_at:
type: string
description: Date on which the Instance was created. (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
updated_at:
type: string
description: Date on which the Instance was last updated. (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
region:
type: string
description: The region the Instance is in.
deprecated: true
zone:
type: string
description: The zone the Instance is in.
x-properties-order:
- id
- status
- ip_address
- created_at
- updated_at
- region
- zone
scaleway.lb.v1.Ip:
type: object
properties:
id:
type: string
description: IP address ID.
ip_address:
type: string
description: IP address.
organization_id:
type: string
description: Organization ID of the Scaleway Organization the IP address
is in.
project_id:
type: string
description: Project ID of the Scaleway Project the IP address is in.
lb_id:
type: string
description: Load Balancer ID.
nullable: true
reverse:
type: string
description: Reverse DNS (domain name) of the IP address.
tags:
type: array
description: IP tags.
items:
type: string
region:
type: string
description: The region the IP address is in.
deprecated: true
zone:
type: string
description: The zone the IP address is in.
x-properties-order:
- id
- ip_address
- organization_id
- project_id
- lb_id
- reverse
- tags
- region
- zone
scaleway.lb.v1.Lb:
type: object
properties:
id:
type: string
description: Underlying Instance ID.
name:
type: string
description: Load Balancer name.
description:
type: string
description: Load Balancer description.
status:
type: string
description: Load Balancer status.
enum:
- unknown
- ready
- pending
- stopped
- error
- locked
- migrating
- to_create
- creating
- to_delete
- deleting
default: unknown
instances:
type: array
description: List of underlying Instances.
items:
$ref: '#/components/schemas/scaleway.lb.v1.Instance'
organization_id:
type: string
description: Scaleway Organization ID.
project_id:
type: string
description: Scaleway Project ID.
ip:
type: array
description: List of IP addresses attached to the Load Balancer.
items:
$ref: '#/components/schemas/scaleway.lb.v1.Ip'
tags:
type: array
description: Load Balancer tags.
items:
type: string
frontend_count:
type: integer
description: Number of frontends the Load Balancer has.
format: int32
backend_count:
type: integer
description: Number of backends the Load Balancer has.
format: int32
type:
type: string
description: Load Balancer offer type.
subscriber:
type: object
description: Subscriber information.
properties:
id:
type: string
description: Subscriber ID.
name:
type: string
description: Subscriber name.
email_config:
type: object
description: Email address of subscriber.
properties:
email:
type: string
description: Email address to send alerts to.
nullable: true
x-properties-order:
- email
x-one-of: config
webhook_config:
type: object
description: Webhook URI of subscriber.
properties:
uri:
type: string
description: URI to receive POST requests.
nullable: true
x-properties-order:
- uri
x-one-of: config
x-properties-order:
- id
- name
- email_config
- webhook_config
ssl_compatibility_level:
type: string
description: Determines the minimal SSL version which needs to be supported
on client side.
enum:
- ssl_compatibility_level_unknown
- ssl_compatibility_level_intermediate
- ssl_compatibility_level_modern
- ssl_compatibility_level_old
default: ssl_compatibility_level_unknown
created_at:
type: string
description: Date on which the Load Balancer was created. (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
updated_at:
type: string
description: Date on which the Load Balancer was last updated. (RFC 3339
format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
private_network_count:
type: integer
description: Number of Private Networks attached to the Load Balancer.
format: int32
route_count:
type: integer
description: Number of routes configured on the Load Balancer.
format: int32
region:
type: string
description: The region the Load Balancer is in.
deprecated: true
zone:
type: string
description: The zone the Load Balancer is in.
x-properties-order:
- id
- name
- description
- status
- instances
- organization_id
- project_id
- ip
- tags
- frontend_count
- backend_count
- type
- subscriber
- ssl_compatibility_level
- created_at
- updated_at
- private_network_count
- route_count
- region
- zone
scaleway.lb.v1.LbStats:
type: object
properties:
backend_servers_stats:
type: array
description: List of objects containing Load Balancer statistics.
items:
$ref: '#/components/schemas/scaleway.lb.v1.BackendServerStats'
x-properties-order:
- backend_servers_stats
scaleway.lb.v1.LbType:
type: object
properties:
name:
type: string
description: Load Balancer commercial offer type name.
stock_status:
type: string
description: Current stock status for a given Load Balancer type.
enum:
- unknown
- low_stock
- out_of_stock
- available
default: unknown
bandwidth:
type: integer
description: Maximum bandwidth for a given Load Balancer type.
format: uint64
multicloud:
type: boolean
description: Ability to handle backend servers outside Scaleway for a given
Load Balancer type.
description:
type: string
description: Load Balancer commercial offer type description.
region:
type: string
description: The region the Load Balancer stock is in.
deprecated: true
zone:
type: string
description: The zone the Load Balancer stock is in.
x-properties-order:
- name
- stock_status
- bandwidth
- multicloud
- description
- region
- zone
scaleway.lb.v1.ListAclResponse:
type: object
properties:
acls:
type: array
description: List of ACL objects.
items:
$ref: '#/components/schemas/scaleway.lb.v1.Acl'
total_count:
type: integer
description: The total number of objects.
format: uint32
x-properties-order:
- acls
- total_count
scaleway.lb.v1.ListBackendStatsResponse:
type: object
properties:
backend_servers_stats:
type: array
description: List of objects containing backend server statistics.
items:
$ref: '#/components/schemas/scaleway.lb.v1.BackendServerStats'
total_count:
type: integer
description: The total number of objects.
format: uint32
x-properties-order:
- backend_servers_stats
- total_count
scaleway.lb.v1.ListBackendsResponse:
type: object
properties:
backends:
type: array
description: List of backend objects of a given Load Balancer.
items:
$ref: '#/components/schemas/scaleway.lb.v1.Backend'
total_count:
type: integer
description: Total count of backend objects, without pagination.
format: uint32
x-properties-order:
- backends
- total_count
scaleway.lb.v1.ListCertificatesResponse:
type: object
properties:
certificates:
type: array
description: List of certificate objects.
items:
$ref: '#/components/schemas/scaleway.lb.v1.Certificate'
total_count:
type: integer
description: The total number of objects.
format: uint32
x-properties-order:
- certificates
- total_count
scaleway.lb.v1.ListFrontendsResponse:
type: object
properties:
frontends:
type: array
description: List of frontend objects of a given Load Balancer.
items:
$ref: '#/components/schemas/scaleway.lb.v1.Frontend'
total_count:
type: integer
description: Total count of frontend objects, without pagination.
format: uint32
x-properties-order:
- frontends
- total_count
scaleway.lb.v1.ListIpsResponse:
type: object
properties:
ips:
type: array
description: List of IP address objects.
items:
$ref: '#/components/schemas/scaleway.lb.v1.Ip'
total_count:
type: integer
description: Total count of IP address objects, without pagination.
format: uint32
x-properties-order:
- ips
- total_count
scaleway.lb.v1.ListLbPrivateNetworksResponse:
type: object
properties:
private_network:
type: array
description: List of Private Network objects attached to the Load Balancer.
items:
$ref: '#/components/schemas/scaleway.lb.v1.PrivateNetwork'
total_count:
type: integer
description: Total number of objects in the response.
format: uint32
x-properties-order:
- private_network
- total_count
scaleway.lb.v1.ListLbTypesResponse:
type: object
properties:
lb_types:
type: array
description: List of Load Balancer commercial offer type objects.
items:
$ref: '#/components/schemas/scaleway.lb.v1.LbType'
total_count:
type: integer
description: Total number of Load Balancer offer type objects.
format: uint32
x-properties-order:
- lb_types
- total_count
scaleway.lb.v1.ListLbsResponse:
type: object
properties:
lbs:
type: array
description: List of Load Balancer objects.
items:
$ref: '#/components/schemas/scaleway.lb.v1.Lb'
total_count:
type: integer
description: The total number of Load Balancer objects.
format: uint32
x-properties-order:
- lbs
- total_count
scaleway.lb.v1.ListRoutesResponse:
type: object
properties:
routes:
type: array
description: List of route objects.
items:
$ref: '#/components/schemas/scaleway.lb.v1.Route'
total_count:
type: integer
description: The total number of route objects.
format: uint32
x-properties-order:
- routes
- total_count
scaleway.lb.v1.ListSubscriberResponse:
type: object
properties:
subscribers:
type: array
description: List of subscriber objects.
items:
$ref: '#/components/schemas/scaleway.lb.v1.Subscriber'
total_count:
type: integer
description: The total number of objects.
format: uint32
x-properties-order:
- subscribers
- total_count
scaleway.lb.v1.PrivateNetwork:
type: object
properties:
lb:
type: object
description: Load Balancer object which is attached to the Private Network.
properties:
id:
type: string
description: Underlying Instance ID.
name:
type: string
description: Load Balancer name.
description:
type: string
description: Load Balancer description.
status:
type: string
description: Load Balancer status.
enum:
- unknown
- ready
- pending
- stopped
- error
- locked
- migrating
- to_create
- creating
- to_delete
- deleting
default: unknown
instances:
type: array
description: List of underlying Instances.
items:
$ref: '#/components/schemas/scaleway.lb.v1.Instance'
organization_id:
type: string
description: Scaleway Organization ID.
project_id:
type: string
description: Scaleway Project ID.
ip:
type: array
description: List of IP addresses attached to the Load Balancer.
items:
$ref: '#/components/schemas/scaleway.lb.v1.Ip'
tags:
type: array
description: Load Balancer tags.
items:
type: string
frontend_count:
type: integer
description: Number of frontends the Load Balancer has.
format: int32
backend_count:
type: integer
description: Number of backends the Load Balancer has.
format: int32
type:
type: string
description: Load Balancer offer type.
subscriber:
type: object
description: Subscriber information.
properties:
id:
type: string
description: Subscriber ID.
name:
type: string
description: Subscriber name.
email_config:
type: object
description: Email address of subscriber.
properties:
email:
type: string
description: Email address to send alerts to.
nullable: true
x-properties-order:
- email
x-one-of: config
webhook_config:
type: object
description: Webhook URI of subscriber.
properties:
uri:
type: string
description: URI to receive POST requests.
nullable: true
x-properties-order:
- uri
x-one-of: config
x-properties-order:
- id
- name
- email_config
- webhook_config
ssl_compatibility_level:
type: string
description: Determines the minimal SSL version which needs to be supported
on client side.
enum:
- ssl_compatibility_level_unknown
- ssl_compatibility_level_intermediate
- ssl_compatibility_level_modern
- ssl_compatibility_level_old
default: ssl_compatibility_level_unknown
created_at:
type: string
description: Date on which the Load Balancer was created. (RFC 3339
format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
updated_at:
type: string
description: Date on which the Load Balancer was last updated. (RFC
3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
private_network_count:
type: integer
description: Number of Private Networks attached to the Load Balancer.
format: int32
route_count:
type: integer
description: Number of routes configured on the Load Balancer.
format: int32
region:
type: string
description: The region the Load Balancer is in.
deprecated: true
zone:
type: string
description: The zone the Load Balancer is in.
x-properties-order:
- id
- name
- description
- status
- instances
- organization_id
- project_id
- ip
- tags
- frontend_count
- backend_count
- type
- subscriber
- ssl_compatibility_level
- created_at
- updated_at
- private_network_count
- route_count
- region
- zone
ipam_ids:
type: array
description: IPAM IDs of the booked IP addresses. (UUID format)
example:
- 6170692e-7363-616c-6577-61792e636f6d
items:
type: string
static_config:
type: object
description: Object containing an array of a local IP address for the Load
Balancer on this Private Network.
deprecated: true
properties:
ip_address:
type: array
description: Array of a local IP address for the Load Balancer on this
Private Network.
deprecated: true
items:
type: string
nullable: true
x-properties-order:
- ip_address
x-one-of: Config
dhcp_config:
type: object
description: Object containing DHCP-assigned IP addresses.
deprecated: true
properties:
ip_id:
type: string
description: (UUID format)
deprecated: true
example: 6170692e-7363-616c-6577-61792e636f6d
nullable: true
nullable: true
x-properties-order:
- ip_id
x-one-of: Config
private_network_id:
type: string
description: Private Network ID.
status:
type: string
description: Status of Private Network connection.
enum:
- unknown
- ready
- pending
- error
default: unknown
created_at:
type: string
description: Date on which the Private Network was created. (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
updated_at:
type: string
description: Date on which the PN was last updated. (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
x-properties-order:
- lb
- ipam_ids
- static_config
- dhcp_config
- private_network_id
- status
- created_at
- updated_at
scaleway.lb.v1.Route:
type: object
properties:
id:
type: string
description: Route ID.
frontend_id:
type: string
description: ID of the source frontend.
backend_id:
type: string
description: ID of the target backend.
match:
type: object
description: Object defining the match condition for a route to be applied.
If an incoming client session matches the specified condition (i.e. it
has a matching SNI value or HTTP Host header value), it will be passed
to the target backend.
properties:
sni:
type: string
description: |-
Server Name Indication (SNI) value to match.
Value to match in the Server Name Indication TLS extension (SNI) field from an incoming connection made via an SSL/TLS transport layer. This field should be set for routes on TCP Load Balancers.
nullable: true
x-one-of: MatchType
host_header:
type: string
description: |-
HTTP host header to match.
Value to match in the HTTP Host request header from an incoming request. This field should be set for routes on HTTP Load Balancers.
nullable: true
x-one-of: MatchType
match_subdomains:
type: boolean
description: If true, all subdomains will match.
path_begin:
type: string
description: |-
Path begin value to match.
Value to match in the URL beginning path from an incoming request.
nullable: true
x-one-of: MatchType
x-properties-order:
- sni
- host_header
- match_subdomains
- path_begin
created_at:
type: string
description: Date on which the route was created. (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
updated_at:
type: string
description: Date on which the route was last updated. (RFC 3339 format)
format: date-time
example: "2022-03-22T12:34:56.123456Z"
nullable: true
x-properties-order:
- id
- frontend_id
- backend_id
- match
- created_at
- updated_at
scaleway.lb.v1.SetAclsResponse:
type: object
properties:
acls:
type: array
description: List of ACL objects.
items:
$ref: '#/components/schemas/scaleway.lb.v1.Acl'
total_count:
type: integer
description: The total number of ACL objects.
format: uint32
x-properties-order:
- acls
- total_count
scaleway.lb.v1.Subscriber:
type: object
properties:
id:
type: string
description: Subscriber ID.
name:
type: string
description: Subscriber name.
email_config:
type: object
description: Email address of subscriber.
properties:
email:
type: string
description: Email address to send alerts to.
nullable: true
x-properties-order:
- email
x-one-of: config
webhook_config:
type: object
description: Webhook URI of subscriber.
properties:
uri:
type: string
description: URI to receive POST requests.
nullable: true
x-properties-order:
- uri
x-one-of: config
x-properties-order:
- id
- name
- email_config
- webhook_config
securitySchemes:
scaleway:
in: header
name: X-Auth-Token
type: apiKey
paths:
/lb/v1/zones/{zone}/acls/{acl_id}:
get:
tags:
- ACLs
operationId: GetAcl
summary: Get an ACL
description: Get information for a particular ACL, specified by its ACL ID.
The response returns full details of the ACL, including its name, action,
match rule and frontend.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- in: path
name: acl_id
description: ACL ID.
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.lb.v1.Acl'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/lb/v1/zones/{zone}/acls/{acl_id}"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/lb/v1/zones/{zone}/acls/{acl_id}" \
X-Auth-Token:$SCW_SECRET_KEY
put:
tags:
- ACLs
operationId: UpdateAcl
summary: Update an ACL
description: Update a particular ACL, specified by its ACL ID. You can update
details including its name, action and match rule.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- in: path
name: acl_id
description: ACL ID.
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.lb.v1.Acl'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: ACL name.
action:
type: object
description: Action to take when incoming traffic matches an ACL
filter.
properties:
type:
type: string
description: Action to take when incoming traffic matches an
ACL filter.
enum:
- allow
- deny
- redirect
default: allow
redirect:
type: object
description: Redirection parameters when using an ACL with a
`redirect` action.
properties:
type:
type: string
description: Redirect type.
enum:
- location
- scheme
default: location
target:
type: string
description: Redirect target. For a location redirect, you
can use a URL e.g. `https://scaleway.com`. Using a scheme
name (e.g. `https`, `http`, `ftp`, `git`) will replace
the request's original scheme. This can be useful to implement
HTTP to HTTPS redirects. Valid placeholders that can be
used in a `location` redirect to preserve parts of the
original request in the redirection URL are \{\{host\}\},
\{\{query\}\}, \{\{path\}\} and \{\{scheme\}\}.
code:
type: integer
description: HTTP redirect code to use. Valid values are
301, 302, 303, 307 and 308. Default value is 302.
format: int32
nullable: true
x-properties-order:
- type
- target
- code
x-properties-order:
- type
- redirect
match:
type: object
description: ACL match filter object. One of `ip_subnet`, `ips_edge_services`
or `http_filter` & `http_filter_value` are required.
properties:
ip_subnet:
type: array
description: List of IPs or CIDR v4/v6 addresses to filter for
from the client side.
items:
$ref: '#/components/schemas/google.protobuf.StringValue'
ips_edge_services:
type: boolean
description: Defines whether Edge Services IPs should be matched.
http_filter:
type: string
description: Type of HTTP filter to match. Extracts the request's
URL path, which starts at the first slash and ends before
the question mark (without the host part). Defines where to
filter for the http_filter_value. Only supported for HTTP
backends.
enum:
- acl_http_filter_none
- path_begin
- path_end
- regex
- http_header_match
default: acl_http_filter_none
http_filter_value:
type: array
description: List of values to filter for.
items:
$ref: '#/components/schemas/google.protobuf.StringValue'
http_filter_option:
type: string
description: Name of the HTTP header to filter on if `http_header_match`
was selected in `http_filter`.
nullable: true
invert:
type: boolean
description: Defines whether to invert the match condition.
If set to `true`, the ACL carries out its action when the
condition DOES NOT match.
x-properties-order:
- ip_subnet
- ips_edge_services
- http_filter
- http_filter_value
- http_filter_option
- invert
index:
type: integer
description: Priority of this ACL (ACLs are applied in ascending
order, 0 is the first ACL executed).
format: int32
description:
type: string
description: ACL description.
nullable: true
required:
- name
- action
- index
x-properties-order:
- name
- action
- match
- index
- description
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X PUT \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{
"action": {
"redirect": {
"code": 42,
"target": "string",
"type": "location"
},
"type": "allow"
},
"index": 42,
"name": "string"
}' \
"https://api.scaleway.com/lb/v1/zones/{zone}/acls/{acl_id}"
- lang: HTTPie
source: |-
http PUT "https://api.scaleway.com/lb/v1/zones/{zone}/acls/{acl_id}" \
X-Auth-Token:$SCW_SECRET_KEY \
action:='{
"redirect": {
"code": 42,
"target": "string",
"type": "location"
},
"type": "allow"
}' \
index:=42 \
name="string"
delete:
tags:
- ACLs
operationId: DeleteAcl
summary: Delete an ACL
description: Delete an ACL, specified by its ACL ID. Deleting an ACL is irreversible
and cannot be undone.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- in: path
name: acl_id
description: ACL ID.
required: true
schema:
type: string
responses:
"204":
description: ""
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X DELETE \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/lb/v1/zones/{zone}/acls/{acl_id}"
- lang: HTTPie
source: |-
http DELETE "https://api.scaleway.com/lb/v1/zones/{zone}/acls/{acl_id}" \
X-Auth-Token:$SCW_SECRET_KEY
/lb/v1/zones/{zone}/backends/{backend_id}:
get:
tags:
- Backends
operationId: GetBackend
summary: Get a backend of a given Load Balancer
description: Get the full details of a given backend, specified by its backend
ID. The response contains the backend's full configuration parameters including
protocol, port and forwarding algorithm.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- in: path
name: backend_id
description: Backend ID.
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.lb.v1.Backend'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/lb/v1/zones/{zone}/backends/{backend_id}"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/lb/v1/zones/{zone}/backends/{backend_id}" \
X-Auth-Token:$SCW_SECRET_KEY
put:
tags:
- Backends
operationId: UpdateBackend
summary: Update a backend of a given Load Balancer
description: Update a backend of a given Load Balancer, specified by its backend
ID. Note that the request type is PUT and not PATCH. You must set all parameters.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- in: path
name: backend_id
description: Backend ID.
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.lb.v1.Backend'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Backend name.
forward_protocol:
type: string
description: Protocol to be used by the backend when forwarding
traffic to backend servers.
enum:
- tcp
- http
default: tcp
forward_port:
type: integer
description: Port to be used by the backend when forwarding traffic
to backend servers.
format: int32
forward_port_algorithm:
type: string
description: Load balancing algorithm to be used when determining
which backend server to forward new traffic to.
enum:
- roundrobin
- leastconn
- first
default: roundrobin
sticky_sessions:
type: string
description: Defines whether to activate sticky sessions (binding
a particular session to a particular backend server) and the method
to use if so. None disables sticky sessions. Cookie-based uses
an HTTP cookie to stick a session to a backend server. Table-based
uses the source (client) IP address to stick a session to a backend
server.
enum:
- none
- cookie
- table
default: none
sticky_sessions_cookie_name:
type: string
description: Cookie name for cookie-based sticky sessions.
send_proxy_v2:
type: boolean
description: Deprecated in favor of proxy_protocol field.
deprecated: true
timeout_server:
type: number
description: Maximum allowed time for a backend server to process
a request. (in milliseconds)
timeout_connect:
type: number
description: Maximum allowed time for establishing a connection
to a backend server. (in milliseconds)
timeout_tunnel:
type: number
description: Maximum allowed tunnel inactivity time after Websocket
is established (takes precedence over client and server timeout).
(in milliseconds)
on_marked_down_action:
type: string
description: Action to take when a backend server is marked as down.
enum:
- on_marked_down_action_none
- shutdown_sessions
default: on_marked_down_action_none
proxy_protocol:
type: string
description: Protocol to use between the Load Balancer and backend
servers. Allows the backend servers to be informed of the client's
real IP address. The PROXY protocol must be supported by the backend
servers' software.
enum:
- proxy_protocol_unknown
- proxy_protocol_none
- proxy_protocol_v1
- proxy_protocol_v2
- proxy_protocol_v2_ssl
- proxy_protocol_v2_ssl_cn
default: proxy_protocol_unknown
failover_host:
type: string
description: Scaleway Object Storage bucket website to be served
as failover if all backend servers are down, e.g. failover-website.s3-website.fr-par.scw.cloud.
nullable: true
ssl_bridging:
type: boolean
description: Defines whether to enable SSL bridging between the
Load Balancer and backend servers.
nullable: true
ignore_ssl_server_verify:
type: boolean
description: Defines whether the server certificate verification
should be ignored.
nullable: true
redispatch_attempt_count:
type: integer
description: Whether to use another backend server on each attempt.
format: int32
nullable: true
max_retries:
type: integer
description: Number of retries when a backend server connection
failed.
format: int32
nullable: true
max_connections:
type: integer
description: Maximum number of connections allowed per backend server.
format: int32
nullable: true
timeout_queue:
type: string
description: Maximum time for a request to be left pending in queue
when `max_connections` is reached. (in seconds)
example: 2.5s
nullable: true
required:
- name
- forward_protocol
- forward_port
- forward_port_algorithm
- sticky_sessions
x-properties-order:
- name
- forward_protocol
- forward_port
- forward_port_algorithm
- sticky_sessions
- sticky_sessions_cookie_name
- send_proxy_v2
- timeout_server
- timeout_connect
- timeout_tunnel
- on_marked_down_action
- proxy_protocol
- failover_host
- ssl_bridging
- ignore_ssl_server_verify
- redispatch_attempt_count
- max_retries
- max_connections
- timeout_queue
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X PUT \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{
"forward_port": 42,
"forward_port_algorithm": "roundrobin",
"forward_protocol": "tcp",
"name": "string",
"send_proxy_v2": false,
"sticky_sessions": "none",
"sticky_sessions_cookie_name": "string"
}' \
"https://api.scaleway.com/lb/v1/zones/{zone}/backends/{backend_id}"
- lang: HTTPie
source: |-
http PUT "https://api.scaleway.com/lb/v1/zones/{zone}/backends/{backend_id}" \
X-Auth-Token:$SCW_SECRET_KEY \
forward_port:=42 \
forward_port_algorithm="roundrobin" \
forward_protocol="tcp" \
name="string" \
send_proxy_v2:=false \
sticky_sessions="none" \
sticky_sessions_cookie_name="string"
delete:
tags:
- Backends
operationId: DeleteBackend
summary: Delete a backend of a given Load Balancer
description: Delete a backend of a given Load Balancer, specified by its backend
ID. This action is irreversible and cannot be undone.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- in: path
name: backend_id
description: ID of the backend to delete.
required: true
schema:
type: string
responses:
"204":
description: ""
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X DELETE \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/lb/v1/zones/{zone}/backends/{backend_id}"
- lang: HTTPie
source: |-
http DELETE "https://api.scaleway.com/lb/v1/zones/{zone}/backends/{backend_id}" \
X-Auth-Token:$SCW_SECRET_KEY
/lb/v1/zones/{zone}/backends/{backend_id}/healthcheck:
put:
tags:
- Backends
operationId: UpdateHealthCheck
summary: Update a health check for a given backend
description: Update the configuration of the health check performed by a given
backend to verify the health of its backend servers, identified by its backend
ID. Note that the request type is PUT and not PATCH. You must set all parameters.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- in: path
name: backend_id
description: Backend ID.
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.lb.v1.HealthCheck'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
port:
type: integer
description: Port to use for the backend server health check.
format: int32
check_delay:
type: number
description: Time to wait between two consecutive health checks.
(in milliseconds)
check_timeout:
type: number
description: Maximum time a backend server has to reply to the health
check. (in milliseconds)
check_max_retries:
type: integer
description: Number of consecutive unsuccessful health checks after
which the server will be considered dead.
format: int32
check_send_proxy:
type: boolean
description: Defines whether proxy protocol should be activated
for the health check.
tcp_config:
type: object
description: Object to configure a basic TCP health check.
nullable: true
x-one-of: Config
mysql_config:
type: object
description: Object to configure a MySQL health check. The check
requires MySQL >=3.22 or <9.0. For older or newer versions, use
a TCP health check.
properties:
user:
type: string
description: MySQL user to use for the health check.
nullable: true
x-properties-order:
- user
x-one-of: Config
pgsql_config:
type: object
description: Object to configure a PostgreSQL health check.
properties:
user:
type: string
description: PostgreSQL user to use for the health check.
nullable: true
x-properties-order:
- user
x-one-of: Config
ldap_config:
type: object
description: Object to configure an LDAP health check. The response
is analyzed to find the LDAPv3 response message.
nullable: true
x-one-of: Config
redis_config:
type: object
description: Object to configure a Redis health check. The response
is analyzed to find the +PONG response message.
nullable: true
x-one-of: Config
http_config:
type: object
description: Object to configure an HTTP health check.
properties:
uri:
type: string
description: |-
HTTP path used for the health check.
The HTTP path to use when performing a health check on backend servers.
method:
type: string
description: |-
HTTP method used for the health check.
The HTTP method used when performing a health check on backend servers.
code:
type: integer
description: |-
HTTP response code expected for a successful health check.
The HTTP response code that should be returned for a health check to be considered successful.
format: int32
nullable: true
host_header:
type: string
description: |-
HTTP host header used for the health check.
The HTTP host header used when performing a health check on backend servers.
nullable: true
x-properties-order:
- uri
- method
- code
- host_header
x-one-of: Config
https_config:
type: object
description: Object to configure an HTTPS health check.
properties:
uri:
type: string
description: |-
HTTP path used for the health check.
The HTTP path to use when performing a health check on backend servers.
method:
type: string
description: |-
HTTP method used for the health check.
The HTTP method used when performing a health check on backend servers.
code:
type: integer
description: |-
HTTP response code expected for a successful health check.
The HTTP response code that should be returned for a health check to be considered successful.
format: int32
nullable: true
host_header:
type: string
description: |-
HTTP host header used for the health check.
The HTTP host header used when performing a health check on backend servers.
sni:
type: string
description: |-
SNI used for SSL health checks.
The SNI value used when performing a health check on backend servers over SSL.
nullable: true
x-properties-order:
- uri
- method
- code
- host_header
- sni
x-one-of: Config
transient_check_delay:
type: string
description: Time to wait between two consecutive health checks
when a backend server is in a transient state (going UP or DOWN).
(in seconds)
example: 2.5s
nullable: true
required:
- port
- check_delay
- check_timeout
- check_max_retries
x-properties-order:
- port
- check_delay
- check_timeout
- check_max_retries
- check_send_proxy
- tcp_config
- mysql_config
- pgsql_config
- ldap_config
- redis_config
- http_config
- https_config
- transient_check_delay
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X PUT \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{
"check_delay": 42,
"check_max_retries": 42,
"check_send_proxy": false,
"check_timeout": 42,
"port": 42
}' \
"https://api.scaleway.com/lb/v1/zones/{zone}/backends/{backend_id}/healthcheck"
- lang: HTTPie
source: |-
http PUT "https://api.scaleway.com/lb/v1/zones/{zone}/backends/{backend_id}/healthcheck" \
X-Auth-Token:$SCW_SECRET_KEY \
check_delay:=42 \
check_max_retries:=42 \
check_send_proxy:=false \
check_timeout:=42 \
port:=42
/lb/v1/zones/{zone}/backends/{backend_id}/servers:
post:
tags:
- Backends
operationId: AddBackendServers
summary: Add a set of backend servers to a given backend
description: For a given backend specified by its backend ID, add a set of backend
servers (identified by their IP addresses) it should forward traffic to. These
will be appended to any existing set of backend servers for this backend.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- in: path
name: backend_id
description: Backend ID.
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.lb.v1.Backend'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
server_ip:
type: array
description: List of IP addresses to add to backend servers.
items:
type: string
required:
- server_ip
x-properties-order:
- server_ip
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X POST \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"server_ip":["string"]}' \
"https://api.scaleway.com/lb/v1/zones/{zone}/backends/{backend_id}/servers"
- lang: HTTPie
source: |-
http POST "https://api.scaleway.com/lb/v1/zones/{zone}/backends/{backend_id}/servers" \
X-Auth-Token:$SCW_SECRET_KEY \
server_ip:='["string"]'
put:
tags:
- Backends
operationId: SetBackendServers
summary: Define all backend servers for a given backend
description: For a given backend specified by its backend ID, define the set
of backend servers (identified by their IP addresses) that it should forward
traffic to. Any existing backend servers configured for this backend will
be removed.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- in: path
name: backend_id
description: Backend ID.
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.lb.v1.Backend'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
server_ip:
type: array
description: List of IP addresses for backend servers. Any other
existing backend servers will be removed.
items:
type: string
required:
- server_ip
x-properties-order:
- server_ip
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X PUT \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"server_ip":["string"]}' \
"https://api.scaleway.com/lb/v1/zones/{zone}/backends/{backend_id}/servers"
- lang: HTTPie
source: |-
http PUT "https://api.scaleway.com/lb/v1/zones/{zone}/backends/{backend_id}/servers" \
X-Auth-Token:$SCW_SECRET_KEY \
server_ip:='["string"]'
delete:
tags:
- Backends
operationId: RemoveBackendServers
summary: Remove a set of servers for a given backend
description: For a given backend specified by its backend ID, remove the specified
backend servers (identified by their IP addresses) so that it no longer forwards
traffic to them.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- in: path
name: backend_id
description: Backend ID.
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.lb.v1.Backend'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
server_ip:
type: array
description: List of IP addresses to remove from backend servers.
items:
type: string
required:
- server_ip
x-properties-order:
- server_ip
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X DELETE \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"server_ip":["string"]}' \
"https://api.scaleway.com/lb/v1/zones/{zone}/backends/{backend_id}/servers"
- lang: HTTPie
source: |-
http DELETE "https://api.scaleway.com/lb/v1/zones/{zone}/backends/{backend_id}/servers" \
X-Auth-Token:$SCW_SECRET_KEY \
server_ip:='["string"]'
/lb/v1/zones/{zone}/certificates/{certificate_id}:
get:
tags:
- Certificate
operationId: GetCertificate
summary: Get an SSL/TLS certificate
description: Get information for a particular SSL/TLS certificate, specified
by its certificate ID. The response returns full details of the certificate,
including its type, main domain name, and alternative domain names.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- in: path
name: certificate_id
description: Certificate ID.
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.lb.v1.Certificate'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/lb/v1/zones/{zone}/certificates/{certificate_id}"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/lb/v1/zones/{zone}/certificates/{certificate_id}" \
X-Auth-Token:$SCW_SECRET_KEY
put:
tags:
- Certificate
operationId: UpdateCertificate
summary: Update an SSL/TLS certificate
description: Update the name of a particular SSL/TLS certificate, specified
by its certificate ID.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- in: path
name: certificate_id
description: Certificate ID.
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.lb.v1.Certificate'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Certificate name.
required:
- name
x-properties-order:
- name
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X PUT \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"string"}' \
"https://api.scaleway.com/lb/v1/zones/{zone}/certificates/{certificate_id}"
- lang: HTTPie
source: |-
http PUT "https://api.scaleway.com/lb/v1/zones/{zone}/certificates/{certificate_id}" \
X-Auth-Token:$SCW_SECRET_KEY \
name="string"
delete:
tags:
- Certificate
operationId: DeleteCertificate
summary: Delete an SSL/TLS certificate
description: Delete an SSL/TLS certificate, specified by its certificate ID.
Deleting a certificate is irreversible and cannot be undone.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- in: path
name: certificate_id
description: Certificate ID.
required: true
schema:
type: string
responses:
"204":
description: ""
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X DELETE \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/lb/v1/zones/{zone}/certificates/{certificate_id}"
- lang: HTTPie
source: |-
http DELETE "https://api.scaleway.com/lb/v1/zones/{zone}/certificates/{certificate_id}" \
X-Auth-Token:$SCW_SECRET_KEY
/lb/v1/zones/{zone}/frontends/{frontend_id}:
get:
tags:
- Frontends
operationId: GetFrontend
summary: Get a frontend
description: Get the full details of a given frontend, specified by its frontend
ID. The response contains the frontend's full configuration parameters including
the backend it is attached to, the port it listens on, and any certificates
it has.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- in: path
name: frontend_id
description: Frontend ID.
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.lb.v1.Frontend'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/lb/v1/zones/{zone}/frontends/{frontend_id}"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/lb/v1/zones/{zone}/frontends/{frontend_id}" \
X-Auth-Token:$SCW_SECRET_KEY
put:
tags:
- Frontends
operationId: UpdateFrontend
summary: Update a frontend
description: Update a given frontend, specified by its frontend ID. You can
update configuration parameters including its name and the port it listens
on. Note that the request type is PUT and not PATCH. You must set all parameters.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- in: path
name: frontend_id
description: Frontend ID.
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.lb.v1.Frontend'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Frontend name.
inbound_port:
type: integer
description: Port the frontend should listen on.
format: int32
backend_id:
type: string
description: Backend ID (ID of the backend the frontend should pass
traffic to).
timeout_client:
type: number
description: Maximum allowed inactivity time on the client side.
(in milliseconds)
certificate_id:
type: string
description: Certificate ID, deprecated in favor of certificate_ids
array.
deprecated: true
nullable: true
certificate_ids:
type: array
description: List of SSL/TLS certificate IDs to bind to the frontend.
nullable: true
items:
type: string
enable_http3:
type: boolean
description: Defines whether to enable HTTP/3 protocol on the frontend.
connection_rate_limit:
type: integer
description: Rate limit for new connections established on this
frontend. Use 0 value to disable, else value is connections per
second.
format: uint32
nullable: true
enable_access_logs:
type: boolean
description: Defines whether to enable access logs on the frontend.
required:
- name
- inbound_port
- backend_id
x-properties-order:
- name
- inbound_port
- backend_id
- timeout_client
- certificate_id
- certificate_ids
- enable_http3
- connection_rate_limit
- enable_access_logs
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X PUT \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{
"backend_id": "string",
"enable_http3": false,
"inbound_port": 42,
"name": "string"
}' \
"https://api.scaleway.com/lb/v1/zones/{zone}/frontends/{frontend_id}"
- lang: HTTPie
source: |-
http PUT "https://api.scaleway.com/lb/v1/zones/{zone}/frontends/{frontend_id}" \
X-Auth-Token:$SCW_SECRET_KEY \
backend_id="string" \
enable_http3:=false \
inbound_port:=42 \
name="string"
delete:
tags:
- Frontends
operationId: DeleteFrontend
summary: Delete a frontend
description: Delete a given frontend, specified by its frontend ID. This action
is irreversible and cannot be undone.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- in: path
name: frontend_id
description: ID of the frontend to delete.
required: true
schema:
type: string
responses:
"204":
description: ""
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X DELETE \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/lb/v1/zones/{zone}/frontends/{frontend_id}"
- lang: HTTPie
source: |-
http DELETE "https://api.scaleway.com/lb/v1/zones/{zone}/frontends/{frontend_id}" \
X-Auth-Token:$SCW_SECRET_KEY
/lb/v1/zones/{zone}/frontends/{frontend_id}/acls:
get:
tags:
- ACLs
operationId: ListAcls
summary: List ACLs for a given frontend
description: List the ACLs for a given frontend, specified by its frontend ID.
The response is an array of ACL objects, each one representing an ACL that
denies or allows traffic based on certain conditions.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- in: path
name: frontend_id
description: Frontend ID (ACLs attached to this frontend will be returned
in the response).
required: true
schema:
type: string
- in: query
name: order_by
description: Sort order of ACLs in the response.
schema:
type: string
enum:
- created_at_asc
- created_at_desc
- name_asc
- name_desc
default: created_at_asc
- in: query
name: page
description: The page number to return, from the paginated results.
schema:
type: integer
format: int32
- in: query
name: page_size
description: The number of ACLs to return.
schema:
type: integer
format: uint32
- in: query
name: name
description: ACL name to filter for.
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.lb.v1.ListAclResponse'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/lb/v1/zones/{zone}/frontends/{frontend_id}/acls"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/lb/v1/zones/{zone}/frontends/{frontend_id}/acls" \
X-Auth-Token:$SCW_SECRET_KEY
post:
tags:
- ACLs
operationId: CreateAcl
summary: Create an ACL for a given frontend
description: Create a new ACL for a given frontend. Each ACL must have a name,
an action to perform (allow or deny), and a match rule (the action is carried
out when the incoming traffic matches the rule).
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- in: path
name: frontend_id
description: Frontend ID to attach the ACL to.
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.lb.v1.Acl'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: ACL name.
action:
type: object
description: Action to take when incoming traffic matches an ACL
filter.
properties:
type:
type: string
description: Action to take when incoming traffic matches an
ACL filter.
enum:
- allow
- deny
- redirect
default: allow
redirect:
type: object
description: Redirection parameters when using an ACL with a
`redirect` action.
properties:
type:
type: string
description: Redirect type.
enum:
- location
- scheme
default: location
target:
type: string
description: Redirect target. For a location redirect, you
can use a URL e.g. `https://scaleway.com`. Using a scheme
name (e.g. `https`, `http`, `ftp`, `git`) will replace
the request's original scheme. This can be useful to implement
HTTP to HTTPS redirects. Valid placeholders that can be
used in a `location` redirect to preserve parts of the
original request in the redirection URL are \{\{host\}\},
\{\{query\}\}, \{\{path\}\} and \{\{scheme\}\}.
code:
type: integer
description: HTTP redirect code to use. Valid values are
301, 302, 303, 307 and 308. Default value is 302.
format: int32
nullable: true
x-properties-order:
- type
- target
- code
x-properties-order:
- type
- redirect
match:
type: object
description: ACL match filter object. One of `ip_subnet`, `ips_edge_services`
or `http_filter` & `http_filter_value` are required.
properties:
ip_subnet:
type: array
description: List of IPs or CIDR v4/v6 addresses to filter for
from the client side.
items:
$ref: '#/components/schemas/google.protobuf.StringValue'
ips_edge_services:
type: boolean
description: Defines whether Edge Services IPs should be matched.
http_filter:
type: string
description: Type of HTTP filter to match. Extracts the request's
URL path, which starts at the first slash and ends before
the question mark (without the host part). Defines where to
filter for the http_filter_value. Only supported for HTTP
backends.
enum:
- acl_http_filter_none
- path_begin
- path_end
- regex
- http_header_match
default: acl_http_filter_none
http_filter_value:
type: array
description: List of values to filter for.
items:
$ref: '#/components/schemas/google.protobuf.StringValue'
http_filter_option:
type: string
description: Name of the HTTP header to filter on if `http_header_match`
was selected in `http_filter`.
nullable: true
invert:
type: boolean
description: Defines whether to invert the match condition.
If set to `true`, the ACL carries out its action when the
condition DOES NOT match.
x-properties-order:
- ip_subnet
- ips_edge_services
- http_filter
- http_filter_value
- http_filter_option
- invert
index:
type: integer
description: Priority of this ACL (ACLs are applied in ascending
order, 0 is the first ACL executed).
format: int32
description:
type: string
description: ACL description.
required:
- name
- action
- index
x-properties-order:
- name
- action
- match
- index
- description
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X POST \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{
"action": {
"redirect": {
"code": 42,
"target": "string",
"type": "location"
},
"type": "allow"
},
"description": "string",
"index": 42,
"name": "string"
}' \
"https://api.scaleway.com/lb/v1/zones/{zone}/frontends/{frontend_id}/acls"
- lang: HTTPie
source: |-
http POST "https://api.scaleway.com/lb/v1/zones/{zone}/frontends/{frontend_id}/acls" \
X-Auth-Token:$SCW_SECRET_KEY \
action:='{
"redirect": {
"code": 42,
"target": "string",
"type": "location"
},
"type": "allow"
}' \
description="string" \
index:=42 \
name="string"
put:
tags:
- ACLs
operationId: SetAcls
summary: Define all ACLs for a given frontend
description: For a given frontend specified by its frontend ID, define and add
the complete set of ACLS for that frontend. Any existing ACLs on this frontend
will be removed.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- in: path
name: frontend_id
description: Frontend ID.
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.lb.v1.SetAclsResponse'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
acls:
type: array
description: List of ACLs for this frontend. Any other existing
ACLs on this frontend will be removed.
items:
$ref: '#/components/schemas/scaleway.lb.v1.AclSpec'
required:
- acls
x-properties-order:
- acls
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X PUT \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"acls":[""]}' \
"https://api.scaleway.com/lb/v1/zones/{zone}/frontends/{frontend_id}/acls"
- lang: HTTPie
source: |-
http PUT "https://api.scaleway.com/lb/v1/zones/{zone}/frontends/{frontend_id}/acls" \
X-Auth-Token:$SCW_SECRET_KEY \
acls:='[""]'
/lb/v1/zones/{zone}/ips:
get:
tags:
- IP addresses
operationId: ListIPs
summary: List IP addresses
description: List the Load Balancer flexible IP addresses held in the account
(filtered by Organization ID or Project ID). It is also possible to search
for a specific IP address.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- in: query
name: page
description: The page number to return, from the paginated results.
schema:
type: integer
format: int32
- in: query
name: page_size
description: Number of IP addresses to return.
schema:
type: integer
format: uint32
- in: query
name: ip_address
description: IP address to filter for.
schema:
type: string
- in: query
name: organization_id
description: Organization ID to filter for, only Load Balancer IP addresses
from this Organization will be returned.
schema:
type: string
- in: query
name: project_id
description: Project ID to filter for, only Load Balancer IP addresses from
this Project will be returned.
schema:
type: string
- in: query
name: ip_type
description: IP type to filter for.
schema:
type: string
enum:
- all
- ipv4
- ipv6
default: all
- in: query
name: tags
description: Tag to filter for, only IPs with one or more matching tags will
be returned.
schema:
type: array
items:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.lb.v1.ListIpsResponse'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/lb/v1/zones/{zone}/ips"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/lb/v1/zones/{zone}/ips" \
X-Auth-Token:$SCW_SECRET_KEY
post:
tags:
- IP addresses
operationId: CreateIp
summary: Create an IP address
description: Create a new Load Balancer flexible IP address, in the specified
Scaleway Project. This can be attached to new Load Balancers created in the
future.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.lb.v1.Ip'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
organization_id:
type: string
description: Organization ID of the Organization where the IP address
should be created.
deprecated: true
nullable: true
x-one-of: ProjectIdentifier
project_id:
type: string
description: Project ID of the Project where the IP address should
be created.
nullable: true
x-one-of: ProjectIdentifier
reverse:
type: string
description: Reverse DNS (domain name) for the IP address.
nullable: true
is_ipv6:
type: boolean
description: If true, creates a Flexible IP with an ipv6 address.
tags:
type: array
description: List of tags for the IP.
items:
type: string
x-properties-order:
- organization_id
- project_id
- reverse
- is_ipv6
- tags
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X POST \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"is_ipv6":false}' \
"https://api.scaleway.com/lb/v1/zones/{zone}/ips"
- lang: HTTPie
source: |-
http POST "https://api.scaleway.com/lb/v1/zones/{zone}/ips" \
X-Auth-Token:$SCW_SECRET_KEY \
is_ipv6:=false
/lb/v1/zones/{zone}/ips/{ip_id}:
get:
tags:
- IP addresses
operationId: GetIp
summary: Get an IP address
description: Retrieve the full details of a Load Balancer flexible IP address.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- in: path
name: ip_id
description: IP address ID.
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.lb.v1.Ip'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/lb/v1/zones/{zone}/ips/{ip_id}"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/lb/v1/zones/{zone}/ips/{ip_id}" \
X-Auth-Token:$SCW_SECRET_KEY
patch:
tags:
- IP addresses
operationId: UpdateIp
summary: Update an IP address
description: Update the reverse DNS of a Load Balancer flexible IP address.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- in: path
name: ip_id
description: IP address ID.
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.lb.v1.Ip'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
reverse:
type: string
description: Reverse DNS (domain name) for the IP address.
nullable: true
lb_id:
type: string
description: ID of the server on which to attach the flexible IP.
nullable: true
tags:
type: array
description: List of tags for the IP.
nullable: true
items:
type: string
x-properties-order:
- reverse
- lb_id
- tags
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X PATCH \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{}' \
"https://api.scaleway.com/lb/v1/zones/{zone}/ips/{ip_id}"
- lang: HTTPie
source: |-
http PATCH "https://api.scaleway.com/lb/v1/zones/{zone}/ips/{ip_id}" \
X-Auth-Token:$SCW_SECRET_KEY
delete:
tags:
- IP addresses
operationId: ReleaseIp
summary: Delete an IP address
description: Delete a Load Balancer flexible IP address. This action is irreversible,
and cannot be undone.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- in: path
name: ip_id
description: IP address ID.
required: true
schema:
type: string
responses:
"204":
description: ""
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X DELETE \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/lb/v1/zones/{zone}/ips/{ip_id}"
- lang: HTTPie
source: |-
http DELETE "https://api.scaleway.com/lb/v1/zones/{zone}/ips/{ip_id}" \
X-Auth-Token:$SCW_SECRET_KEY
/lb/v1/zones/{zone}/lb-types:
get:
tags:
- Load Balancer Types
operationId: ListLbTypes
summary: List all Load Balancer offer types
description: List all the different commercial Load Balancer types. The response
includes an array of offer types, each with a name, description, and information
about its stock availability.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- in: query
name: page
description: The page number to return, from the paginated results.
schema:
type: integer
format: int32
- in: query
name: page_size
description: The number of items to return.
schema:
type: integer
format: uint32
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.lb.v1.ListLbTypesResponse'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/lb/v1/zones/{zone}/lb-types"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/lb/v1/zones/{zone}/lb-types" \
X-Auth-Token:$SCW_SECRET_KEY
/lb/v1/zones/{zone}/lb/{lb_id}/subscribe:
post:
tags:
- Alert Subscribers
operationId: SubscribeToLb
summary: Subscribe a subscriber to alerts for a given Load Balancer
description: Subscribe an existing subscriber to alerts for a given Load Balancer.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- in: path
name: lb_id
description: Load Balancer ID.
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.lb.v1.Lb'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
subscriber_id:
type: string
description: Subscriber ID.
required:
- subscriber_id
x-properties-order:
- subscriber_id
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X POST \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"subscriber_id":"string"}' \
"https://api.scaleway.com/lb/v1/zones/{zone}/lb/{lb_id}/subscribe"
- lang: HTTPie
source: |-
http POST "https://api.scaleway.com/lb/v1/zones/{zone}/lb/{lb_id}/subscribe" \
X-Auth-Token:$SCW_SECRET_KEY \
subscriber_id="string"
/lb/v1/zones/{zone}/lb/{lb_id}/unsubscribe:
delete:
tags:
- Alert Subscribers
operationId: UnsubscribeFromLb
summary: Unsubscribe a subscriber from alerts for a given Load Balancer
description: Unsubscribe a subscriber from alerts for a given Load Balancer.
The subscriber is not deleted, and can be resubscribed in the future if necessary.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- in: path
name: lb_id
description: Load Balancer ID.
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.lb.v1.Lb'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X DELETE \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/lb/v1/zones/{zone}/lb/{lb_id}/unsubscribe"
- lang: HTTPie
source: |-
http DELETE "https://api.scaleway.com/lb/v1/zones/{zone}/lb/{lb_id}/unsubscribe" \
X-Auth-Token:$SCW_SECRET_KEY
/lb/v1/zones/{zone}/lb/subscription/{subscriber_id}:
delete:
tags:
- Alert Subscribers
operationId: DeleteSubscriber
summary: Delete a subscriber
description: Delete an existing subscriber, specified by its subscriber ID.
Deleting a subscriber is permanent, and cannot be undone.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- in: path
name: subscriber_id
description: Subscriber ID.
required: true
schema:
type: string
responses:
"204":
description: ""
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X DELETE \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/lb/v1/zones/{zone}/lb/subscription/{subscriber_id}"
- lang: HTTPie
source: |-
http DELETE "https://api.scaleway.com/lb/v1/zones/{zone}/lb/subscription/{subscriber_id}" \
X-Auth-Token:$SCW_SECRET_KEY
/lb/v1/zones/{zone}/lbs:
get:
tags:
- Load Balancer
operationId: ListLbs
summary: List Load Balancers
description: List all Load Balancers in the specified zone, for a Scaleway Organization
or Scaleway Project. By default, the Load Balancers returned in the list are
ordered by creation date in ascending order, though this can be modified via
the `order_by` field.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- in: query
name: name
description: Load Balancer name to filter for.
schema:
type: string
- in: query
name: order_by
description: Sort order of Load Balancers in the response.
schema:
type: string
enum:
- created_at_asc
- created_at_desc
- name_asc
- name_desc
default: created_at_asc
- in: query
name: page_size
description: Number of Load Balancers to return.
schema:
type: integer
format: uint32
- in: query
name: page
description: Page number to return, from the paginated results.
schema:
type: integer
format: int32
- in: query
name: organization_id
description: Organization ID to filter for, only Load Balancers from this
Organization will be returned.
schema:
type: string
- in: query
name: project_id
description: Project ID to filter for, only Load Balancers from this Project
will be returned.
schema:
type: string
- in: query
name: tags
description: Filter by tag, only Load Balancers with one or more matching
tags will be returned.
schema:
type: array
items:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.lb.v1.ListLbsResponse'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/lb/v1/zones/{zone}/lbs"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/lb/v1/zones/{zone}/lbs" \
X-Auth-Token:$SCW_SECRET_KEY
post:
tags:
- Load Balancer
operationId: CreateLb
summary: Create a Load Balancer
description: Create a new Load Balancer. Note that the Load Balancer will be
created without frontends or backends; these must be created separately via
the dedicated endpoints.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.lb.v1.Lb'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
organization_id:
type: string
description: Scaleway Organization to create the Load Balancer in.
deprecated: true
nullable: true
x-one-of: ProjectIdentifier
project_id:
type: string
description: Scaleway Project to create the Load Balancer in.
nullable: true
x-one-of: ProjectIdentifier
name:
type: string
description: Name for the Load Balancer.
description:
type: string
description: Description for the Load Balancer.
ip_id:
type: string
description: ID of an existing flexible IP address to attach to
the Load Balancer.
deprecated: true
nullable: true
assign_flexible_ip:
type: boolean
description: Defines whether to automatically assign a flexible
public IP to the Load Balancer. Default value is `true` (assign).
nullable: true
assign_flexible_ipv6:
type: boolean
description: Defines whether to automatically assign a flexible
public IPv6 to the Load Balancer. Default value is `false` (do
not assign).
nullable: true
ip_ids:
type: array
description: List of IP IDs to attach to the Load Balancer.
items:
type: string
tags:
type: array
description: List of tags for the Load Balancer.
items:
type: string
type:
type: string
description: Load Balancer commercial offer type. Use the Load Balancer
types endpoint to retrieve a list of available offer types.
ssl_compatibility_level:
type: string
description: Determines the minimal SSL version which needs to be
supported on the client side, in an SSL/TLS offloading context.
Intermediate is suitable for general-purpose servers with a variety
of clients, recommended for almost all systems (>= TLS1.2). Modern
is suitable for services with clients that support TLS 1.3 and
do not need backward compatibility (= TLS1.3). Old is compatible
with a small number of very old clients and should be used only
as a last resort (>= TLS1.0).
enum:
- ssl_compatibility_level_unknown
- ssl_compatibility_level_intermediate
- ssl_compatibility_level_modern
- ssl_compatibility_level_old
default: ssl_compatibility_level_unknown
required:
- name
x-properties-order:
- organization_id
- project_id
- name
- description
- ip_id
- assign_flexible_ip
- assign_flexible_ipv6
- ip_ids
- tags
- type
- ssl_compatibility_level
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X POST \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{
"description": "string",
"name": "string",
"type": "string"
}' \
"https://api.scaleway.com/lb/v1/zones/{zone}/lbs"
- lang: HTTPie
source: |-
http POST "https://api.scaleway.com/lb/v1/zones/{zone}/lbs" \
X-Auth-Token:$SCW_SECRET_KEY \
description="string" \
name="string" \
type="string"
/lb/v1/zones/{zone}/lbs/{lb_id}:
get:
tags:
- Load Balancer
operationId: GetLb
summary: Get a Load Balancer
description: Retrieve information about an existing Load Balancer, specified
by its Load Balancer ID. Its full details, including name, status and IP address,
are returned in the response object.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- in: path
name: lb_id
description: Load Balancer ID.
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.lb.v1.Lb'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/lb/v1/zones/{zone}/lbs/{lb_id}"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/lb/v1/zones/{zone}/lbs/{lb_id}" \
X-Auth-Token:$SCW_SECRET_KEY
put:
tags:
- Load Balancer
operationId: UpdateLb
summary: Update a Load Balancer
description: Update the parameters of an existing Load Balancer, specified by
its Load Balancer ID. Note that the request type is PUT and not PATCH. You
must set all parameters.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- in: path
name: lb_id
description: Load Balancer ID.
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.lb.v1.Lb'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Load Balancer name.
description:
type: string
description: Load Balancer description.
tags:
type: array
description: List of tags for the Load Balancer.
items:
type: string
ssl_compatibility_level:
type: string
description: Determines the minimal SSL version which needs to be
supported on the client side, in an SSL/TLS offloading context.
Intermediate is suitable for general-purpose servers with a variety
of clients, recommended for almost all systems (>= TLS1.2). Modern
is suitable for services with clients that support TLS 1.3 and
do not need backward compatibility (= TLS1.3). Old is compatible
with a small number of very old clients and should be used only
as a last resort (>= TLS1.0).
enum:
- ssl_compatibility_level_unknown
- ssl_compatibility_level_intermediate
- ssl_compatibility_level_modern
- ssl_compatibility_level_old
default: ssl_compatibility_level_unknown
required:
- name
- description
x-properties-order:
- name
- description
- tags
- ssl_compatibility_level
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X PUT \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"description":"string","name":"string"}' \
"https://api.scaleway.com/lb/v1/zones/{zone}/lbs/{lb_id}"
- lang: HTTPie
source: |-
http PUT "https://api.scaleway.com/lb/v1/zones/{zone}/lbs/{lb_id}" \
X-Auth-Token:$SCW_SECRET_KEY \
description="string" \
name="string"
delete:
tags:
- Load Balancer
operationId: DeleteLb
summary: Delete a Load Balancer
description: Delete an existing Load Balancer, specified by its Load Balancer
ID. Deleting a Load Balancer is permanent, and cannot be undone. The Load
Balancer's flexible IP address can either be deleted with the Load Balancer,
or kept in your account for future use.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- in: path
name: lb_id
description: ID of the Load Balancer to delete.
required: true
schema:
type: string
- in: query
name: release_ip
description: Defines whether the Load Balancer's flexible IP should be deleted.
Set to true to release the flexible IP, or false to keep it available in
your account for future Load Balancers.
required: true
schema:
type: boolean
responses:
"204":
description: ""
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X DELETE \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/lb/v1/zones/{zone}/lbs/{lb_id}?release_ip=false"
- lang: HTTPie
source: |-
http DELETE "https://api.scaleway.com/lb/v1/zones/{zone}/lbs/{lb_id}" \
X-Auth-Token:$SCW_SECRET_KEY \
release_ip==false
/lb/v1/zones/{zone}/lbs/{lb_id}/attach-private-network:
post:
tags:
- Private Networks
operationId: AttachPrivateNetwork
summary: Attach a Load Balancer to a Private Network
description: Attach a specified Load Balancer to a specified Private Network,
defining a static or DHCP configuration for the Load Balancer on the network.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- in: path
name: lb_id
description: Load Balancer ID.
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.lb.v1.PrivateNetwork'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
private_network_id:
type: string
description: Private Network ID.
ipam_ids:
type: array
description: IPAM ID of a pre-reserved IP address to assign to the
Load Balancer on this Private Network. In the future, it will
be possible to specify multiple IPs in this field (IPv4 and IPv6),
for now only one ID of an IPv4 address is expected. When null,
a new private IP address is created for the Load Balancer on this
Private Network. (UUID format)
example:
- 6170692e-7363-616c-6577-61792e636f6d
items:
type: string
required:
- private_network_id
x-properties-order:
- private_network_id
- ipam_ids
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X POST \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"private_network_id":"string"}' \
"https://api.scaleway.com/lb/v1/zones/{zone}/lbs/{lb_id}/attach-private-network"
- lang: HTTPie
source: |-
http POST "https://api.scaleway.com/lb/v1/zones/{zone}/lbs/{lb_id}/attach-private-network" \
X-Auth-Token:$SCW_SECRET_KEY \
private_network_id="string"
/lb/v1/zones/{zone}/lbs/{lb_id}/backend-stats:
get:
tags:
- Backends
operationId: ListBackendStats
summary: List backend server statistics
description: List information about your backend servers, including their state
and the result of their last health check.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- in: path
name: lb_id
description: Load Balancer ID.
required: true
schema:
type: string
- in: query
name: page
description: The page number to return, from the paginated results.
schema:
type: integer
format: int32
- in: query
name: page_size
description: Number of items to return.
schema:
type: integer
format: uint32
- in: query
name: backend_id
description: ID of the backend.
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.lb.v1.ListBackendStatsResponse'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/lb/v1/zones/{zone}/lbs/{lb_id}/backend-stats"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/lb/v1/zones/{zone}/lbs/{lb_id}/backend-stats" \
X-Auth-Token:$SCW_SECRET_KEY
/lb/v1/zones/{zone}/lbs/{lb_id}/backends:
get:
tags:
- Backends
operationId: ListBackends
summary: List the backends of a given Load Balancer
description: List all the backends of a Load Balancer, specified by its Load
Balancer ID. By default, results are returned in ascending order by the creation
date of each backend. The response is an array of backend objects, containing
full details of each one including their configuration parameters such as
protocol, port and forwarding algorithm.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- in: path
name: lb_id
description: Load Balancer ID.
required: true
schema:
type: string
- in: query
name: name
description: Name of the backend to filter for.
schema:
type: string
- in: query
name: order_by
description: Sort order of backends in the response.
schema:
type: string
enum:
- created_at_asc
- created_at_desc
- name_asc
- name_desc
default: created_at_asc
- in: query
name: page
description: The page number to return, from the paginated results.
schema:
type: integer
format: int32
- in: query
name: page_size
description: Number of backends to return.
schema:
type: integer
format: uint32
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.lb.v1.ListBackendsResponse'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/lb/v1/zones/{zone}/lbs/{lb_id}/backends"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/lb/v1/zones/{zone}/lbs/{lb_id}/backends" \
X-Auth-Token:$SCW_SECRET_KEY
post:
tags:
- Backends
operationId: CreateBackend
summary: Create a backend for a given Load Balancer
description: Create a new backend for a given Load Balancer, specifying its
full configuration including protocol, port and forwarding algorithm.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- in: path
name: lb_id
description: Load Balancer ID.
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.lb.v1.Backend'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Name for the backend.
forward_protocol:
type: string
description: Protocol to be used by the backend when forwarding
traffic to backend servers.
enum:
- tcp
- http
default: tcp
forward_port:
type: integer
description: Port to be used by the backend when forwarding traffic
to backend servers.
format: int32
forward_port_algorithm:
type: string
description: Load balancing algorithm to be used when determining
which backend server to forward new traffic to.
enum:
- roundrobin
- leastconn
- first
default: roundrobin
sticky_sessions:
type: string
description: Defines whether to activate sticky sessions (binding
a particular session to a particular backend server) and the method
to use if so. None disables sticky sessions. Cookie-based uses
an HTTP cookie TO stick a session to a backend server. Table-based
uses the source (client) IP address to stick a session to a backend
server.
enum:
- none
- cookie
- table
default: none
sticky_sessions_cookie_name:
type: string
description: Cookie name for cookie-based sticky sessions.
health_check:
type: object
description: Object defining the health check to be carried out
by the backend when checking the status and health of backend
servers.
properties:
port:
type: integer
description: Port to use for the backend server health check.
format: int32
check_delay:
type: number
description: Time to wait between two consecutive health checks.
(in milliseconds)
default: 3000
check_timeout:
type: number
description: Maximum time a backend server has to reply to the
health check. (in milliseconds)
default: 1000
check_max_retries:
type: integer
description: Number of consecutive unsuccessful health checks
after which the server will be considered dead.
format: int32
tcp_config:
type: object
description: Object to configure a basic TCP health check.
nullable: true
x-one-of: config
mysql_config:
type: object
description: Object to configure a MySQL health check. The check
requires MySQL >=3.22 or <9.0. For older or newer versions,
use a TCP health check.
properties:
user:
type: string
description: MySQL user to use for the health check.
nullable: true
x-properties-order:
- user
x-one-of: config
pgsql_config:
type: object
description: Object to configure a PostgreSQL health check.
properties:
user:
type: string
description: PostgreSQL user to use for the health check.
nullable: true
x-properties-order:
- user
x-one-of: config
ldap_config:
type: object
description: Object to configure an LDAP health check. The response
is analyzed to find the LDAPv3 response message.
nullable: true
x-one-of: config
redis_config:
type: object
description: Object to configure a Redis health check. The response
is analyzed to find the +PONG response message.
nullable: true
x-one-of: config
http_config:
type: object
description: Object to configure an HTTP health check.
properties:
uri:
type: string
description: |-
HTTP path used for the health check.
The HTTP path to use when performing a health check on backend servers.
method:
type: string
description: |-
HTTP method used for the health check.
The HTTP method used when performing a health check on backend servers.
code:
type: integer
description: |-
HTTP response code expected for a successful health check.
The HTTP response code that should be returned for a health check to be considered successful.
format: int32
nullable: true
host_header:
type: string
description: |-
HTTP host header used for the health check.
The HTTP host header used when performing a health check on backend servers.
nullable: true
x-properties-order:
- uri
- method
- code
- host_header
x-one-of: config
https_config:
type: object
description: Object to configure an HTTPS health check.
properties:
uri:
type: string
description: |-
HTTP path used for the health check.
The HTTP path to use when performing a health check on backend servers.
method:
type: string
description: |-
HTTP method used for the health check.
The HTTP method used when performing a health check on backend servers.
code:
type: integer
description: |-
HTTP response code expected for a successful health check.
The HTTP response code that should be returned for a health check to be considered successful.
format: int32
nullable: true
host_header:
type: string
description: |-
HTTP host header used for the health check.
The HTTP host header used when performing a health check on backend servers.
sni:
type: string
description: |-
SNI used for SSL health checks.
The SNI value used when performing a health check on backend servers over SSL.
nullable: true
x-properties-order:
- uri
- method
- code
- host_header
- sni
x-one-of: config
check_send_proxy:
type: boolean
description: Defines whether proxy protocol should be activated
for the health check.
transient_check_delay:
type: string
description: Time to wait between two consecutive health checks
when a backend server is in a transient state (going UP or
DOWN). (in seconds)
example: 2.5s
nullable: true
default: 0.5s
x-properties-order:
- port
- check_delay
- check_timeout
- check_max_retries
- tcp_config
- mysql_config
- pgsql_config
- ldap_config
- redis_config
- http_config
- https_config
- check_send_proxy
- transient_check_delay
server_ip:
type: array
description: List of backend server IP addresses (IPv4 or IPv6)
the backend should forward traffic to.
items:
type: string
send_proxy_v2:
type: boolean
description: Deprecated in favor of proxy_protocol field.
deprecated: true
timeout_server:
type: number
description: Maximum allowed time for a backend server to process
a request. (in milliseconds)
timeout_connect:
type: number
description: Maximum allowed time for establishing a connection
to a backend server. (in milliseconds)
timeout_tunnel:
type: number
description: Maximum allowed tunnel inactivity time after Websocket
is established (takes precedence over client and server timeout).
(in milliseconds)
on_marked_down_action:
type: string
description: Action to take when a backend server is marked as down.
enum:
- on_marked_down_action_none
- shutdown_sessions
default: on_marked_down_action_none
proxy_protocol:
type: string
description: Protocol to use between the Load Balancer and backend
servers. Allows the backend servers to be informed of the client's
real IP address. The PROXY protocol must be supported by the backend
servers' software.
enum:
- proxy_protocol_unknown
- proxy_protocol_none
- proxy_protocol_v1
- proxy_protocol_v2
- proxy_protocol_v2_ssl
- proxy_protocol_v2_ssl_cn
default: proxy_protocol_unknown
failover_host:
type: string
description: Scaleway Object Storage bucket website to be served
as failover if all backend servers are down, e.g. failover-website.s3-website.fr-par.scw.cloud.
nullable: true
ssl_bridging:
type: boolean
description: Defines whether to enable SSL bridging between the
Load Balancer and backend servers.
nullable: true
ignore_ssl_server_verify:
type: boolean
description: Defines whether the server certificate verification
should be ignored.
nullable: true
redispatch_attempt_count:
type: integer
description: Whether to use another backend server on each attempt.
format: int32
nullable: true
max_retries:
type: integer
description: Number of retries when a backend server connection
failed.
format: int32
nullable: true
max_connections:
type: integer
description: Maximum number of connections allowed per backend server.
format: int32
nullable: true
timeout_queue:
type: string
description: Maximum time for a request to be left pending in queue
when `max_connections` is reached. (in seconds)
example: 2.5s
nullable: true
required:
- name
- forward_protocol
- forward_port
- forward_port_algorithm
- sticky_sessions
- health_check
- server_ip
x-properties-order:
- name
- forward_protocol
- forward_port
- forward_port_algorithm
- sticky_sessions
- sticky_sessions_cookie_name
- health_check
- server_ip
- send_proxy_v2
- timeout_server
- timeout_connect
- timeout_tunnel
- on_marked_down_action
- proxy_protocol
- failover_host
- ssl_bridging
- ignore_ssl_server_verify
- redispatch_attempt_count
- max_retries
- max_connections
- timeout_queue
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X POST \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{
"forward_port": 42,
"forward_port_algorithm": "roundrobin",
"forward_protocol": "tcp",
"health_check": {
"check_delay": 3000,
"check_max_retries": 42,
"check_send_proxy": false,
"check_timeout": 1000,
"http_config": {
"code": 42,
"host_header": "string",
"method": "string",
"uri": "string"
},
"https_config": {
"code": 42,
"host_header": "string",
"method": "string",
"sni": "string",
"uri": "string"
},
"ldap_config": {},
"mysql_config": {
"user": "string"
},
"pgsql_config": {
"user": "string"
},
"port": 42,
"redis_config": {},
"tcp_config": {},
"transient_check_delay": "2.5s"
},
"name": "string",
"send_proxy_v2": false,
"server_ip": [
"string"
],
"sticky_sessions": "none",
"sticky_sessions_cookie_name": "string"
}' \
"https://api.scaleway.com/lb/v1/zones/{zone}/lbs/{lb_id}/backends"
- lang: HTTPie
source: |-
http POST "https://api.scaleway.com/lb/v1/zones/{zone}/lbs/{lb_id}/backends" \
X-Auth-Token:$SCW_SECRET_KEY \
forward_port:=42 \
forward_port_algorithm="roundrobin" \
forward_protocol="tcp" \
health_check:='{
"check_delay": 3000,
"check_max_retries": 42,
"check_send_proxy": false,
"check_timeout": 1000,
"http_config": {
"code": 42,
"host_header": "string",
"method": "string",
"uri": "string"
},
"https_config": {
"code": 42,
"host_header": "string",
"method": "string",
"sni": "string",
"uri": "string"
},
"ldap_config": {},
"mysql_config": {
"user": "string"
},
"pgsql_config": {
"user": "string"
},
"port": 42,
"redis_config": {},
"tcp_config": {},
"transient_check_delay": "2.5s"
}' \
name="string" \
send_proxy_v2:=false \
server_ip:='[
"string"
]' \
sticky_sessions="none" \
sticky_sessions_cookie_name="string"
/lb/v1/zones/{zone}/lbs/{lb_id}/certificates:
get:
tags:
- Certificate
operationId: ListCertificates
summary: List all SSL/TLS certificates on a given Load Balancer
description: List all the SSL/TLS certificates on a given Load Balancer. The
response is an array of certificate objects, which are by default listed in
ascending order of creation date.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- in: path
name: lb_id
description: Load Balancer ID.
required: true
schema:
type: string
- in: query
name: order_by
description: Sort order of certificates in the response.
schema:
type: string
enum:
- created_at_asc
- created_at_desc
- name_asc
- name_desc
default: created_at_asc
- in: query
name: page
description: The page number to return, from the paginated results.
schema:
type: integer
format: int32
- in: query
name: page_size
description: Number of certificates to return.
schema:
type: integer
format: uint32
- in: query
name: name
description: Certificate name to filter for, only certificates of this name
will be returned.
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.lb.v1.ListCertificatesResponse'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/lb/v1/zones/{zone}/lbs/{lb_id}/certificates"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/lb/v1/zones/{zone}/lbs/{lb_id}/certificates" \
X-Auth-Token:$SCW_SECRET_KEY
post:
tags:
- Certificate
operationId: CreateCertificate
summary: Create an SSL/TLS certificate
description: Generate a new SSL/TLS certificate for a given Load Balancer. You
can choose to create a Let's Encrypt certificate, or import a custom certificate.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- in: path
name: lb_id
description: Load Balancer ID.
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.lb.v1.Certificate'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Name for the certificate.
letsencrypt:
type: object
description: Object to define a new Let's Encrypt certificate to
be generated.
properties:
common_name:
type: string
description: Main domain name of certificate (this domain must
exist and resolve to your Load Balancer IP address).
subject_alternative_name:
type: array
description: Alternative domain names (all domain names must
exist and resolve to your Load Balancer IP address).
items:
type: string
nullable: true
required:
- common_name
x-properties-order:
- common_name
- subject_alternative_name
x-one-of: type
custom_certificate:
type: object
description: Object to define an existing custom certificate to
be imported.
properties:
certificate_chain:
type: string
description: Full PEM-formatted certificate, consisting of the
entire certificate chain including public key, private key,
and (optionally) Certificate Authorities.
nullable: true
required:
- certificate_chain
x-properties-order:
- certificate_chain
x-one-of: type
required:
- name
x-properties-order:
- name
- letsencrypt
- custom_certificate
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X POST \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"string"}' \
"https://api.scaleway.com/lb/v1/zones/{zone}/lbs/{lb_id}/certificates"
- lang: HTTPie
source: |-
http POST "https://api.scaleway.com/lb/v1/zones/{zone}/lbs/{lb_id}/certificates" \
X-Auth-Token:$SCW_SECRET_KEY \
name="string"
/lb/v1/zones/{zone}/lbs/{lb_id}/detach-private-network:
post:
tags:
- Private Networks
operationId: DetachPrivateNetwork
summary: Detach Load Balancer from Private Network
description: Detach a specified Load Balancer from a specified Private Network.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- in: path
name: lb_id
description: Load balancer ID.
required: true
schema:
type: string
responses:
"204":
description: ""
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
private_network_id:
type: string
description: Set your instance private network id.
required:
- private_network_id
x-properties-order:
- private_network_id
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X POST \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"private_network_id":"string"}' \
"https://api.scaleway.com/lb/v1/zones/{zone}/lbs/{lb_id}/detach-private-network"
- lang: HTTPie
source: |-
http POST "https://api.scaleway.com/lb/v1/zones/{zone}/lbs/{lb_id}/detach-private-network" \
X-Auth-Token:$SCW_SECRET_KEY \
private_network_id="string"
/lb/v1/zones/{zone}/lbs/{lb_id}/frontends:
get:
tags:
- Frontends
operationId: ListFrontends
summary: List frontends of a given Load Balancer
description: List all the frontends of a Load Balancer, specified by its Load
Balancer ID. By default, results are returned in ascending order by the creation
date of each frontend. The response is an array of frontend objects, containing
full details of each one including the port they listen on and the backend
they are attached to.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- in: path
name: lb_id
description: Load Balancer ID.
required: true
schema:
type: string
- in: query
name: name
description: Name of the frontend to filter for.
schema:
type: string
- in: query
name: order_by
description: Sort order of frontends in the response.
schema:
type: string
enum:
- created_at_asc
- created_at_desc
- name_asc
- name_desc
default: created_at_asc
- in: query
name: page
description: The page number to return, from the paginated results.
schema:
type: integer
format: int32
- in: query
name: page_size
description: Number of frontends to return.
schema:
type: integer
format: uint32
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.lb.v1.ListFrontendsResponse'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/lb/v1/zones/{zone}/lbs/{lb_id}/frontends"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/lb/v1/zones/{zone}/lbs/{lb_id}/frontends" \
X-Auth-Token:$SCW_SECRET_KEY
post:
tags:
- Frontends
operationId: CreateFrontend
summary: Create a frontend in a given Load Balancer
description: Create a new frontend for a given Load Balancer, specifying its
configuration including the port it should listen on and the backend to attach
it to.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- in: path
name: lb_id
description: Load Balancer ID (ID of the Load Balancer to attach the frontend
to).
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.lb.v1.Frontend'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Name for the frontend.
inbound_port:
type: integer
description: Port the frontend should listen on.
format: int32
backend_id:
type: string
description: Backend ID (ID of the backend the frontend should pass
traffic to).
timeout_client:
type: number
description: Maximum allowed inactivity time on the client side.
(in milliseconds)
certificate_id:
type: string
description: Certificate ID, deprecated in favor of certificate_ids
array.
deprecated: true
nullable: true
certificate_ids:
type: array
description: List of SSL/TLS certificate IDs to bind to the frontend.
nullable: true
items:
type: string
enable_http3:
type: boolean
description: Defines whether to enable HTTP/3 protocol on the frontend.
connection_rate_limit:
type: integer
description: Rate limit for new connections established on this
frontend. Use 0 value to disable, else value is connections per
second.
format: uint32
nullable: true
enable_access_logs:
type: boolean
description: Defines whether to enable access logs on the frontend.
required:
- name
- inbound_port
- backend_id
x-properties-order:
- name
- inbound_port
- backend_id
- timeout_client
- certificate_id
- certificate_ids
- enable_http3
- connection_rate_limit
- enable_access_logs
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X POST \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{
"backend_id": "string",
"enable_access_logs": false,
"enable_http3": false,
"inbound_port": 42,
"name": "string"
}' \
"https://api.scaleway.com/lb/v1/zones/{zone}/lbs/{lb_id}/frontends"
- lang: HTTPie
source: |-
http POST "https://api.scaleway.com/lb/v1/zones/{zone}/lbs/{lb_id}/frontends" \
X-Auth-Token:$SCW_SECRET_KEY \
backend_id="string" \
enable_access_logs:=false \
enable_http3:=false \
inbound_port:=42 \
name="string"
/lb/v1/zones/{zone}/lbs/{lb_id}/migrate:
post:
tags:
- Load Balancer
operationId: MigrateLb
summary: Migrate a Load Balancer
description: Migrate an existing Load Balancer from one commercial type to another.
Allows you to scale your Load Balancer up or down in terms of bandwidth or
multi-cloud provision.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- in: path
name: lb_id
description: Load Balancer ID.
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.lb.v1.Lb'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
type:
type: string
description: Load Balancer type to migrate to (use the List all
Load Balancer offer types endpoint to get a list of available
offer types).
required:
- type
x-properties-order:
- type
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X POST \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"type":"string"}' \
"https://api.scaleway.com/lb/v1/zones/{zone}/lbs/{lb_id}/migrate"
- lang: HTTPie
source: |-
http POST "https://api.scaleway.com/lb/v1/zones/{zone}/lbs/{lb_id}/migrate" \
X-Auth-Token:$SCW_SECRET_KEY \
type="string"
/lb/v1/zones/{zone}/lbs/{lb_id}/private-networks:
get:
tags:
- Private Networks
operationId: ListLbPrivateNetworks
summary: List Private Networks attached to a Load Balancer
description: List the Private Networks attached to a given Load Balancer, specified
by its Load Balancer ID. The response is an array of Private Network objects,
giving information including the status, configuration, name and creation
date of each Private Network.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- in: path
name: lb_id
description: Load Balancer ID.
required: true
schema:
type: string
- in: query
name: order_by
description: Sort order of Private Network objects in the response.
schema:
type: string
enum:
- created_at_asc
- created_at_desc
default: created_at_asc
- in: query
name: page_size
description: Number of objects to return.
schema:
type: integer
format: uint32
- in: query
name: page
description: The page number to return, from the paginated results.
schema:
type: integer
format: int32
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.lb.v1.ListLbPrivateNetworksResponse'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/lb/v1/zones/{zone}/lbs/{lb_id}/private-networks"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/lb/v1/zones/{zone}/lbs/{lb_id}/private-networks" \
X-Auth-Token:$SCW_SECRET_KEY
/lb/v1/zones/{zone}/lbs/{lb_id}/stats:
get:
tags:
- Stats
operationId: GetLbStats
summary: Get usage statistics of a given Load Balancer
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- in: path
name: lb_id
description: Load Balancer ID.
required: true
schema:
type: string
- in: query
name: backend_id
description: ID of the backend.
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.lb.v1.LbStats'
security:
- scaleway: []
deprecated: true
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/lb/v1/zones/{zone}/lbs/{lb_id}/stats"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/lb/v1/zones/{zone}/lbs/{lb_id}/stats" \
X-Auth-Token:$SCW_SECRET_KEY
/lb/v1/zones/{zone}/routes:
get:
tags:
- Route
operationId: ListRoutes
summary: List all routes
description: List all routes for a given frontend. The response is an array
of routes, each one with a specified backend to direct to if a certain condition
is matched (based on the value of the SNI field or HTTP Host header).
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- in: query
name: order_by
description: Sort order of routes in the response.
schema:
type: string
enum:
- created_at_asc
- created_at_desc
default: created_at_asc
- in: query
name: page_size
description: The number of route objects to return.
schema:
type: integer
format: uint32
- in: query
name: page
description: The page number to return, from the paginated results.
schema:
type: integer
format: int32
- in: query
name: frontend_id
description: Frontend ID to filter for, only Routes from this Frontend will
be returned.
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.lb.v1.ListRoutesResponse'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/lb/v1/zones/{zone}/routes"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/lb/v1/zones/{zone}/routes" \
X-Auth-Token:$SCW_SECRET_KEY
post:
tags:
- Route
operationId: CreateRoute
summary: Create a route
description: Create a new route on a given frontend. To configure a route, specify
the backend to direct to if a certain condition is matched (based on the value
of the SNI field or HTTP Host header).
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.lb.v1.Route'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
frontend_id:
type: string
description: ID of the source frontend to create the route on.
backend_id:
type: string
description: ID of the target backend for the route.
match:
type: object
description: Object defining the match condition for a route to
be applied. If an incoming client session matches the specified
condition (i.e. it has a matching SNI value or HTTP Host header
value), it will be passed to the target backend.
properties:
sni:
type: string
description: |-
Server Name Indication (SNI) value to match.
Value to match in the Server Name Indication TLS extension (SNI) field from an incoming connection made via an SSL/TLS transport layer. This field should be set for routes on TCP Load Balancers.
nullable: true
x-one-of: MatchType
host_header:
type: string
description: |-
HTTP host header to match.
Value to match in the HTTP Host request header from an incoming request. This field should be set for routes on HTTP Load Balancers.
nullable: true
x-one-of: MatchType
match_subdomains:
type: boolean
description: If true, all subdomains will match.
path_begin:
type: string
description: |-
Path begin value to match.
Value to match in the URL beginning path from an incoming request.
nullable: true
x-one-of: MatchType
x-properties-order:
- sni
- host_header
- match_subdomains
- path_begin
x-properties-order:
- frontend_id
- backend_id
- match
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X POST \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"backend_id":"string","frontend_id":"string"}' \
"https://api.scaleway.com/lb/v1/zones/{zone}/routes"
- lang: HTTPie
source: |-
http POST "https://api.scaleway.com/lb/v1/zones/{zone}/routes" \
X-Auth-Token:$SCW_SECRET_KEY \
backend_id="string" \
frontend_id="string"
/lb/v1/zones/{zone}/routes/{route_id}:
get:
tags:
- Route
operationId: GetRoute
summary: Get a route
description: Retrieve information about an existing route, specified by its
route ID. Its full details, origin frontend, target backend and match condition,
are returned in the response object.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- in: path
name: route_id
description: Route ID.
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.lb.v1.Route'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/lb/v1/zones/{zone}/routes/{route_id}"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/lb/v1/zones/{zone}/routes/{route_id}" \
X-Auth-Token:$SCW_SECRET_KEY
put:
tags:
- Route
operationId: UpdateRoute
summary: Update a route
description: Update the configuration of an existing route, specified by its
route ID.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- in: path
name: route_id
description: Route ID.
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.lb.v1.Route'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
backend_id:
type: string
description: ID of the target backend for the route.
match:
type: object
description: Object defining the match condition for a route to
be applied. If an incoming client session matches the specified
condition (i.e. it has a matching SNI value or HTTP Host header
value), it will be passed to the target backend.
properties:
sni:
type: string
description: |-
Server Name Indication (SNI) value to match.
Value to match in the Server Name Indication TLS extension (SNI) field from an incoming connection made via an SSL/TLS transport layer. This field should be set for routes on TCP Load Balancers.
nullable: true
x-one-of: MatchType
host_header:
type: string
description: |-
HTTP host header to match.
Value to match in the HTTP Host request header from an incoming request. This field should be set for routes on HTTP Load Balancers.
nullable: true
x-one-of: MatchType
match_subdomains:
type: boolean
description: If true, all subdomains will match.
path_begin:
type: string
description: |-
Path begin value to match.
Value to match in the URL beginning path from an incoming request.
nullable: true
x-one-of: MatchType
x-properties-order:
- sni
- host_header
- match_subdomains
- path_begin
x-properties-order:
- backend_id
- match
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X PUT \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"backend_id":"string"}' \
"https://api.scaleway.com/lb/v1/zones/{zone}/routes/{route_id}"
- lang: HTTPie
source: |-
http PUT "https://api.scaleway.com/lb/v1/zones/{zone}/routes/{route_id}" \
X-Auth-Token:$SCW_SECRET_KEY \
backend_id="string"
delete:
tags:
- Route
operationId: DeleteRoute
summary: Delete a route
description: Delete an existing route, specified by its route ID. Deleting a
route is permanent, and cannot be undone.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- in: path
name: route_id
description: Route ID.
required: true
schema:
type: string
responses:
"204":
description: ""
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X DELETE \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/lb/v1/zones/{zone}/routes/{route_id}"
- lang: HTTPie
source: |-
http DELETE "https://api.scaleway.com/lb/v1/zones/{zone}/routes/{route_id}" \
X-Auth-Token:$SCW_SECRET_KEY
/lb/v1/zones/{zone}/subscribers:
get:
tags:
- Alert Subscribers
operationId: ListSubscriber
summary: List all subscribers
description: List all subscribers to Load Balancer alerts. By default, returns
all subscribers to Load Balancer alerts for the Organization associated with
the authentication token used for the request.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- in: query
name: order_by
description: Sort order of subscribers in the response.
schema:
type: string
enum:
- created_at_asc
- created_at_desc
- name_asc
- name_desc
default: created_at_asc
- in: query
name: page
description: The page number to return, from the paginated results.
schema:
type: integer
format: int32
- in: query
name: page_size
description: The number of items to return.
schema:
type: integer
format: uint32
- in: query
name: name
description: Subscriber name to search for.
schema:
type: string
- in: query
name: organization_id
description: Filter subscribers by Organization ID.
schema:
type: string
- in: query
name: project_id
description: Filter subscribers by Project ID.
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.lb.v1.ListSubscriberResponse'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/lb/v1/zones/{zone}/subscribers?name=string"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/lb/v1/zones/{zone}/subscribers" \
X-Auth-Token:$SCW_SECRET_KEY \
name==string
post:
tags:
- Alert Subscribers
operationId: CreateSubscriber
summary: Create a subscriber
description: Create a new subscriber, either with an email configuration or
a webhook configuration, for a specified Scaleway Project.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.lb.v1.Subscriber'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Subscriber name.
email_config:
type: object
description: Email address configuration.
properties:
email:
type: string
description: Email address to send alerts to.
nullable: true
x-properties-order:
- email
x-one-of: config
webhook_config:
type: object
description: WebHook URI configuration.
properties:
uri:
type: string
description: URI to receive POST requests.
nullable: true
x-properties-order:
- uri
x-one-of: config
organization_id:
type: string
description: Organization ID to create the subscriber in.
deprecated: true
nullable: true
x-one-of: ProjectIdentifier
project_id:
type: string
description: Project ID to create the subscriber in.
nullable: true
x-one-of: ProjectIdentifier
required:
- name
x-properties-order:
- name
- email_config
- webhook_config
- organization_id
- project_id
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X POST \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"string"}' \
"https://api.scaleway.com/lb/v1/zones/{zone}/subscribers"
- lang: HTTPie
source: |-
http POST "https://api.scaleway.com/lb/v1/zones/{zone}/subscribers" \
X-Auth-Token:$SCW_SECRET_KEY \
name="string"
/lb/v1/zones/{zone}/subscribers/{subscriber_id}:
get:
tags:
- Alert Subscribers
operationId: GetSubscriber
summary: Get a subscriber
description: Retrieve information about an existing subscriber, specified by
its subscriber ID. Its full details, including name and email/webhook configuration,
are returned in the response object.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- in: path
name: subscriber_id
description: Subscriber ID.
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.lb.v1.Subscriber'
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X GET \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
"https://api.scaleway.com/lb/v1/zones/{zone}/subscribers/{subscriber_id}"
- lang: HTTPie
source: |-
http GET "https://api.scaleway.com/lb/v1/zones/{zone}/subscribers/{subscriber_id}" \
X-Auth-Token:$SCW_SECRET_KEY
put:
tags:
- Alert Subscribers
operationId: UpdateSubscriber
summary: Update a subscriber
description: Update the parameters of a given subscriber (e.g. name, webhook
configuration, email configuration), specified by its subscriber ID.
parameters:
- in: path
name: zone
description: The zone you want to target
required: true
schema:
type: string
enum:
- fr-par-1
- fr-par-2
- nl-ams-1
- nl-ams-2
- nl-ams-3
- pl-waw-1
- pl-waw-2
- pl-waw-3
- in: path
name: subscriber_id
description: Subscriber ID.
required: true
schema:
type: string
responses:
"200":
description: ""
content:
application/json:
schema:
$ref: '#/components/schemas/scaleway.lb.v1.Subscriber'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Subscriber name.
email_config:
type: object
description: Email address configuration.
properties:
email:
type: string
description: Email address to send alerts to.
nullable: true
x-properties-order:
- email
x-one-of: config
webhook_config:
type: object
description: Webhook URI configuration.
properties:
uri:
type: string
description: URI to receive POST requests.
nullable: true
x-properties-order:
- uri
x-one-of: config
required:
- name
x-properties-order:
- name
- email_config
- webhook_config
security:
- scaleway: []
x-codeSamples:
- lang: cURL
source: |-
curl -X PUT \
-H "X-Auth-Token: $SCW_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"string"}' \
"https://api.scaleway.com/lb/v1/zones/{zone}/subscribers/{subscriber_id}"
- lang: HTTPie
source: |-
http PUT "https://api.scaleway.com/lb/v1/zones/{zone}/subscribers/{subscriber_id}" \
X-Auth-Token:$SCW_SECRET_KEY \
name="string"