Yandex Cloud
  • Services
  • Solutions
  • Why Yandex Cloud
  • Blog
  • Pricing
  • Documentation
  • Contact us
Get started
Language / Region
Yandex project
© 2023 Yandex.Cloud LLC
Yandex Application Load Balancer
  • Getting started
  • Step-by-step instructions
    • All instructions
    • Target groups
      • Create a target group
      • Edit a target group
      • Delete a target group
    • Backend groups
      • Create a backend group
      • Edit a backend group
      • Delete a backend group
    • HTTP routers
      • Create HTTP router for HTTP traffic
      • Create HTTP router for gRPC traffic
      • Edit an HTTP router
      • Delete an HTTP router
    • L7 load balancers
      • Create an L7 load balancer
      • Edit an L7 load balancer
      • View L7 load balancer statistics
      • View the L7 load balancer logs
      • Get the ID of the log group of the L7 load balancer
      • Stopping and restarting an L7 load balancer
      • Delete an L7 load balancer
    • Tools for Managed Service for Kubernetes
      • Install an Ingress controller
      • Install a Gateway API
      • Create or update resources based on configuration
  • Practical guidelines
    • All practical guidelines
    • Setting up a virtual hosting
    • Creating a load balancer with DDoS protection
    • Integrating an L7 load balancer with the CDN and Object Storage
    • Blue-green and canary deployment of service versions
    • Terminating TLS connections
    • Writing load balancer logs to PostgreSQL
    • Deploying and load testing a gRPC service with scaling
  • Concepts
    • Overview
    • Load balancers
    • HTTP routers
    • Backend groups
    • Target groups
    • Quotas and limits
  • Tools for Managed Service for Kubernetes
    • Ingress controller
      • Overview
      • How it works
    • Gateway API
    • Required settings
      • Security groups
      • Service accounts
  • Access management
  • Pricing policy
  • API reference
    • Authentication in the API
    • gRPC
      • Overview
      • BackendGroupService
      • HttpRouterService
      • LoadBalancerService
      • TargetGroupService
      • VirtualHostService
      • OperationService
    • REST
      • Overview
      • BackendGroup
        • Overview
        • addBackend
        • create
        • delete
        • get
        • list
        • listOperations
        • removeBackend
        • update
        • updateBackend
      • HttpRouter
        • Overview
        • create
        • delete
        • get
        • list
        • listOperations
        • update
      • LoadBalancer
        • Overview
        • addListener
        • addSniMatch
        • create
        • delete
        • get
        • getTargetStates
        • list
        • listOperations
        • removeListener
        • removeSniMatch
        • start
        • stop
        • update
        • updateListener
        • updateSniMatch
      • TargetGroup
        • Overview
        • addTargets
        • create
        • delete
        • get
        • list
        • listOperations
        • removeTargets
        • update
      • VirtualHost
        • Overview
        • create
        • delete
        • get
        • list
        • removeRoute
        • update
        • updateRoute
  • Managed Service for Kubernetes tool references
    • Overview
    • Ingress controller
      • Ingress
      • HttpBackendGroup
    • Gateway API
      • Gateway
      • HTTPRoute
    • Service
  • Log reference
  1. API reference
  2. REST
  3. LoadBalancer
  4. addListener

Application Load Balancer API, REST: LoadBalancer.addListener

Written by
Yandex Cloud
  • HTTP request
  • Path parameters
  • Body parameters
  • Response

Adds a listener to the specified application load balancer.

HTTP request

POST https://alb.api.cloud.yandex.net/apploadbalancer/v1/loadBalancers/{loadBalancerId}:addListener

Path parameters

Parameter Description
loadBalancerId

Required. ID of the application load balancer to add a listener to.

Body parameters

