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    <Message type=\"note\">\n    This
    is an optional step that seeks to simplify your usage of the Load Balancer API.\n
    \   </Message>\n\n    ```bash\n    export SCW_SECRET_KEY=\"<API secret key>\"\n
    \   export SCW_DEFAULT_ZONE=\"<Scaleway default Availability Zone>\"\n    export
    SCW_PROJECT_ID=\"<Scaleway 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 `<LOAD-BALANCER-ID>`
    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/<LOAD-BALANCER-ID>/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          *
    `\"<type>_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 `<LOAD-BALANCER-ID>`
    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/<LOAD-BALANCER-ID>/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 `<LOAD-BALANCER-ID>`
    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/<LOAD-BALANCER-ID>\"
    \\\n      -d '{\n        \"release_ip\": false\n      }'\n    ```\n\n\n<Message
    type=\"requirement\">\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</Message>\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
      - "null"
    scaleway.lb.v1.Acl:
      type: object
      properties:
        id:
          type: string
          description: ACL ID.
        name:
          type: string
          description: ACL name.
        match:
          description: ACL match filter object. One of `ip_subnet`, `ips_edge_services`
            or `http_filter` & `http_filter_value` are required.
          $ref: '#/components/schemas/scaleway.lb.v1.AclMatch'
        action:
          description: Action to take when incoming traffic matches an ACL filter.
          $ref: '#/components/schemas/scaleway.lb.v1.AclAction'
        frontend:
          description: ACL is attached to this frontend object.
          $ref: '#/components/schemas/scaleway.lb.v1.Frontend'
        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
          - "null"
          description: Date on which the ACL was created. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        updated_at:
          type:
          - string
          - "null"
          description: Date on which the ACL was last updated. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        description:
          type: string
          description: ACL description.
      x-properties-order:
      - id
      - name
      - match
      - action
      - frontend
      - index
      - created_at
      - updated_at
      - description
    scaleway.lb.v1.AclAction:
      type: object
      properties:
        type:
          description: Action to take when incoming traffic matches an ACL filter.
          $ref: '#/components/schemas/scaleway.lb.v1.AclActionType'
        redirect:
          description: Redirection parameters when using an ACL with a `redirect`
            action.
          $ref: '#/components/schemas/scaleway.lb.v1.AclActionRedirect'
      x-properties-order:
      - type
      - redirect
    scaleway.lb.v1.AclActionRedirect:
      type: object
      properties:
        type:
          description: Redirect type.
          $ref: '#/components/schemas/scaleway.lb.v1.AclActionRedirect.RedirectType'
        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
          - "null"
          description: HTTP redirect code to use. Valid values are 301, 302, 303,
            307 and 308. Default value is 302.
          format: int32
      x-properties-order:
      - type
      - target
      - code
    scaleway.lb.v1.AclActionRedirect.RedirectType:
      type: string
      enum:
      - location
      - scheme
      default: location
    scaleway.lb.v1.AclActionType:
      type: string
      enum:
      - allow
      - deny
      - redirect
      default: allow
    scaleway.lb.v1.AclHttpFilter:
      type: string
      enum:
      - acl_http_filter_none
      - path_begin
      - path_end
      - regex
      - http_header_match
      default: acl_http_filter_none
    scaleway.lb.v1.AclMatch:
      type: object
      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. If set
            to `true`, restricts all connections except for Edge Services.
        http_filter:
          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.
          $ref: '#/components/schemas/scaleway.lb.v1.AclHttpFilter'
        http_filter_value:
          type: array
          description: List of values to filter for.
          items:
            $ref: '#/components/schemas/google.protobuf.StringValue'
        http_filter_option:
          type:
          - string
          - "null"
          description: Name of the HTTP header to filter on if `http_header_match`
            was selected in `http_filter`.
        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
    scaleway.lb.v1.AclSpec:
      type: object
      properties:
        name:
          type: string
          description: ACL name.
        action:
          description: Action to take when incoming traffic matches an ACL filter.
          $ref: '#/components/schemas/scaleway.lb.v1.AclAction'
        match:
          description: ACL match filter object. One of `ip_subnet`, `ips_edge_services`
            or `http_filter` and `http_filter_value` are required.
          $ref: '#/components/schemas/scaleway.lb.v1.AclMatch'
        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:
          description: Protocol used by the backend when forwarding traffic to backend
            servers.
          $ref: '#/components/schemas/scaleway.lb.v1.Protocol'
        forward_port:
          type: integer
          description: Port used by the backend when forwarding traffic to backend
            servers.
          format: int32
        forward_port_algorithm:
          description: Load balancing algorithm to use when determining which backend
            server to forward new traffic to.
          $ref: '#/components/schemas/scaleway.lb.v1.ForwardPortAlgorithm'
        sticky_sessions:
          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.
          $ref: '#/components/schemas/scaleway.lb.v1.StickySessionsType'
        sticky_sessions_cookie_name:
          type: string
          description: Cookie name for cookie-based sticky sessions.
        health_check:
          description: Object defining the health check to be carried out by the backend
            when checking the status and health of backend servers.
          $ref: '#/components/schemas/scaleway.lb.v1.HealthCheck'
        pool:
          type: array
          description: List of IP addresses of backend servers attached to this backend.
          items:
            type: string
        lb:
          description: Load Balancer the backend is attached to.
          $ref: '#/components/schemas/scaleway.lb.v1.Lb'
        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:
          description: Action to take when a backend server is marked as down.
          $ref: '#/components/schemas/scaleway.lb.v1.OnMarkedDownAction'
        proxy_protocol:
          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.
          $ref: '#/components/schemas/scaleway.lb.v1.ProxyProtocol'
        created_at:
          type:
          - string
          - "null"
          description: Date at which the backend was created. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        updated_at:
          type:
          - string
          - "null"
          description: Date at which the backend was updated. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        failover_host:
          type:
          - string
          - "null"
          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.
        ssl_bridging:
          type:
          - boolean
          - "null"
          description: Defines whether to enable SSL bridging between the Load Balancer
            and backend servers.
        ignore_ssl_server_verify:
          type:
          - boolean
          - "null"
          description: Defines whether the server certificate verification should
            be ignored.
        redispatch_attempt_count:
          type:
          - integer
          - "null"
          description: Whether to use another backend server on each attempt.
          format: int32
        max_retries:
          type:
          - integer
          - "null"
          description: Number of retries when a backend server connection failed.
          format: int32
        max_connections:
          type:
          - integer
          - "null"
          description: Maximum number of connections allowed per backend server.
          format: int32
        timeout_queue:
          type:
          - string
          - "null"
          description: Maximum time for a request to be left pending in queue when
            `max_connections` is reached. (in seconds)
          example: 2.5s
      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:
          description: Server operational state (stopped/starting/running/stopping).
          $ref: '#/components/schemas/scaleway.lb.v1.BackendServerStats.ServerState'
        server_state_changed_at:
          type:
          - string
          - "null"
          description: Time since last operational change. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        last_health_check_status:
          description: Last health check status (unknown/neutral/failed/passed/condpass).
          $ref: '#/components/schemas/scaleway.lb.v1.BackendServerStats.HealthCheckStatus'
      x-properties-order:
      - instance_id
      - backend_id
      - ip
      - server_state
      - server_state_changed_at
      - last_health_check_status
    scaleway.lb.v1.BackendServerStats.HealthCheckStatus:
      type: string
      enum:
      - unknown
      - neutral
      - failed
      - passed
      - condpass
      default: unknown
    scaleway.lb.v1.BackendServerStats.ServerState:
      type: string
      enum:
      - stopped
      - starting
      - running
      - stopping
      default: stopped
    scaleway.lb.v1.Certificate:
      type: object
      properties:
        type:
          description: Certificate type (Let's Encrypt or custom).
          $ref: '#/components/schemas/scaleway.lb.v1.Certificate.Type'
        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
          - "null"
          description: Lower validity bound. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        not_valid_after:
          type:
          - string
          - "null"
          description: Upper validity bound. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        status:
          description: Certificate status.
          $ref: '#/components/schemas/scaleway.lb.v1.Certificate.Status'
        lb:
          description: Load Balancer object the certificate is attached to.
          $ref: '#/components/schemas/scaleway.lb.v1.Lb'
        name:
          type: string
          description: Certificate name.
        created_at:
          type:
          - string
          - "null"
          description: Date on which the certificate was created. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        updated_at:
          type:
          - string
          - "null"
          description: Date on which the certificate was last updated. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        status_details:
          type:
          - string
          - "null"
          description: Additional information about the certificate status (useful
            in case of certificate generation failure, for example).
      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.Certificate.Status:
      type: string
      enum:
      - pending
      - ready
      - error
      default: pending
    scaleway.lb.v1.Certificate.Type:
      type: string
      enum:
      - letsencryt
      - custom
      - letsencrypt
      default: letsencryt
    scaleway.lb.v1.CreateCertificateRequest.CustomCertificate:
      type: object
      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.
      required:
      - certificate_chain
      x-properties-order:
      - certificate_chain
    scaleway.lb.v1.CreateCertificateRequest.LetsencryptConfig:
      type: object
      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
      required:
      - common_name
      x-properties-order:
      - common_name
      - subject_alternative_name
    scaleway.lb.v1.ForwardPortAlgorithm:
      type: string
      enum:
      - roundrobin
      - leastconn
      - first
      default: roundrobin
    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:
          description: Backend object the frontend is attached to.
          $ref: '#/components/schemas/scaleway.lb.v1.Backend'
        lb:
          description: Load Balancer object the frontend is attached to.
          $ref: '#/components/schemas/scaleway.lb.v1.Lb'
        timeout_client:
          type: number
          description: Maximum allowed inactivity time on the client side. (in milliseconds)
          default: 300000
        certificate:
          description: Certificate, deprecated in favor of certificate_ids array.
          deprecated: true
          $ref: '#/components/schemas/scaleway.lb.v1.Certificate'
        certificate_ids:
          type: array
          description: List of SSL/TLS certificate IDs to bind to the frontend.
          items:
            type: string
        created_at:
          type:
          - string
          - "null"
          description: Date on which the frontend was created. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        updated_at:
          type:
          - string
          - "null"
          description: Date on which the frontend was last updated. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        enable_http3:
          type: boolean
          description: Defines whether to enable HTTP/3 protocol on the frontend.
        connection_rate_limit:
          type:
          - integer
          - "null"
          description: Rate limit for new connections established on this frontend.
            Use 0 value to disable, else value is connections per second.
          format: uint32
        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:
          description: Object to configure a basic TCP health check.
          x-one-of: config
          oneOf:
          - $ref: '#/components/schemas/scaleway.lb.v1.HealthCheck.TcpConfig'
          - type: "null"
        mysql_config:
          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.
          x-one-of: config
          oneOf:
          - $ref: '#/components/schemas/scaleway.lb.v1.HealthCheck.MysqlConfig'
          - type: "null"
        pgsql_config:
          description: Object to configure a PostgreSQL health check.
          x-one-of: config
          oneOf:
          - $ref: '#/components/schemas/scaleway.lb.v1.HealthCheck.PgsqlConfig'
          - type: "null"
        ldap_config:
          description: Object to configure an LDAP health check. The response is analyzed
            to find the LDAPv3 response message.
          x-one-of: config
          oneOf:
          - $ref: '#/components/schemas/scaleway.lb.v1.HealthCheck.LdapConfig'
          - type: "null"
        redis_config:
          description: Object to configure a Redis health check. The response is analyzed
            to find the +PONG response message.
          x-one-of: config
          oneOf:
          - $ref: '#/components/schemas/scaleway.lb.v1.HealthCheck.RedisConfig'
          - type: "null"
        http_config:
          description: Object to configure an HTTP health check.
          x-one-of: config
          oneOf:
          - $ref: '#/components/schemas/scaleway.lb.v1.HealthCheck.HttpConfig'
          - type: "null"
        https_config:
          description: Object to configure an HTTPS health check.
          x-one-of: config
          oneOf:
          - $ref: '#/components/schemas/scaleway.lb.v1.HealthCheck.HttpsConfig'
          - type: "null"
        check_send_proxy:
          type: boolean
          description: Defines whether proxy protocol should be activated for the
            health check.
        transient_check_delay:
          type:
          - string
          - "null"
          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
          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.HealthCheck.HttpConfig:
      type: object
      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
          - "null"
          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
        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.
      x-properties-order:
      - uri
      - method
      - code
      - host_header
    scaleway.lb.v1.HealthCheck.HttpsConfig:
      type: object
      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
          - "null"
          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
        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.
      x-properties-order:
      - uri
      - method
      - code
      - host_header
      - sni
    scaleway.lb.v1.HealthCheck.LdapConfig:
      type: object
    scaleway.lb.v1.HealthCheck.MysqlConfig:
      type: object
      properties:
        user:
          type: string
          description: MySQL user to use for the health check.
      x-properties-order:
      - user
    scaleway.lb.v1.HealthCheck.PgsqlConfig:
      type: object
      properties:
        user:
          type: string
          description: PostgreSQL user to use for the health check.
      x-properties-order:
      - user
    scaleway.lb.v1.HealthCheck.RedisConfig:
      type: object
    scaleway.lb.v1.HealthCheck.TcpConfig:
      type: object
    scaleway.lb.v1.Instance:
      type: object
      properties:
        id:
          type: string
          description: Underlying Instance ID.
        status:
          description: Instance status.
          $ref: '#/components/schemas/scaleway.lb.v1.Instance.Status'
        ip_address:
          type: string
          description: Instance IP address.
        created_at:
          type:
          - string
          - "null"
          description: Date on which the Instance was created. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        updated_at:
          type:
          - string
          - "null"
          description: Date on which the Instance was last updated. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        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.Instance.Status:
      type: string
      enum:
      - unknown
      - ready
      - pending
      - stopped
      - error
      - locked
      - migrating
      default: unknown
    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
          - "null"
          description: Load Balancer ID.
        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:
          description: Load Balancer status.
          $ref: '#/components/schemas/scaleway.lb.v1.Lb.Status'
        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:
          description: Subscriber information.
          $ref: '#/components/schemas/scaleway.lb.v1.Subscriber'
        ssl_compatibility_level:
          description: Determines the minimal SSL version which needs to be supported
            on client side.
          $ref: '#/components/schemas/scaleway.lb.v1.SSLCompatibilityLevel'
        created_at:
          type:
          - string
          - "null"
          description: Date on which the Load Balancer was created. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        updated_at:
          type:
          - string
          - "null"
          description: Date on which the Load Balancer was last updated. (RFC 3339
            format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        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.Lb.Status:
      type: string
      enum:
      - unknown
      - ready
      - pending
      - stopped
      - error
      - locked
      - migrating
      - to_create
      - creating
      - to_delete
      - deleting
      default: unknown
    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:
          description: Current stock status for a given Load Balancer type.
          $ref: '#/components/schemas/scaleway.lb.v1.LbType.Stock'
        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.LbType.Stock:
      type: string
      enum:
      - unknown
      - low_stock
      - out_of_stock
      - available
      default: unknown
    scaleway.lb.v1.ListAclRequest.OrderBy:
      type: string
      enum:
      - created_at_asc
      - created_at_desc
      - name_asc
      - name_desc
      default: created_at_asc
    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.ListBackendsRequest.OrderBy:
      type: string
      enum:
      - created_at_asc
      - created_at_desc
      - name_asc
      - name_desc
      default: created_at_asc
    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.ListCertificatesRequest.OrderBy:
      type: string
      enum:
      - created_at_asc
      - created_at_desc
      - name_asc
      - name_desc
      default: created_at_asc
    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.ListFrontendsRequest.OrderBy:
      type: string
      enum:
      - created_at_asc
      - created_at_desc
      - name_asc
      - name_desc
      default: created_at_asc
    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.ListIpsRequest.IpType:
      type: string
      enum:
      - all
      - ipv4
      - ipv6
      default: all
    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.ListLbsRequest.OrderBy:
      type: string
      enum:
      - created_at_asc
      - created_at_desc
      - name_asc
      - name_desc
      default: created_at_asc
    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.ListPrivateNetworksRequest.OrderBy:
      type: string
      enum:
      - created_at_asc
      - created_at_desc
      default: created_at_asc
    scaleway.lb.v1.ListRoutesRequest.OrderBy:
      type: string
      enum:
      - created_at_asc
      - created_at_desc
      default: created_at_asc
    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.ListSubscriberRequest.OrderBy:
      type: string
      enum:
      - created_at_asc
      - created_at_desc
      - name_asc
      - name_desc
      default: created_at_asc
    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.OnMarkedDownAction:
      type: string
      enum:
      - on_marked_down_action_none
      - shutdown_sessions
      default: on_marked_down_action_none
    scaleway.lb.v1.PrivateNetwork:
      type: object
      properties:
        lb:
          description: Load Balancer object which is attached to the Private Network.
          $ref: '#/components/schemas/scaleway.lb.v1.Lb'
        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:
          description: Object containing an array of a local IP address for the Load
            Balancer on this Private Network.
          deprecated: true
          x-one-of: Config
          oneOf:
          - $ref: '#/components/schemas/scaleway.lb.v1.PrivateNetwork.StaticConfig'
          - type: "null"
        dhcp_config:
          description: Object containing DHCP-assigned IP addresses.
          deprecated: true
          x-one-of: Config
          oneOf:
          - $ref: '#/components/schemas/scaleway.lb.v1.PrivateNetwork.DHCPConfig'
          - type: "null"
        private_network_id:
          type: string
          description: Private Network ID.
        status:
          description: Status of Private Network connection.
          $ref: '#/components/schemas/scaleway.lb.v1.PrivateNetwork.Status'
        created_at:
          type:
          - string
          - "null"
          description: Date on which the Private Network was created. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        updated_at:
          type:
          - string
          - "null"
          description: Date on which the PN was last updated. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
      x-properties-order:
      - lb
      - ipam_ids
      - static_config
      - dhcp_config
      - private_network_id
      - status
      - created_at
      - updated_at
    scaleway.lb.v1.PrivateNetwork.DHCPConfig:
      type: object
      properties:
        ip_id:
          type:
          - string
          - "null"
          description: (UUID format)
          deprecated: true
          example: 6170692e-7363-616c-6577-61792e636f6d
      x-properties-order:
      - ip_id
    scaleway.lb.v1.PrivateNetwork.StaticConfig:
      type: object
      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
      x-properties-order:
      - ip_address
    scaleway.lb.v1.PrivateNetwork.Status:
      type: string
      enum:
      - unknown
      - ready
      - pending
      - error
      default: unknown
    scaleway.lb.v1.Protocol:
      type: string
      enum:
      - tcp
      - http
      default: tcp
    scaleway.lb.v1.ProxyProtocol:
      type: string
      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
    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:
          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.
          $ref: '#/components/schemas/scaleway.lb.v1.Route.Match'
        created_at:
          type:
          - string
          - "null"
          description: Date on which the route was created. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        updated_at:
          type:
          - string
          - "null"
          description: Date on which the route was last updated. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
      x-properties-order:
      - id
      - frontend_id
      - backend_id
      - match
      - created_at
      - updated_at
    scaleway.lb.v1.Route.Match:
      type: object
      properties:
        sni:
          type:
          - string
          - "null"
          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.
          x-one-of: MatchType
        host_header:
          type:
          - string
          - "null"
          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.
          x-one-of: MatchType
        match_subdomains:
          type: boolean
          description: If true, all subdomains will match.
        path_begin:
          type:
          - string
          - "null"
          description: |-
            Path begin value to match.
            Value to match in the URL beginning path from an incoming request.
          x-one-of: MatchType
      x-properties-order:
      - sni
      - host_header
      - match_subdomains
      - path_begin
    scaleway.lb.v1.SSLCompatibilityLevel:
      type: string
      enum:
      - ssl_compatibility_level_unknown
      - ssl_compatibility_level_intermediate
      - ssl_compatibility_level_modern
      - ssl_compatibility_level_old
      default: ssl_compatibility_level_unknown
    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.StickySessionsType:
      type: string
      enum:
      - none
      - cookie
      - table
      default: none
    scaleway.lb.v1.Subscriber:
      type: object
      properties:
        id:
          type: string
          description: Subscriber ID.
        name:
          type: string
          description: Subscriber name.
        email_config:
          description: Email address of subscriber.
          x-one-of: config
          oneOf:
          - $ref: '#/components/schemas/scaleway.lb.v1.Subscriber.EmailConfig'
          - type: "null"
        webhook_config:
          description: Webhook URI of subscriber.
          x-one-of: config
          oneOf:
          - $ref: '#/components/schemas/scaleway.lb.v1.Subscriber.WebhookConfig'
          - type: "null"
      x-properties-order:
      - id
      - name
      - email_config
      - webhook_config
    scaleway.lb.v1.Subscriber.EmailConfig:
      type: object
      properties:
        email:
          type: string
          description: Email address to send alerts to.
      x-properties-order:
      - email
    scaleway.lb.v1.Subscriber.WebhookConfig:
      type: object
      properties:
        uri:
          type: string
          description: URI to receive POST requests.
      x-properties-order:
      - uri
  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:
                  description: Action to take when incoming traffic matches an ACL
                    filter.
                  $ref: '#/components/schemas/scaleway.lb.v1.AclAction'
                match:
                  description: ACL match filter object. One of `ip_subnet`, `ips_edge_services`
                    or `http_filter` & `http_filter_value` are required.
                  $ref: '#/components/schemas/scaleway.lb.v1.AclMatch'
                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
                  - "null"
                  description: ACL description.
              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": "",
              "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="" \
            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:
                  description: Protocol to be used by the backend when forwarding
                    traffic to backend servers.
                  $ref: '#/components/schemas/scaleway.lb.v1.Protocol'
                forward_port:
                  type: integer
                  description: Port to be used by the backend when forwarding traffic
                    to backend servers.
                  format: int32
                forward_port_algorithm:
                  description: Load balancing algorithm to be used when determining
                    which backend server to forward new traffic to.
                  $ref: '#/components/schemas/scaleway.lb.v1.ForwardPortAlgorithm'
                sticky_sessions:
                  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.
                  $ref: '#/components/schemas/scaleway.lb.v1.StickySessionsType'
                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:
                  description: Action to take when a backend server is marked as down.
                  $ref: '#/components/schemas/scaleway.lb.v1.OnMarkedDownAction'
                proxy_protocol:
                  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.
                  $ref: '#/components/schemas/scaleway.lb.v1.ProxyProtocol'
                failover_host:
                  type:
                  - string
                  - "null"
                  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.
                ssl_bridging:
                  type:
                  - boolean
                  - "null"
                  description: Defines whether to enable SSL bridging between the
                    Load Balancer and backend servers.
                ignore_ssl_server_verify:
                  type:
                  - boolean
                  - "null"
                  description: Defines whether the server certificate verification
                    should be ignored.
                redispatch_attempt_count:
                  type:
                  - integer
                  - "null"
                  description: Whether to use another backend server on each attempt.
                  format: int32
                max_retries:
                  type:
                  - integer
                  - "null"
                  description: Number of retries when a backend server connection
                    failed.
                  format: int32
                max_connections:
                  type:
                  - integer
                  - "null"
                  description: Maximum number of connections allowed per backend server.
                  format: int32
                timeout_queue:
                  type:
                  - string
                  - "null"
                  description: Maximum time for a request to be left pending in queue
                    when `max_connections` is reached. (in seconds)
                  example: 2.5s
              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:
                  description: Object to configure a basic TCP health check.
                  x-one-of: Config
                  oneOf:
                  - $ref: '#/components/schemas/scaleway.lb.v1.HealthCheck.TcpConfig'
                  - type: "null"
                mysql_config:
                  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.
                  x-one-of: Config
                  oneOf:
                  - $ref: '#/components/schemas/scaleway.lb.v1.HealthCheck.MysqlConfig'
                  - type: "null"
                pgsql_config:
                  description: Object to configure a PostgreSQL health check.
                  x-one-of: Config
                  oneOf:
                  - $ref: '#/components/schemas/scaleway.lb.v1.HealthCheck.PgsqlConfig'
                  - type: "null"
                ldap_config:
                  description: Object to configure an LDAP health check. The response
                    is analyzed to find the LDAPv3 response message.
                  x-one-of: Config
                  oneOf:
                  - $ref: '#/components/schemas/scaleway.lb.v1.HealthCheck.LdapConfig'
                  - type: "null"
                redis_config:
                  description: Object to configure a Redis health check. The response
                    is analyzed to find the +PONG response message.
                  x-one-of: Config
                  oneOf:
                  - $ref: '#/components/schemas/scaleway.lb.v1.HealthCheck.RedisConfig'
                  - type: "null"
                http_config:
                  description: Object to configure an HTTP health check.
                  x-one-of: Config
                  oneOf:
                  - $ref: '#/components/schemas/scaleway.lb.v1.HealthCheck.HttpConfig'
                  - type: "null"
                https_config:
                  description: Object to configure an HTTPS health check.
                  x-one-of: Config
                  oneOf:
                  - $ref: '#/components/schemas/scaleway.lb.v1.HealthCheck.HttpsConfig'
                  - type: "null"
                transient_check_delay:
                  type:
                  - string
                  - "null"
                  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
              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
                  - "null"
                  description: Certificate ID, deprecated in favor of certificate_ids
                    array.
                  deprecated: true
                certificate_ids:
                  type:
                  - array
                  - "null"
                  description: List of SSL/TLS certificate IDs to bind to the frontend.
                enable_http3:
                  type: boolean
                  description: Defines whether to enable HTTP/3 protocol on the frontend.
                connection_rate_limit:
                  type:
                  - integer
                  - "null"
                  description: Rate limit for new connections established on this
                    frontend. Use 0 value to disable, else value is connections per
                    second.
                  format: uint32
                enable_access_logs:
                  type:
                  - boolean
                  - "null"
                  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:
          $ref: '#/components/schemas/scaleway.lb.v1.ListAclRequest.OrderBy'
      - 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:
                  description: Action to take when incoming traffic matches an ACL
                    filter.
                  $ref: '#/components/schemas/scaleway.lb.v1.AclAction'
                match:
                  description: ACL match filter object. One of `ip_subnet`, `ips_edge_services`
                    or `http_filter` & `http_filter_value` are required.
                  $ref: '#/components/schemas/scaleway.lb.v1.AclMatch'
                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": "",
              "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="" \
            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:
          $ref: '#/components/schemas/scaleway.lb.v1.ListIpsRequest.IpType'
      - 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
                  - "null"
                  description: Organization ID of the Organization where the IP address
                    should be created.
                  deprecated: true
                  x-one-of: ProjectIdentifier
                project_id:
                  type:
                  - string
                  - "null"
                  description: Project ID of the Project where the IP address should
                    be created.
                  x-one-of: ProjectIdentifier
                reverse:
                  type:
                  - string
                  - "null"
                  description: Reverse DNS (domain name) for the IP address.
                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
                  - "null"
                  description: Reverse DNS (domain name) for the IP address.
                lb_id:
                  type:
                  - string
                  - "null"
                  description: ID of the server on which to attach the flexible IP.
                tags:
                  type:
                  - array
                  - "null"
                  description: List of tags for the IP.
              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:
          $ref: '#/components/schemas/scaleway.lb.v1.ListLbsRequest.OrderBy'
      - 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
      - in: query
        name: lb_ids
        description: Filter by lb_ids, only Load Balancers with these IDs 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
                  - "null"
                  description: Scaleway Organization to create the Load Balancer in.
                  deprecated: true
                  x-one-of: ProjectIdentifier
                project_id:
                  type:
                  - string
                  - "null"
                  description: Scaleway Project to create the Load Balancer in.
                  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
                  - "null"
                  description: ID of an existing flexible IP address to attach to
                    the Load Balancer.
                  deprecated: true
                assign_flexible_ip:
                  type:
                  - boolean
                  - "null"
                  description: Defines whether to automatically assign a flexible
                    public IP to the Load Balancer. Default value is `true` (assign).
                assign_flexible_ipv6:
                  type:
                  - boolean
                  - "null"
                  description: Defines whether to automatically assign a flexible
                    public IPv6 to the Load Balancer. Default value is `false` (do
                    not assign).
                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:
                  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).
                  $ref: '#/components/schemas/scaleway.lb.v1.SSLCompatibilityLevel'
              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:
                  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).
                  $ref: '#/components/schemas/scaleway.lb.v1.SSLCompatibilityLevel'
              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:
          $ref: '#/components/schemas/scaleway.lb.v1.ListBackendsRequest.OrderBy'
      - 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:
                  description: Protocol to be used by the backend when forwarding
                    traffic to backend servers.
                  $ref: '#/components/schemas/scaleway.lb.v1.Protocol'
                forward_port:
                  type: integer
                  description: Port to be used by the backend when forwarding traffic
                    to backend servers.
                  format: int32
                forward_port_algorithm:
                  description: Load balancing algorithm to be used when determining
                    which backend server to forward new traffic to.
                  $ref: '#/components/schemas/scaleway.lb.v1.ForwardPortAlgorithm'
                sticky_sessions:
                  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.
                  $ref: '#/components/schemas/scaleway.lb.v1.StickySessionsType'
                sticky_sessions_cookie_name:
                  type: string
                  description: Cookie name for cookie-based sticky sessions.
                health_check:
                  description: Object defining the health check to be carried out
                    by the backend when checking the status and health of backend
                    servers.
                  $ref: '#/components/schemas/scaleway.lb.v1.HealthCheck'
                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:
                  description: Action to take when a backend server is marked as down.
                  $ref: '#/components/schemas/scaleway.lb.v1.OnMarkedDownAction'
                proxy_protocol:
                  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.
                  $ref: '#/components/schemas/scaleway.lb.v1.ProxyProtocol'
                failover_host:
                  type:
                  - string
                  - "null"
                  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.
                ssl_bridging:
                  type:
                  - boolean
                  - "null"
                  description: Defines whether to enable SSL bridging between the
                    Load Balancer and backend servers.
                ignore_ssl_server_verify:
                  type:
                  - boolean
                  - "null"
                  description: Defines whether the server certificate verification
                    should be ignored.
                redispatch_attempt_count:
                  type:
                  - integer
                  - "null"
                  description: Whether to use another backend server on each attempt.
                  format: int32
                max_retries:
                  type:
                  - integer
                  - "null"
                  description: Number of retries when a backend server connection
                    failed.
                  format: int32
                max_connections:
                  type:
                  - integer
                  - "null"
                  description: Maximum number of connections allowed per backend server.
                  format: int32
                timeout_queue:
                  type:
                  - string
                  - "null"
                  description: Maximum time for a request to be left pending in queue
                    when `max_connections` is reached. (in seconds)
                  example: 2.5s
              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": "",
              "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="" \
            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:
          $ref: '#/components/schemas/scaleway.lb.v1.ListCertificatesRequest.OrderBy'
      - 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:
                  description: Object to define a new Let's Encrypt certificate to
                    be generated.
                  x-one-of: type
                  oneOf:
                  - $ref: '#/components/schemas/scaleway.lb.v1.CreateCertificateRequest.LetsencryptConfig'
                  - type: "null"
                custom_certificate:
                  description: Object to define an existing custom certificate to
                    be imported.
                  x-one-of: type
                  oneOf:
                  - $ref: '#/components/schemas/scaleway.lb.v1.CreateCertificateRequest.CustomCertificate'
                  - type: "null"
              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:
          $ref: '#/components/schemas/scaleway.lb.v1.ListFrontendsRequest.OrderBy'
      - 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
                  - "null"
                  description: Certificate ID, deprecated in favor of certificate_ids
                    array.
                  deprecated: true
                certificate_ids:
                  type:
                  - array
                  - "null"
                  description: List of SSL/TLS certificate IDs to bind to the frontend.
                enable_http3:
                  type: boolean
                  description: Defines whether to enable HTTP/3 protocol on the frontend.
                connection_rate_limit:
                  type:
                  - integer
                  - "null"
                  description: Rate limit for new connections established on this
                    frontend. Use 0 value to disable, else value is connections per
                    second.
                  format: uint32
                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:
          $ref: '#/components/schemas/scaleway.lb.v1.ListPrivateNetworksRequest.OrderBy'
      - 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:
          $ref: '#/components/schemas/scaleway.lb.v1.ListRoutesRequest.OrderBy'
      - 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:
                  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.
                  $ref: '#/components/schemas/scaleway.lb.v1.Route.Match'
              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:
                  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.
                  $ref: '#/components/schemas/scaleway.lb.v1.Route.Match'
              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:
          $ref: '#/components/schemas/scaleway.lb.v1.ListSubscriberRequest.OrderBy'
      - 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:
                  description: Email address configuration.
                  x-one-of: config
                  oneOf:
                  - $ref: '#/components/schemas/scaleway.lb.v1.Subscriber.EmailConfig'
                  - type: "null"
                webhook_config:
                  description: WebHook URI configuration.
                  x-one-of: config
                  oneOf:
                  - $ref: '#/components/schemas/scaleway.lb.v1.Subscriber.WebhookConfig'
                  - type: "null"
                organization_id:
                  type:
                  - string
                  - "null"
                  description: Organization ID to create the subscriber in.
                  deprecated: true
                  x-one-of: ProjectIdentifier
                project_id:
                  type:
                  - string
                  - "null"
                  description: Project ID to create the subscriber in.
                  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:
                  description: Email address configuration.
                  x-one-of: config
                  oneOf:
                  - $ref: '#/components/schemas/scaleway.lb.v1.Subscriber.EmailConfig'
                  - type: "null"
                webhook_config:
                  description: Webhook URI configuration.
                  x-one-of: config
                  oneOf:
                  - $ref: '#/components/schemas/scaleway.lb.v1.Subscriber.WebhookConfig'
                  - type: "null"
              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"
