> ## Documentation Index
> Fetch the complete documentation index at: https://gcore.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Create load balancer



## OpenAPI

````yaml /api-reference/services_documented/cloud_api.yaml post /cloud/v1/loadbalancers/{project_id}/{region_id}
openapi: 3.1.0
info:
  title: Gcore OpenAPI – Cloud API
  description: >-
    This OpenAPI is an aggregated OpenAPI specification that unifies all Gcore
    products into a single file. It covers Cloud, CDN, DNS, WAAP, DDoS
    Protection, Object Storage, Streaming, and FastEdge services.
  version: '2026-05-14T07:00:22.640261+00:00'
servers:
  - url: https://api.gcore.com
security:
  - APIKey: []
tags:
  - name: Bare Metal
    x-displayName: Bare Metal
  - name: Container as a Service
    x-displayName: Container as a Service
  - name: Cost Reports
    x-displayName: Cost Reports
  - name: DDoS Protection
    x-displayName: DDoS Protection
  - name: Everywhere Inference
    x-displayName: Everywhere Inference
  - name: Everywhere Inference Apps
    x-displayName: Everywhere Inference Apps
  - name: File Shares
    x-displayName: File Shares
  - name: Floating IPs
    x-displayName: Floating IPs
  - name: Function as a Service
    x-displayName: Function as a Service
  - name: GPU Bare Metal
    x-displayName: GPU Bare Metal
  - name: GPU Virtual
    x-displayName: GPU Virtual
  - name: IP Ranges
    x-displayName: IP Ranges
  - name: Images
    x-displayName: Images
  - name: Instances
    x-displayName: Instances
  - name: Load Balancers
    x-displayName: Load Balancers
  - name: Logging
    x-displayName: Logging
  - name: Managed Kubernetes
    x-displayName: Managed Kubernetes
  - name: Managed PostgreSQL
    x-displayName: Managed PostgreSQL
  - name: Networks
    x-displayName: Networks
  - name: Placement Groups
    x-displayName: Placement Groups
  - name: Projects
    x-displayName: Projects
  - name: Quotas
    x-displayName: Quotas
  - name: Regions
    x-displayName: Regions
  - name: Registry
    x-displayName: Registry
  - name: Reservations
    x-displayName: Reservations
  - name: Reserved IPs
    x-displayName: Reserved IPs
  - name: Routers
    x-displayName: Routers
  - name: SSH Keys
    x-displayName: SSH Keys
  - name: Secrets
    x-displayName: Secrets
  - name: Security Groups
    x-displayName: Security Groups
  - name: Snapshot Schedules
    x-displayName: Snapshot Schedules
  - name: Snapshots
    x-displayName: Snapshots
  - name: Tasks
    x-displayName: Tasks
  - name: User Actions
    x-displayName: User Actions
  - name: User Role Assignments
    x-displayName: User Role Assignments
  - name: Volumes
    x-displayName: Volumes
paths:
  /cloud/v1/loadbalancers/{project_id}/{region_id}:
    post:
      tags:
        - Load Balancers
      summary: Create load balancer
      operationId: LoadBalancerViewSet.post
      parameters:
        - in: path
          name: project_id
          required: true
          description: Project ID
          schema:
            description: Project ID
            example: 1
            examples:
              - 1
            title: Project Id
            type: integer
        - in: path
          name: region_id
          required: true
          description: Region ID
          schema:
            description: Region ID
            example: 7
            examples:
              - 7
            title: Region Id
            type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateLoadbalancerSerializer'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskIDsSerializer'
      x-codeSamples:
        - lang: Python
          source: |-
            import os
            from gcore import Gcore

            client = Gcore(
                api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
            )
            task_id_list = client.cloud.load_balancers.create(
                project_id=1,
                region_id=7,
                name="new_load_balancer",
            )
            print(task_id_list.tasks)
        - lang: Go
          source: "package main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/G-Core/gcore-go\"\n\t\"github.com/G-Core/gcore-go/cloud\"\n\t\"github.com/G-Core/gcore-go/option\"\n)\n\nfunc main() {\n\tclient := gcore.NewClient(\n\t\toption.WithAPIKey(\"My API Key\"),\n\t)\n\ttaskIDList, err := client.Cloud.LoadBalancers.New(context.TODO(), cloud.LoadBalancerNewParams{\n\t\tProjectID: gcore.Int(1),\n\t\tRegionID:  gcore.Int(7),\n\t\tName:      \"new_load_balancer\",\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf(\"%+v\\n\", taskIDList.Tasks)\n}\n"