{
  "listenerSpec": {
    "name": "string",
    "endpointSpecs": [
      {
        "addressSpecs": [
          {

            // `listenerSpec.endpointSpecs[].addressSpecs[]` includes only one of the fields `externalIpv4AddressSpec`, `internalIpv4AddressSpec`, `externalIpv6AddressSpec`
            "externalIpv4AddressSpec": {
              "address": "string"
            },
            "internalIpv4AddressSpec": {
              "address": "string",
              "subnetId": "string"
            },
            "externalIpv6AddressSpec": {
              "address": "string"
            },
            // end of the list of possible fields`listenerSpec.endpointSpecs[].addressSpecs[]`

          }
        ],
        "ports": [
          "string"
        ]
      }
    ],

    // `listenerSpec` includes only one of the fields `http`, `tls`, `stream`
    "http": {
      "handler": {
        "httpRouterId": "string",

        // `listenerSpec.http.handler` includes only one of the fields `http2Options`, `allowHttp10`
        "http2Options": {
          "maxConcurrentStreams": "string"
        },
        "allowHttp10": true,
        // end of the list of possible fields`listenerSpec.http.handler`

      },
      "redirects": {
        "httpToHttps": true
      }
    },
    "tls": {
      "defaultHandler": {
        "certificateIds": [
          "string"
        ],

        // `listenerSpec.tls.defaultHandler` includes only one of the fields `httpHandler`, `streamHandler`
        "httpHandler": {
          "httpRouterId": "string",

          // `listenerSpec.tls.defaultHandler.httpHandler` includes only one of the fields `http2Options`, `allowHttp10`
          "http2Options": {
            "maxConcurrentStreams": "string"
          },
          "allowHttp10": true,
          // end of the list of possible fields`listenerSpec.tls.defaultHandler.httpHandler`

        },
        "streamHandler": {
          "backendGroupId": "string"
        },
        // end of the list of possible fields`listenerSpec.tls.defaultHandler`

      },
      "sniHandlers": [
        {
          "name": "string",
          "serverNames": [
            "string"
          ],
          "handler": {
            "certificateIds": [
              "string"
            ],

            // `listenerSpec.tls.sniHandlers[].handler` includes only one of the fields `httpHandler`, `streamHandler`
            "httpHandler": {
              "httpRouterId": "string",

              // `listenerSpec.tls.sniHandlers[].handler.httpHandler` includes only one of the fields `http2Options`, `allowHttp10`
              "http2Options": {
                "maxConcurrentStreams": "string"
              },
              "allowHttp10": true,
              // end of the list of possible fields`listenerSpec.tls.sniHandlers[].handler.httpHandler`

            },
            "streamHandler": {
              "backendGroupId": "string"
            },
            // end of the list of possible fields`listenerSpec.tls.sniHandlers[].handler`

          }
        }
      ]
    },
    "stream": {
      "handler": {
        "backendGroupId": "string"
      }
    },
    // end of the list of possible fields`listenerSpec`

  }
}
Field Description
listenerSpec object

Required. Listener to add to the application load balancer.

listenerSpec.
name
string

Required. Name of the listener. The name is unique within the application load balancer.

Value must match the regular expression [a-z]([-a-z0-9]{0,61}[a-z0-9])?.

listenerSpec.
endpointSpecs[]
object

Required. Endpoints of the listener.

Endpoints are defined by their IP addresses and ports.

Must contain at least one element.

listenerSpec.
endpointSpecs[].
addressSpecs[]
object

Required. Endpoint public (external) and internal addresses.

Must contain at least one element.

listenerSpec.
endpointSpecs[].
addressSpecs[].
externalIpv4AddressSpec
object
Public IPv4 endpoint address.
listenerSpec.endpointSpecs[].addressSpecs[] includes only one of the fields externalIpv4AddressSpec, internalIpv4AddressSpec, externalIpv6AddressSpec
listenerSpec.
endpointSpecs[].
addressSpecs[].
externalIpv4AddressSpec.
address
string

IPv4 address.

listenerSpec.
endpointSpecs[].
addressSpecs[].
internalIpv4AddressSpec
object
Internal IPv4 endpoint address. To enable the use of listeners with internal addresses, contact support.
listenerSpec.endpointSpecs[].addressSpecs[] includes only one of the fields externalIpv4AddressSpec, internalIpv4AddressSpec, externalIpv6AddressSpec
listenerSpec.
endpointSpecs[].
addressSpecs[].
internalIpv4AddressSpec.
address
string

IPv4 address.

listenerSpec.
endpointSpecs[].
addressSpecs[].
internalIpv4AddressSpec.
subnetId
string

ID of the subnet that the address belongs to.

listenerSpec.
endpointSpecs[].
addressSpecs[].
externalIpv6AddressSpec
object
Public IPv6 endpoint address.
listenerSpec.endpointSpecs[].addressSpecs[] includes only one of the fields externalIpv4AddressSpec, internalIpv4AddressSpec, externalIpv6AddressSpec
listenerSpec.
endpointSpecs[].
addressSpecs[].
externalIpv6AddressSpec.
address
string

IPv6 address.

listenerSpec.
endpointSpecs[].
ports[]
string (int64)

Required. Endpoint ports.

Must contain at least one element. Acceptable values are 1 to 65535, inclusive.

listenerSpec.
http
object
Unencrypted HTTP listener settings.
listenerSpec includes only one of the fields http, tls, stream
listenerSpec.
http.
handler
object

Settings for handling HTTP requests.

Only one of handler and redirects can be specified.

An HTTP handler resource.

listenerSpec.
http.
handler.
httpRouterId
string

ID of the HTTP router processing requests. For details about the concept, see documentation.

To get the list of all available HTTP routers, make a list request.

listenerSpec.
http.
handler.
http2Options
object
HTTP/2 settings. If specified, incoming HTTP/2 requests are supported by the listener.
listenerSpec.http.handler includes only one of the fields http2Options, allowHttp10
listenerSpec.
http.
handler.
http2Options.
maxConcurrentStreams
string (int64)

Maximum number of concurrent HTTP/2 streams in a connection.

listenerSpec.
http.
handler.
allowHttp10
boolean (boolean)
listenerSpec.http.handler includes only one of the fields http2Options, allowHttp10

Enables support for incoming HTTP/1.0 and HTTP/1.1 requests and disables it for HTTP/2 requests.

listenerSpec.
http.
redirects
object

Redirects settings.

Only one of redirects and handler can be specified.

A listener redirects resource.

listenerSpec.
http.
redirects.
httpToHttps
boolean (boolean)

Redirects all unencrypted HTTP requests to the same URI with scheme changed to https.

The setting has the same effect as a single, catch-all HttpRoute with replaceScheme set to https.

listenerSpec.
tls
object
TLS-encrypted HTTP or TCP stream listener settings. All handlers within a listener (defaultHandler and sniHandlers) must be of one type, HttpHandler or StreamHandler. Mixing HTTP and TCP stream traffic in a TLS-encrypted listener is not supported.
listenerSpec includes only one of the fields http, tls, stream
listenerSpec.
tls.
defaultHandler
object

Required. Settings for handling requests by default, with Server Name Indication (SNI) not matching any of the sniHandlers.

A TLS-encrypted (HTTP or TCP stream) handler resource.

listenerSpec.
tls.
defaultHandler.
certificateIds[]
string

Required. ID's of the TLS server certificates from Certificate Manager.

RSA and ECDSA certificates are supported, and only the first certificate of each type is used.

Must contain at least one element.

listenerSpec.
tls.
defaultHandler.
httpHandler
object
HTTP handler.
listenerSpec.tls.defaultHandler includes only one of the fields httpHandler, streamHandler
listenerSpec.
tls.
defaultHandler.
httpHandler.
httpRouterId
string

ID of the HTTP router processing requests. For details about the concept, see documentation.

To get the list of all available HTTP routers, make a list request.

listenerSpec.
tls.
defaultHandler.
httpHandler.
http2Options
object
HTTP/2 settings. If specified, incoming HTTP/2 requests are supported by the listener.
listenerSpec.tls.defaultHandler.httpHandler includes only one of the fields http2Options, allowHttp10
listenerSpec.
tls.
defaultHandler.
httpHandler.
http2Options.
maxConcurrentStreams
string (int64)

Maximum number of concurrent HTTP/2 streams in a connection.

listenerSpec.
tls.
defaultHandler.
httpHandler.
allowHttp10
boolean (boolean)
listenerSpec.tls.defaultHandler.httpHandler includes only one of the fields http2Options, allowHttp10

Enables support for incoming HTTP/1.0 and HTTP/1.1 requests and disables it for HTTP/2 requests.

listenerSpec.
tls.
defaultHandler.
streamHandler
object
Stream (TCP) handler.
listenerSpec.tls.defaultHandler includes only one of the fields httpHandler, streamHandler
listenerSpec.
tls.
defaultHandler.
streamHandler.
backendGroupId
string

Required. ID of the backend group processing requests. For details about the concept, see documentation.

The backend group type, specified via [BackendGroup.backend], must be stream.

To get the list of all available backend groups, make a list request.

listenerSpec.
tls.
sniHandlers[]
object

Settings for handling requests with Server Name Indication (SNI) matching one of serverNames values.

listenerSpec.
tls.
sniHandlers[].
name
string

Required. Name of the SNI handler.

listenerSpec.
tls.
sniHandlers[].
serverNames[]
string

Required. Server names that are matched by the SNI handler.

Must contain at least one element.

listenerSpec.
tls.
sniHandlers[].
handler
object

Required. Settings for handling requests with Server Name Indication (SNI) matching one of serverNames values.

A TLS-encrypted (HTTP or TCP stream) handler resource.

listenerSpec.
tls.
sniHandlers[].
handler.
certificateIds[]
string