components:
  schemas:
    CreateLoadbalancerSerializer:
      properties:
        flavor:
          description: Load balancer flavor name
          example: lb1-1-2
          examples:
            - lb1-1-2
            - lb2-2-2
          title: Flavor
          type: string
        floating_ip:
          description: Floating IP configuration for assignment
          discriminator:
            mapping:
              existing:
                $ref: >-
                  #/components/schemas/ExistingInstanceFloatingIpInterfaceSerializer
              new:
                $ref: '#/components/schemas/NewInstanceFloatingIpInterfaceSerializer'
            propertyName: source
          examples:
            - existing_floating_id: c64e5db1-5f1f-43ec-a8d9-5090df85b82d
              source: existing
          oneOf:
            - $ref: '#/components/schemas/NewInstanceFloatingIpInterfaceSerializer'
            - $ref: >-
                #/components/schemas/ExistingInstanceFloatingIpInterfaceSerializer
          title: Floating Ip
        listeners:
          description: >-
            Load balancer listeners. Maximum 50 per LB (excluding Prometheus
            endpoint listener).
          items:
            $ref: '#/components/schemas/CreateListenerSerializer'
          maxItems: 51
          title: Listeners
          type: array
        logging:
          $ref: '#/components/schemas/LoadbalancerLoggingSerializer'
          description: Logging configuration
        name:
          description: Load balancer name.
          example: new_load_balancer
          examples:
            - new_load_balancer
          pattern: ^[a-zA-Z0-9][a-zA-Z 0-9._\-]{1,61}[a-zA-Z0-9._]$
          title: Name
          type: string
        preferred_connectivity:
          $ref: '#/components/schemas/MemberConnectivity'
          default: L2
          description: >-
            Preferred option to establish connectivity between load balancer and
            its pools members. L2 provides best performance, L3 provides less
            IPs usage. It is taking effect only if `instance_id` + `ip_address`
            is provided, not `subnet_id` + `ip_address`, because we're
            considering this as intentional `subnet_id` specification.
          examples:
            - L2
            - L3
          x-stainless-terraform-configurability: computed_optional
        tags:
          $ref: '#/components/schemas/CreateTagsSerializer'
          description: >-
            Key-value tags to associate with the resource. A tag is a key-value
            pair that can be associated with a resource, enabling efficient
            filtering and grouping for better organization and management. Both
            tag keys and values have a maximum length of 255 characters. Some
            tags are read-only and cannot be modified by the user. Tags are also
            integrated with cost reports, allowing cost data to be filtered
            based on tag keys or values.
          examples:
            - my-tag: my-tag-value
          x-stainless-terraform-configurability: computed_optional
        vip_ip_family:
          $ref: '#/components/schemas/InterfaceIPFamily'
          description: >-
            IP family for load balancer subnet auto-selection if
            `vip_network_id` is specified
          examples:
            - ipv4
          x-stainless-terraform-configurability: computed_optional
        vip_network_id:
          description: >-
            Network ID for load balancer. If not specified, default external
            network will be used. Mutually exclusive with `vip_port_id`
          example: ac307687-31a4-4a11-a949-6bea1b2878f5
          examples:
            - ac307687-31a4-4a11-a949-6bea1b2878f5
          format: uuid4
          title: Vip Network Id
          type: string
        vip_port_id:
          description: >-
            Existing Reserved Fixed IP port ID for load balancer. Mutually
            exclusive with `vip_network_id`
          example: ff83e13a-b256-4be2-ba5d-028d3f0ab450
          examples:
            - ff83e13a-b256-4be2-ba5d-028d3f0ab450
          format: uuid4
          title: Vip Port Id
          type: string
          x-stainless-terraform-configurability: computed_optional
        vip_subnet_id:
          description: >-
            Subnet ID for load balancer. If not specified, any subnet from
            `vip_network_id` will be selected. Ignored when `vip_network_id` is
            not specified.
          example: 4e7802d3-5023-44b8-b298-7726558fddf4
          examples:
            - 4e7802d3-5023-44b8-b298-7726558fddf4
          format: uuid4
          title: Vip Subnet Id
          type: string
      required:
        - name
      title: CreateLoadbalancerSerializer
      type: object
    TaskIDsSerializer:
      properties:
        tasks:
          description: >-
            List of task IDs representing asynchronous operations. Use these IDs
            to monitor operation progress:

            - `GET /v1/tasks/{task_id}` - Check individual task status and
            details

            Poll task status until completion (`FINISHED`/`ERROR`) before
            proceeding with dependent operations.
          example:
            - d478ae29-dedc-4869-82f0-96104425f565
          examples:
            - - d478ae29-dedc-4869-82f0-96104425f565
          items:
            type: string
          title: Tasks
          type: array
      required:
        - tasks
      title: TaskIDsSerializer
      type: object
    ExistingInstanceFloatingIpInterfaceSerializer:
      properties:
        existing_floating_id:
          description: >-
            An existing available floating IP id must be specified if the source
            is set to `existing`
          example: e3c6ee77-48cb-416b-b204-11b492cc776e3
          examples:
            - e3c6ee77-48cb-416b-b204-11b492cc776e3
          format: uuid4
          title: Existing Floating Id
          type: string
        source:
          const: existing
          description: >-
            An existing available floating IP will be attached to the instance.
            A floating IP is a public IP that makes the instance accessible from
            the internet, even if it only has a private IP. It works like SNAT,
            allowing outgoing and incoming traffic.
          example: existing
          examples:
            - existing
          title: Source
          type: string
      required:
        - source
        - existing_floating_id
      title: Existing floating IP
      type: object
    NewInstanceFloatingIpInterfaceSerializer:
      properties:
        source:
          const: new
          description: >-
            A new floating IP will be created and attached to the instance. A
            floating IP is a public IP that makes the instance accessible from
            the internet, even if it only has a private IP. It works like SNAT,
            allowing outgoing and incoming traffic.
          example: new
          examples:
            - new
          title: Source
          type: string
      required:
        - source
      title: New floating IP
      type: object
    CreateListenerSerializer:
      properties:
        allowed_cidrs:
          anyOf:
            - items:
                format: ipvanynetwork
                type: string
              maxItems: 100
              type: array
            - type: 'null'
          description: Network CIDRs from which service will be accessible
          examples:
            - - 10.0.0.0/8
          title: Allowed Cidrs
        connection_limit:
          default: 100000
          description: >-
            Limit of the simultaneous connections. If -1 is provided, it is
            translated to the default value 100000.
          example: 100000
          examples:
            - 100000
          maximum: 1000000
          minimum: -1
          title: Connection Limit
          type: integer
        insert_x_forwarded:
          description: >-
            Add headers X-Forwarded-For, X-Forwarded-Port, X-Forwarded-Proto to
            requests. Only used with HTTP or `TERMINATED_HTTPS` protocols.
          example: false
          examples:
            - false
          title: Insert X Forwarded
          type: boolean
        name:
          description: Load balancer listener name
          example: my_listener
          examples:
            - my_listener
          pattern: ^[a-zA-Z0-9][a-zA-Z 0-9._\-]{1,61}[a-zA-Z0-9._]$
          title: Name
          type: string
        pools:
          description: Member pools
          items:
            $ref: '#/components/schemas/BaseCreateLbPoolSerializer'
          maxItems: 1
          title: Pools
          type: array
        protocol:
          $ref: '#/components/schemas/LbListenerProtocolEnum'
          description: Load balancer listener protocol
          examples:
            - HTTP
        protocol_port:
          description: Protocol port
          example: 80
          examples:
            - 80
          maximum: 65535
          minimum: 1
          title: Protocol Port
          type: integer
        secret_id:
          anyOf:
            - const: ''
              type: string
            - format: uuid4
              type: string
          description: >-
            ID of the secret where PKCS12 file is stored for `TERMINATED_HTTPS`
            or PROMETHEUS listener
          examples:
            - f2e734d0-fa2b-42c2-ad33-4c6db5101e00
          title: Secret Id
        sni_secret_id:
          description: >-
            List of secrets IDs containing PKCS12 format certificate/key bundles
            for `TERMINATED_HTTPS` or PROMETHEUS listeners
          example:
            - f2e734d0-fa2b-42c2-ad33-4c6db5101e00
            - eb121225-7ded-4ff3-ae1f-599e145dd7cb
          examples:
            - - f2e734d0-fa2b-42c2-ad33-4c6db5101e00
              - eb121225-7ded-4ff3-ae1f-599e145dd7cb
          items:
            format: uuid4
            type: string
          title: Sni Secret Id
          type: array
        timeout_client_data:
          anyOf:
            - maximum: 86400000
              minimum: 0
              type: integer
            - type: 'null'
          description: Frontend client inactivity timeout in milliseconds
          examples:
            - 50000
          title: Timeout Client Data
        timeout_member_connect:
          anyOf:
            - maximum: 86400000
              minimum: 0
              type: integer
            - type: 'null'
          deprecated: true
          description: >-
            Backend member connection timeout in milliseconds. We are
            recommending to use `pool.timeout_member_connect` instead.
          examples:
            - 50000
          title: Timeout Member Connect
        timeout_member_data:
          anyOf:
            - maximum: 86400000
              minimum: 0
              type: integer
            - type: 'null'
          deprecated: true
          description: >-
            Backend member inactivity timeout in milliseconds. We are
            recommending to use `pool.timeout_member_data` instead.
          examples:
            - null
          title: Timeout Member Data
        user_list:
          description: Load balancer listener list of username and encrypted password items
          example:
            - encrypted_password: $5$isRr.HJ1IrQP38.m$oViu3DJOpUG2ZsjCBtbITV3mqpxxbZfyWJojLPNSPO5
              username: admin
          examples:
            - - encrypted_password: >-
                  $5$isRr.HJ1IrQP38.m$oViu3DJOpUG2ZsjCBtbITV3mqpxxbZfyWJojLPNSPO5
                username: admin
          items:
            $ref: '#/components/schemas/UserListItem'
          maxItems: 3
          title: User List
          type: array
      required:
        - name
        - protocol
        - protocol_port
      title: CreateListenerSerializer
      type: object
    LoadbalancerLoggingSerializer:
      properties:
        destination_region_id:
          anyOf:
            - type: integer
            - type: 'null'
          default: null
          description: Destination region id to which the logs will be written
          examples:
            - 1
          title: Destination Region Id
        enabled:
          default: false
          description: Enable/disable forwarding logs to LaaS
          example: true
          examples:
            - true
            - false
          title: Enabled
          type: boolean
        retention_policy:
          anyOf:
            - $ref: '#/components/schemas/LaasIndexRetentionPolicyPydanticSerializer'
            - type: 'null'
          default: null
          description: The logs retention policy
          examples:
            - period: 45
        topic_name:
          anyOf:
            - maxLength: 223
              minLength: 1
              pattern: >-
                ^[a-z0-9](?:[-a-z0-9]*[a-z0-9])?(?:\.[a-z0-9](?:[-a-z0-9]*[a-z0-9])*)*$
              type: string
            - type: 'null'
          default: null
          description: The topic name to which the logs will be written
          examples:
            - my-log-name
          title: Topic Name
      title: LoadbalancerLoggingSerializer
      type: object
    MemberConnectivity:
      enum:
        - L2
        - L3
      title: MemberConnectivity
      type: string
    CreateTagsSerializer:
      description: >-
        A tag is a key-value pair that can be associated with a resource,

        enabling efficient filtering and grouping for better organization and
        management.

        Some tags are read-only and cannot be modified by the user.

        Tags are also integrated with cost reports, allowing cost data to be
        filtered based on tag keys or values.
      patternProperties:
        ^[^\s=]+$:
          description: >-
            Tag value. Maximum 255 characters. Cannot contain tabs, newlines,
            empty string or start/end with whitespace.
          example: my-tag-value
          examples:
            - my-tag-value
          maxLength: 255
          minLength: 1
          pattern: ^[^ \t\n\r\f\v]([^\t\n\r\f\v]*[^ \t\n\r\f\v])?$
          type: string
      propertyNames:
        description: >-
          Tag key. Maximum 255 characters. Cannot contain spaces, tabs,
          newlines, empty string or '=' character.
        examples:
          - my-tag
        maxLength: 255
        minLength: 1
      title: CreateTagsSerializer
      type: object
    InterfaceIPFamily:
      enum:
        - dual
        - ipv4
        - ipv6
      title: InterfaceIPFamily
      type: string
    BaseCreateLbPoolSerializer:
      properties:
        ca_secret_id:
          anyOf:
            - format: uuid4
              type: string
            - type: 'null'
          description: Secret ID of CA certificate bundle
          title: Ca Secret Id
        crl_secret_id:
          anyOf:
            - format: uuid4
              type: string
            - type: 'null'
          description: Secret ID of CA revocation list file
          title: Crl Secret Id
        healthmonitor:
          anyOf:
            - $ref: '#/components/schemas/CreateLbHealthMonitorSerializer'
            - type: 'null'
          default: null
          description: Health monitor details
          examples:
            - delay: 10
              domain_name: example.com
              http_method: GET
              http_version: '1.1'
              max_retries: 3
              max_retries_down: 3
              timeout: 5
              type: HTTP
              url_path: /
        lb_algorithm:
          $ref: '#/components/schemas/LbAlgorithmEnum'
          description: Load balancer algorithm
          examples:
            - ROUND_ROBIN
        members:
          description: Pool members
          example:
            - address: 192.168.1.101
              instance_id: a7e7e8d6-0bf7-4ac9-8170-831b47ee2ba9
              protocol_port: 8000
              weight: 2
            - address: 192.168.1.102
              instance_id: 169942e0-9b53-42df-95ef-1a8b6525c2bd
              protocol_port: 8000
              weight: 4
          examples:
            - - address: 192.168.1.101
                instance_id: a7e7e8d6-0bf7-4ac9-8170-831b47ee2ba9
                protocol_port: 8000
                weight: 2
              - address: 192.168.1.102
                instance_id: 169942e0-9b53-42df-95ef-1a8b6525c2bd
                protocol_port: 8000
                weight: 4
          items:
            $ref: '#/components/schemas/CreateLbPoolMemberSerializer'
          title: Members
          type: array
        name:
          description: Pool name
          example: pool_name
          examples:
            - pool_name
          pattern: ^[a-zA-Z0-9][a-zA-Z 0-9._\-]{1,61}[a-zA-Z0-9._]$
          title: Name
          type: string
        protocol:
          $ref: '#/components/schemas/LbPoolProtocolEnum'
          description: Protocol
          examples:
            - HTTP
        secret_id:
          anyOf:
            - format: uuid4
              type: string
            - type: 'null'
          description: Secret ID for TLS client authentication to the member servers
          title: Secret Id
        session_persistence:
          anyOf:
            - $ref: '#/components/schemas/MutateLbSessionPersistence'
            - type: 'null'
          default: null
          description: Session persistence details
          examples:
            - cookie_name: cookie_name
              type: APP_COOKIE
        timeout_client_data:
          anyOf:
            - maximum: 86400000
              minimum: 0
              type: integer
            - type: 'null'
          default: null
          deprecated: true
          description: >-
            Frontend client inactivity timeout in milliseconds. We are
            recommending to use `listener.timeout_client_data` instead.
          examples:
            - 50000
          title: Timeout Client Data
        timeout_member_connect:
          anyOf:
            - maximum: 86400000
              minimum: 0
              type: integer
            - type: 'null'
          default: null
          description: Backend member connection timeout in milliseconds
          examples:
            - 50000
          title: Timeout Member Connect
        timeout_member_data:
          anyOf:
            - maximum: 86400000
              minimum: 0
              type: integer
            - type: 'null'
          default: null
          description: Backend member inactivity timeout in milliseconds
          title: Timeout Member Data
      required:
        - name
        - lb_algorithm
        - protocol
      title: BaseCreateLbPoolSerializer
      type: object
    LbListenerProtocolEnum:
      enum:
        - HTTP
        - HTTPS
        - PROMETHEUS
        - TCP
        - TERMINATED_HTTPS
        - UDP
      title: LbListenerProtocolEnum
      type: string
    UserListItem:
      properties:
        encrypted_password:
          description: Encrypted password to auth via Basic Authentication
          example: $5$isRr.HJ1IrQP38.m$oViu3DJOpUG2ZsjCBtbITV3mqpxxbZfyWJojLPNSPO5
          examples:
            - $5$isRr.HJ1IrQP38.m$oViu3DJOpUG2ZsjCBtbITV3mqpxxbZfyWJojLPNSPO5
          maxLength: 128
          title: Encrypted Password
          type: string
        username:
          description: Username to auth via Basic Authentication
          example: admin
          examples:
            - admin
          maxLength: 32
          pattern: ^[a-zA-Z0-9][a-zA-Z 0-9._\-]{1,30}[a-zA-Z0-9._]$
          title: Username
          type: string
      required:
        - username
        - encrypted_password
      title: UserListItem
      type: object
    LaasIndexRetentionPolicyPydanticSerializer:
      properties:
        period:
          anyOf:
            - exclusiveMinimum: 0
              maximum: 1825
              type: integer
            - type: 'null'
          description: Duration of days for which logs must be kept.
          examples:
            - 45
          title: Period
      required:
        - period
      title: LaasIndexRetentionPolicyPydanticSerializer
      type: object
    CreateLbHealthMonitorSerializer:
      properties:
        admin_state_up:
          description: >-
            Administrative state of the resource. When set to true, the resource
            is enabled and operational. When set to false, the resource is
            disabled and will not process traffic. Defaults to true.
          example: true
          examples:
            - true
            - false
          title: Admin State Up
          type: boolean
        delay:
          description: The time, in seconds, between sending probes to members
          example: 10
          examples:
            - 10
          maximum: 2147483647
          minimum: 1
          title: Delay
          type: integer
        domain_name:
          anyOf:
            - pattern: ^[A-Za-z0-9._-]{1,253}$
              type: string
            - type: 'null'
          description: >-
            Domain name for HTTP host header. Can only be used together with
            `HTTP` or `HTTPS` health monitor type.
          examples:
            - example.com
          title: Domain Name
        expected_codes:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          description: >-
            Expected HTTP response codes. Can be a single code or a range of
            codes. Can only be used together with `HTTP` or `HTTPS` health
            monitor type. For example, 200,202,300-302,401,403,404,500-504. If
            not specified, the default is 200.
          examples:
            - 200,301,302
          title: Expected Codes
        http_method:
          anyOf:
            - $ref: '#/components/schemas/HttpMethodEnum'
            - type: 'null'
          default: null
          description: >-
            HTTP method. Can only be used together with `HTTP` or `HTTPS` health
            monitor type.
          examples:
            - CONNECT
            - DELETE
            - GET
            - HEAD
            - OPTIONS
            - PATCH
            - POST
            - PUT
            - TRACE
        http_version:
          anyOf:
            - enum:
                - '1.0'
                - '1.1'
              type: string
            - type: 'null'
          description: >-
            HTTP version. Can only be used together with `HTTP` or `HTTPS`
            health monitor type. Supported values: 1.0, 1.1.
          examples:
            - '1.1'
            - '1.0'
          title: Http Version
        max_retries:
          description: Number of successes before the member is switched to ONLINE state
          example: 2
          examples:
            - 2
          maximum: 10
          minimum: 1
          title: Max Retries
          type: integer
        max_retries_down:
          description: Number of failures before the member is switched to ERROR state.
          example: 2
          examples:
            - 2
          maximum: 10
          minimum: 1
          title: Max Retries Down
          type: integer
        timeout:
          description: The maximum time to connect. Must be less than the delay value
          example: 5
          examples:
            - 5
          maximum: 2147483
          title: Timeout
          type: integer
        type:
          $ref: '#/components/schemas/HealthMonitorTypeEnum'
          description: >-
            Health monitor type. Once health monitor is created, cannot be
            changed.
          examples:
            - HTTP
            - HTTPS
            - PING
            - TCP
            - TLS_HELLO
            - UDP_CONNECT
            - K8S
        url_path:
          anyOf:
            - pattern: ^/([^/?#%][^?#%]*)?$
              type: string
            - type: 'null'
          default: null
          description: >-
            The HTTP path the health monitor requests on each member. Defaults
            to `/` if not set. Can only be used with `HTTP` or `HTTPS` health
            monitor type.


            Must start with `/` and contain only plain path segments. Query
            strings (`?`), fragments (`#`), percent-encoding (`%`), and
            consecutive slashes (`//`) are not allowed.


            Examples of valid paths:

            - `/` — check the root (most common, default)

            - `/healthz` — a dedicated health endpoint
          examples:
            - /
            - /healthz
          title: Url Path
      required:
        - delay
        - max_retries
        - timeout
        - type
      title: CreateLbHealthMonitorSerializer
      type: object
    LbAlgorithmEnum:
      enum:
        - LEAST_CONNECTIONS
        - ROUND_ROBIN
        - SOURCE_IP
      title: LbAlgorithmEnum
      type: string
    CreateLbPoolMemberSerializer:
      properties:
        address:
          description: Member IP address
          example: 192.168.40.33
          examples:
            - 192.168.40.33
          format: ipvanyaddress
          title: Address
          type: string
        admin_state_up:
          default: true
          description: >-
            Administrative state of the resource. When set to true, the resource
            is enabled and operational. When set to false, the resource is
            disabled and will not process traffic. Defaults to true.
          example: true
          examples:
            - true
          title: Admin State Up
          type: boolean
        backup:
          default: false
          description: >-
            Set to true if the member is a backup member, to which traffic will
            be sent exclusively when all non-backup members will be unreachable.
            It allows to realize ACTIVE-BACKUP load balancing without thinking
            about VRRP and VIP configuration. Default is false.
          example: true
          examples:
            - true
            - false
          title: Backup
          type: boolean
        instance_id:
          anyOf:
            - format: uuid4
              type: string
            - type: 'null'
          default: null
          description: Either `subnet_id` or `instance_id` should be provided
          examples:
            - a7e7e8d6-0bf7-4ac9-8170-831b47ee2ba9
          title: Instance Id
        monitor_address:
          anyOf:
            - format: ipvanyaddress
              type: string
            - type: 'null'
          default: null
          description: >-
            An alternate IP address used for health monitoring of a backend
            member. Default is null which monitors the member address.
          title: Monitor Address
        monitor_port:
          anyOf:
            - maximum: 65535
              minimum: 1
              type: integer
            - type: 'null'
          default: null
          description: >-
            An alternate protocol port used for health monitoring of a backend
            member. Default is null which monitors the member `protocol_port`.
          title: Monitor Port
        protocol_port:
          description: Member IP port
          example: 80
          examples:
            - 80
          maximum: 65535
          minimum: 1
          title: Protocol Port
          type: integer
        subnet_id:
          anyOf:
            - format: uuid4
              type: string
            - type: 'null'
          default: null
          description: >-
            `subnet_id` in which `address` is present. Either `subnet_id` or
            `instance_id` should be provided
          examples:
            - 32283b0b-b560-4690-810c-f672cbb2e28d
          title: Subnet Id
        weight:
          description: >-
            Member weight. Valid values are 0 < `weight` <= 256, defaults to 1.
            Controls traffic distribution based on the pool's load balancing
            algorithm:

            - `ROUND_ROBIN`: Distributes connections to each member in turn
            according to weights. Higher weight = more turns in the cycle.
            Example: weights 3 vs 1 = ~75% vs ~25% of requests.

            - `LEAST_CONNECTIONS`: Sends new connections to the member with
            fewest active connections, performing round-robin within groups of
            the same normalized load. Higher weight = allowed to hold more
            simultaneous connections before being considered 'more loaded'.
            Example: weights 2 vs 1 means 20 vs 10 active connections is treated
            as balanced.

            - `SOURCE_IP`: Routes clients consistently to the same member by
            hashing client source IP; hash result is modulo total weight of
            running members. Higher weight = more hash buckets, so more client
            IPs map to that member. Example: weights 2 vs 1 = roughly two-thirds
            of distinct client IPs map to the higher-weight member.
          example: 1
          examples:
            - 1
          exclusiveMinimum: 0
          maximum: 256
          title: Weight
          type: integer
      required:
        - protocol_port
        - address
      title: CreateLbPoolMemberSerializer
      type: object
    LbPoolProtocolEnum:
      enum:
        - HTTP
        - HTTPS
        - PROXY
        - PROXYV2
        - TCP
        - UDP
      title: LbPoolProtocolEnum
      type: string
    MutateLbSessionPersistence:
      properties:
        cookie_name:
          anyOf:
            - pattern: ^[a-zA-Z0-9][a-zA-Z 0-9._\-]{1,61}[a-zA-Z0-9._]$
              type: string
            - type: 'null'
          default: null
          description: Should be set if app cookie or http cookie is used
          examples:
            - cookie_name
          title: Cookie Name
        persistence_granularity:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          description: Subnet mask if `source_ip` is used. For UDP ports only
          title: Persistence Granularity
        persistence_timeout:
          anyOf:
            - type: integer
            - type: 'null'
          default: null
          description: Session persistence timeout. For UDP ports only
          title: Persistence Timeout
        type:
          $ref: '#/components/schemas/SessionPersistenceTypeEnum'
          description: Session persistence type
          examples:
            - APP_COOKIE
      required:
        - type
      title: MutateLbSessionPersistence
      type: object
    HttpMethodEnum:
      enum:
        - CONNECT
        - DELETE
        - GET
        - HEAD
        - OPTIONS
        - PATCH
        - POST
        - PUT
        - TRACE
      title: HttpMethodEnum
      type: string
    HealthMonitorTypeEnum:
      enum:
        - HTTP
        - HTTPS
        - K8S
        - PING
        - TCP
        - TLS-HELLO
        - UDP-CONNECT
      title: HealthMonitorTypeEnum
      type: string
    SessionPersistenceTypeEnum:
      enum:
        - APP_COOKIE
        - HTTP_COOKIE
        - SOURCE_IP
      title: SessionPersistenceTypeEnum
      type: string
  securitySchemes:
    APIKey:
      description: >-
        API key for authentication. Make sure to include the word `apikey`,
        followed by a single space and then your token.

        Example: `apikey 1234$abcdef`
      type: apiKey
      in: header
      name: Authorization

````