Required. ID's of the TLS server certificates from Certificate Manager.

RSA and ECDSA certificates are supported, and only the first certificate of each type is used.

Must contain at least one element.

listenerSpec.
tls.
sniHandlers[].
handler.
httpHandler
object
HTTP handler.
listenerSpec.tls.sniHandlers[].handler includes only one of the fields httpHandler, streamHandler
listenerSpec.
tls.
sniHandlers[].
handler.
httpHandler.
httpRouterId
string

ID of the HTTP router processing requests. For details about the concept, see documentation.

To get the list of all available HTTP routers, make a list request.

listenerSpec.
tls.
sniHandlers[].
handler.
httpHandler.
http2Options
object
HTTP/2 settings. If specified, incoming HTTP/2 requests are supported by the listener.
listenerSpec.tls.sniHandlers[].handler.httpHandler includes only one of the fields http2Options, allowHttp10
listenerSpec.
tls.
sniHandlers[].
handler.
httpHandler.
http2Options.
maxConcurrentStreams
string (int64)

Maximum number of concurrent HTTP/2 streams in a connection.

listenerSpec.
tls.
sniHandlers[].
handler.
httpHandler.
allowHttp10
boolean (boolean)
listenerSpec.tls.sniHandlers[].handler.httpHandler includes only one of the fields http2Options, allowHttp10

Enables support for incoming HTTP/1.0 and HTTP/1.1 requests and disables it for HTTP/2 requests.

listenerSpec.
tls.
sniHandlers[].
handler.
streamHandler
object
Stream (TCP) handler.
listenerSpec.tls.sniHandlers[].handler includes only one of the fields httpHandler, streamHandler
listenerSpec.
tls.
sniHandlers[].
handler.
streamHandler.
backendGroupId
string

Required. ID of the backend group processing requests. For details about the concept, see documentation.

The backend group type, specified via [BackendGroup.backend], must be stream.

To get the list of all available backend groups, make a list request.

listenerSpec.
stream
object
Unencrypted stream (TCP) listener settings.
listenerSpec includes only one of the fields http, tls, stream
listenerSpec.
stream.
handler
object

Required. Settings for handling stream (TCP) requests.

A stream (TCP) handler resource.

listenerSpec.
stream.
handler.
backendGroupId
string

Required. ID of the backend group processing requests. For details about the concept, see documentation.

The backend group type, specified via [BackendGroup.backend], must be stream.

To get the list of all available backend groups, make a list request.

Response

HTTP Code: 200 - OK

{
  "id": "string",
  "description": "string",
  "createdAt": "string",
  "createdBy": "string",
  "modifiedAt": "string",
  "done": true,
  "metadata": "object",

  //  includes only one of the fields `error`, `response`
  "error": {
    "code": "integer",
    "message": "string",
    "details": [
      "object"
    ]
  },
  "response": "object",
  // end of the list of possible fields

}

An Operation resource. For more information, see Operation.

Field Description
id string

ID of the operation.

description string

Description of the operation. 0-256 characters long.

createdAt string (date-time)

Creation timestamp.

String in RFC3339 text format. The range of possible values is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z, i.e. from 0 to 9 digits for fractions of a second.

To work with values in this field, use the APIs described in the Protocol Buffers reference. In some languages, built-in datetime utilities do not support nanosecond precision (9 digits).

createdBy string

ID of the user or service account who initiated the operation.

modifiedAt string (date-time)

The time when the Operation resource was last modified.

String in RFC3339 text format. The range of possible values is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z, i.e. from 0 to 9 digits for fractions of a second.

To work with values in this field, use the APIs described in the Protocol Buffers reference. In some languages, built-in datetime utilities do not support nanosecond precision (9 digits).

done boolean (boolean)

If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.

metadata object

Service-specific metadata associated with the operation. It typically contains the ID of the target resource that the operation is performed on. Any method that returns a long-running operation should document the metadata type, if any.

error object
The error result of the operation in case of failure or cancellation.
includes only one of the fields error, response
error.
code
integer (int32)

Error code. An enum value of google.rpc.Code.

error.
message
string

An error message.

error.
details[]
object

A list of messages that carry the error details.

response object
includes only one of the fields error, response

The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is the standard Create/Update, the response should be the target resource of the operation. Any method that returns a long-running operation should document the response type, if any.

Was the article helpful?

Language / Region
Yandex project
© 2023 Yandex.Cloud LLC
In this article:
  • HTTP request
  • Path parameters
  • Body parameters
  • Response