Yandex Cloud
  • Services
  • Solutions
  • Why Yandex Cloud
  • Pricing
  • Documentation
  • Contact us
Get started
Language / Region
© 2022 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
      • 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
    • Ingress Controller for Managed Service for Kubernetes
      • Install an Ingress controller
      • Create or update resources based on configuration
  • 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
  • Concepts
    • Overview
    • Load balancers
    • HTTP routers
    • Backend groups
    • Target groups
    • Quotas and limits
  • Tools
    • Ingress Controller for Managed Service for Kubernetes
      • Overview
      • How it works
      • 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
  • Ingress controller reference
    • Overview
    • Ingress
    • HttpBackendGroup
    • Service
  • Log reference
  1. API reference
  2. gRPC
  3. BackendGroupService

BackendGroupService

Written by
Yandex Cloud
  • Calls BackendGroupService
  • Get
    • GetBackendGroupRequest
    • BackendGroup
    • HttpBackendGroup
    • HttpBackend
    • LoadBalancingConfig
    • TargetGroupsBackend
    • StorageBucketBackend
    • HealthCheck
    • StreamHealthCheck
    • HttpHealthCheck
    • GrpcHealthCheck
    • PlaintextTransportSettings
    • SecureTransportSettings
    • ValidationContext
    • BackendTls
    • ValidationContext
    • ConnectionSessionAffinity
    • HeaderSessionAffinity
    • CookieSessionAffinity
    • GrpcBackendGroup
    • GrpcBackend
    • LoadBalancingConfig
    • TargetGroupsBackend
    • HealthCheck
    • StreamHealthCheck
    • HttpHealthCheck
    • GrpcHealthCheck
    • PlaintextTransportSettings
    • SecureTransportSettings
    • ValidationContext
    • BackendTls
    • ValidationContext
    • ConnectionSessionAffinity
    • HeaderSessionAffinity
    • CookieSessionAffinity
    • StreamBackendGroup
    • StreamBackend
    • LoadBalancingConfig
    • TargetGroupsBackend
    • HealthCheck
    • StreamHealthCheck
    • HttpHealthCheck
    • GrpcHealthCheck
    • PlaintextTransportSettings
    • SecureTransportSettings
    • ValidationContext
    • BackendTls
    • ValidationContext
    • ConnectionSessionAffinity
  • List
    • ListBackendGroupsRequest
    • ListBackendGroupsResponse
    • BackendGroup
    • HttpBackendGroup
    • HttpBackend
    • LoadBalancingConfig
    • TargetGroupsBackend
    • StorageBucketBackend
    • HealthCheck
    • StreamHealthCheck
    • HttpHealthCheck
    • GrpcHealthCheck
    • PlaintextTransportSettings
    • SecureTransportSettings
    • ValidationContext
    • BackendTls
    • ValidationContext
    • ConnectionSessionAffinity
    • HeaderSessionAffinity
    • CookieSessionAffinity
    • GrpcBackendGroup
    • GrpcBackend
    • LoadBalancingConfig
    • TargetGroupsBackend
    • HealthCheck
    • StreamHealthCheck
    • HttpHealthCheck
    • GrpcHealthCheck
    • PlaintextTransportSettings
    • SecureTransportSettings
    • ValidationContext
    • BackendTls
    • ValidationContext
    • ConnectionSessionAffinity
    • HeaderSessionAffinity
    • CookieSessionAffinity
    • StreamBackendGroup
    • StreamBackend
    • LoadBalancingConfig
    • TargetGroupsBackend
    • HealthCheck
    • StreamHealthCheck
    • HttpHealthCheck
    • GrpcHealthCheck
    • PlaintextTransportSettings
    • SecureTransportSettings
    • ValidationContext
    • BackendTls
    • ValidationContext
    • ConnectionSessionAffinity
  • Create
    • CreateBackendGroupRequest
    • HttpBackendGroup
    • HttpBackend
    • LoadBalancingConfig
    • TargetGroupsBackend
    • StorageBucketBackend
    • HealthCheck
    • StreamHealthCheck
    • HttpHealthCheck
    • GrpcHealthCheck
    • PlaintextTransportSettings
    • SecureTransportSettings
    • ValidationContext
    • BackendTls
    • ValidationContext
    • ConnectionSessionAffinity
    • HeaderSessionAffinity
    • CookieSessionAffinity
    • GrpcBackendGroup
    • GrpcBackend
    • LoadBalancingConfig
    • TargetGroupsBackend
    • HealthCheck
    • StreamHealthCheck
    • HttpHealthCheck
    • GrpcHealthCheck
    • PlaintextTransportSettings
    • SecureTransportSettings
    • ValidationContext
    • BackendTls
    • ValidationContext
    • ConnectionSessionAffinity
    • HeaderSessionAffinity
    • CookieSessionAffinity
    • StreamBackendGroup
    • StreamBackend
    • LoadBalancingConfig
    • TargetGroupsBackend
    • HealthCheck
    • StreamHealthCheck
    • HttpHealthCheck
    • GrpcHealthCheck
    • PlaintextTransportSettings
    • SecureTransportSettings
    • ValidationContext
    • BackendTls
    • ValidationContext
    • ConnectionSessionAffinity
    • Operation
    • CreateBackendGroupMetadata
    • BackendGroup
    • HttpBackendGroup
    • HttpBackend
    • LoadBalancingConfig
    • TargetGroupsBackend
    • StorageBucketBackend
    • HealthCheck
    • StreamHealthCheck
    • HttpHealthCheck
    • GrpcHealthCheck
    • PlaintextTransportSettings
    • SecureTransportSettings
    • ValidationContext
    • BackendTls
    • ValidationContext
    • ConnectionSessionAffinity
    • HeaderSessionAffinity
    • CookieSessionAffinity
    • GrpcBackendGroup
    • GrpcBackend
    • LoadBalancingConfig
    • TargetGroupsBackend
    • HealthCheck
    • StreamHealthCheck
    • HttpHealthCheck
    • GrpcHealthCheck
    • PlaintextTransportSettings
    • SecureTransportSettings
    • ValidationContext
    • BackendTls
    • ValidationContext
    • ConnectionSessionAffinity
    • HeaderSessionAffinity
    • CookieSessionAffinity
    • StreamBackendGroup
    • StreamBackend
    • LoadBalancingConfig
    • TargetGroupsBackend
    • HealthCheck
    • StreamHealthCheck
    • HttpHealthCheck
    • GrpcHealthCheck
    • PlaintextTransportSettings
    • SecureTransportSettings
    • ValidationContext
    • BackendTls
    • ValidationContext
    • ConnectionSessionAffinity
  • Update
    • UpdateBackendGroupRequest
    • HttpBackendGroup
    • HttpBackend
    • LoadBalancingConfig
    • TargetGroupsBackend
    • StorageBucketBackend
    • HealthCheck
    • StreamHealthCheck
    • HttpHealthCheck
    • GrpcHealthCheck
    • PlaintextTransportSettings
    • SecureTransportSettings
    • ValidationContext
    • BackendTls
    • ValidationContext
    • ConnectionSessionAffinity
    • HeaderSessionAffinity
    • CookieSessionAffinity
    • GrpcBackendGroup
    • GrpcBackend
    • LoadBalancingConfig
    • TargetGroupsBackend
    • HealthCheck
    • StreamHealthCheck
    • HttpHealthCheck
    • GrpcHealthCheck
    • PlaintextTransportSettings
    • SecureTransportSettings
    • ValidationContext
    • BackendTls
    • ValidationContext
    • ConnectionSessionAffinity
    • HeaderSessionAffinity
    • CookieSessionAffinity
    • StreamBackendGroup
    • StreamBackend
    • LoadBalancingConfig
    • TargetGroupsBackend
    • HealthCheck
    • StreamHealthCheck
    • HttpHealthCheck
    • GrpcHealthCheck
    • PlaintextTransportSettings
    • SecureTransportSettings
    • ValidationContext
    • BackendTls
    • ValidationContext
    • ConnectionSessionAffinity
    • Operation
    • UpdateBackendGroupMetadata
    • BackendGroup
    • HttpBackendGroup
    • HttpBackend
    • LoadBalancingConfig
    • TargetGroupsBackend
    • StorageBucketBackend
    • HealthCheck
    • StreamHealthCheck
    • HttpHealthCheck
    • GrpcHealthCheck
    • PlaintextTransportSettings
    • SecureTransportSettings
    • ValidationContext
    • BackendTls
    • ValidationContext
    • ConnectionSessionAffinity
    • HeaderSessionAffinity
    • CookieSessionAffinity
    • GrpcBackendGroup
    • GrpcBackend
    • LoadBalancingConfig
    • TargetGroupsBackend
    • HealthCheck
    • StreamHealthCheck
    • HttpHealthCheck
    • GrpcHealthCheck
    • PlaintextTransportSettings
    • SecureTransportSettings
    • ValidationContext
    • BackendTls
    • ValidationContext
    • ConnectionSessionAffinity
    • HeaderSessionAffinity
    • CookieSessionAffinity
    • StreamBackendGroup
    • StreamBackend
    • LoadBalancingConfig
    • TargetGroupsBackend
    • HealthCheck
    • StreamHealthCheck
    • HttpHealthCheck
    • GrpcHealthCheck
    • PlaintextTransportSettings
    • SecureTransportSettings
    • ValidationContext
    • BackendTls
    • ValidationContext
    • ConnectionSessionAffinity
  • Delete
    • DeleteBackendGroupRequest
    • Operation
    • DeleteBackendGroupMetadata
  • AddBackend
    • AddBackendRequest
    • HttpBackend
    • LoadBalancingConfig
    • TargetGroupsBackend
    • StorageBucketBackend
    • HealthCheck
    • StreamHealthCheck
    • HttpHealthCheck
    • GrpcHealthCheck
    • PlaintextTransportSettings
    • SecureTransportSettings
    • ValidationContext
    • BackendTls
    • ValidationContext
    • GrpcBackend
    • LoadBalancingConfig
    • TargetGroupsBackend
    • HealthCheck
    • StreamHealthCheck
    • HttpHealthCheck
    • GrpcHealthCheck
    • PlaintextTransportSettings
    • SecureTransportSettings
    • ValidationContext
    • BackendTls
    • ValidationContext
    • StreamBackend
    • LoadBalancingConfig
    • TargetGroupsBackend
    • HealthCheck
    • StreamHealthCheck
    • HttpHealthCheck
    • GrpcHealthCheck
    • PlaintextTransportSettings
    • SecureTransportSettings
    • ValidationContext
    • BackendTls
    • ValidationContext
    • Operation
    • AddBackendMetadata
    • BackendGroup
    • HttpBackendGroup
    • HttpBackend
    • LoadBalancingConfig
    • TargetGroupsBackend
    • StorageBucketBackend
    • HealthCheck
    • StreamHealthCheck
    • HttpHealthCheck
    • GrpcHealthCheck
    • PlaintextTransportSettings
    • SecureTransportSettings
    • ValidationContext
    • BackendTls
    • ValidationContext
    • ConnectionSessionAffinity
    • HeaderSessionAffinity
    • CookieSessionAffinity
    • GrpcBackendGroup
    • GrpcBackend
    • LoadBalancingConfig
    • TargetGroupsBackend
    • HealthCheck
    • StreamHealthCheck
    • HttpHealthCheck
    • GrpcHealthCheck
    • PlaintextTransportSettings
    • SecureTransportSettings
    • ValidationContext
    • BackendTls
    • ValidationContext
    • ConnectionSessionAffinity
    • HeaderSessionAffinity
    • CookieSessionAffinity
    • StreamBackendGroup
    • StreamBackend
    • LoadBalancingConfig
    • TargetGroupsBackend
    • HealthCheck
    • StreamHealthCheck
    • HttpHealthCheck
    • GrpcHealthCheck
    • PlaintextTransportSettings
    • SecureTransportSettings
    • ValidationContext
    • BackendTls
    • ValidationContext
    • ConnectionSessionAffinity
  • RemoveBackend
    • RemoveBackendRequest
    • Operation
    • RemoveBackendMetadata
    • BackendGroup
    • HttpBackendGroup
    • HttpBackend
    • LoadBalancingConfig
    • TargetGroupsBackend
    • StorageBucketBackend
    • HealthCheck
    • StreamHealthCheck
    • HttpHealthCheck
    • GrpcHealthCheck
    • PlaintextTransportSettings
    • SecureTransportSettings
    • ValidationContext
    • BackendTls
    • ValidationContext
    • ConnectionSessionAffinity
    • HeaderSessionAffinity
    • CookieSessionAffinity
    • GrpcBackendGroup
    • GrpcBackend
    • LoadBalancingConfig
    • TargetGroupsBackend
    • HealthCheck
    • StreamHealthCheck
    • HttpHealthCheck
    • GrpcHealthCheck
    • PlaintextTransportSettings
    • SecureTransportSettings
    • ValidationContext
    • BackendTls
    • ValidationContext
    • ConnectionSessionAffinity
    • HeaderSessionAffinity
    • CookieSessionAffinity
    • StreamBackendGroup
    • StreamBackend
    • LoadBalancingConfig
    • TargetGroupsBackend
    • HealthCheck
    • StreamHealthCheck
    • HttpHealthCheck
    • GrpcHealthCheck
    • PlaintextTransportSettings
    • SecureTransportSettings
    • ValidationContext
    • BackendTls
    • ValidationContext
    • ConnectionSessionAffinity
  • UpdateBackend
    • UpdateBackendRequest
    • HttpBackend
    • LoadBalancingConfig
    • TargetGroupsBackend
    • StorageBucketBackend
    • HealthCheck
    • StreamHealthCheck
    • HttpHealthCheck
    • GrpcHealthCheck
    • PlaintextTransportSettings
    • SecureTransportSettings
    • ValidationContext
    • BackendTls
    • ValidationContext
    • GrpcBackend
    • LoadBalancingConfig
    • TargetGroupsBackend
    • HealthCheck
    • StreamHealthCheck
    • HttpHealthCheck
    • GrpcHealthCheck
    • PlaintextTransportSettings
    • SecureTransportSettings
    • ValidationContext
    • BackendTls
    • ValidationContext
    • StreamBackend
    • LoadBalancingConfig
    • TargetGroupsBackend
    • HealthCheck
    • StreamHealthCheck
    • HttpHealthCheck
    • GrpcHealthCheck
    • PlaintextTransportSettings
    • SecureTransportSettings
    • ValidationContext
    • BackendTls
    • ValidationContext
    • Operation
    • UpdateBackendMetadata
    • BackendGroup
    • HttpBackendGroup
    • HttpBackend
    • LoadBalancingConfig
    • TargetGroupsBackend
    • StorageBucketBackend
    • HealthCheck
    • StreamHealthCheck
    • HttpHealthCheck
    • GrpcHealthCheck
    • PlaintextTransportSettings
    • SecureTransportSettings
    • ValidationContext
    • BackendTls
    • ValidationContext
    • ConnectionSessionAffinity
    • HeaderSessionAffinity
    • CookieSessionAffinity
    • GrpcBackendGroup
    • GrpcBackend
    • LoadBalancingConfig
    • TargetGroupsBackend
    • HealthCheck
    • StreamHealthCheck
    • HttpHealthCheck
    • GrpcHealthCheck
    • PlaintextTransportSettings
    • SecureTransportSettings
    • ValidationContext
    • BackendTls
    • ValidationContext
    • ConnectionSessionAffinity
    • HeaderSessionAffinity
    • CookieSessionAffinity
    • StreamBackendGroup
    • StreamBackend
    • LoadBalancingConfig
    • TargetGroupsBackend
    • HealthCheck
    • StreamHealthCheck
    • HttpHealthCheck
    • GrpcHealthCheck
    • PlaintextTransportSettings
    • SecureTransportSettings
    • ValidationContext
    • BackendTls
    • ValidationContext
    • ConnectionSessionAffinity
  • ListOperations
    • ListBackendGroupOperationsRequest
    • ListBackendGroupOperationsResponse
    • Operation

A set of methods for managing backend groups.

Call Description
Get Returns the specified backend group.
List Lists backend groups in the specified folder.
Create Creates a backend group in the specified folder.
Update Updates the specified backend group.
Delete Deletes the specified backend group.
AddBackend Adds backends to the specified backend group.
RemoveBackend Removes backends from the specified backend group.
UpdateBackend Updates the specified backend.
ListOperations Lists operations for the specified backend group.

Calls BackendGroupService

Get

Returns the specified backend group.
To get the list of all available backend groups, make a List request.

rpc Get (GetBackendGroupRequest) returns (BackendGroup)

GetBackendGroupRequest

Field Description
backend_group_id string
Required. ID of the backend group to return.
To get the backend group ID, make a BackendGroupService.List request.

BackendGroup

Field Description
id string
ID of the backend group. Generated at creation time.
name string
Name of the backend group. The name is unique within the folder. The string length in characters is 3-63.
description string
Description of the backend group. The string is 0-256 characters long.
folder_id string
ID of the folder that the backend group belongs to.
labels map<string,string>
Backend group labels as key:value pairs. For details about the concept, see documentation. The maximum number of labels is 64.
backend oneof: http, grpc or stream
Backends that the backend group consists of.
  http HttpBackendGroup
List of HTTP backends that the backend group consists of.
  grpc GrpcBackendGroup
List of gRPC backends that the backend group consists of.
  stream StreamBackendGroup
List of stream (TCP) backends that the backend group consists of.
created_at google.protobuf.Timestamp
Creation timestamp.

HttpBackendGroup

Field Description
backends[] HttpBackend
List of HTTP backends.
session_affinity oneof: connection, header or cookie
Session affinity configuration for the backend group.
For details about the concept, see documentation.
If session affinity is configured, the backend group should contain exactly one active backend (i.e. with positive HttpBackend.backend_weight), its HttpBackend.backend_type should be TargetGroupsBackend, and its LoadBalancingConfig.load_balancing_mode should be MAGLEV_HASH. If any of these conditions are not met, session affinity will not work.
  connection ConnectionSessionAffinity
Connection-based session affinity configuration.
For now, a connection is defined only by an IP address of the client.
  header HeaderSessionAffinity
HTTP-header-field-based session affinity configuration.
  cookie CookieSessionAffinity
Cookie-based session affinity configuration.

HttpBackend

Field Description
name string
Required. Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9].
backend_weight google.protobuf.Int64Value
Backend weight. Traffic is distributed between backends of a backend group according to their weights.
Weights must be set either for all backends in a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends.
If the weight is non-positive, traffic is not sent to the backend.
load_balancing_config LoadBalancingConfig
Load balancing configuration for the backend.
port int64
Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive.
backend_type oneof: target_groups or storage_bucket
Reference to targets that belong to the backend.
A backend may be a set of target groups or an Object Storage bucket. For details about backend types, see documentation.
  target_groups TargetGroupsBackend
Target groups that belong to the backend. For details about target groups, see documentation.
  storage_bucket StorageBucketBackend
Object Storage bucket to use as the backend. For details about buckets, see documentation.
If a bucket is used as a backend, the list of bucket objects and the objects themselves must be publicly accessible. For instructions, see documentation.
healthchecks[] HealthCheck
Health checks to perform on targets from target groups. For details about health checking, see documentation.
If no health checks are specified, active health checking is not performed.
tls BackendTls
Settings for TLS connections between load balancer nodes and backend targets.
If specified, the load balancer establishes HTTPS (HTTP over TLS) connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted HTTP connections with targets.
use_http2 bool
Enables HTTP/2 usage in connections between load balancer nodes and backend targets.
Default value: false, HTTP/1.1 is used.

LoadBalancingConfig

Field Description
panic_threshold int64
Threshold for panic mode.
If percentage of healthy backends in the group drops below threshold, panic mode will be activated and traffic will be routed to all backends, regardless of their health check status. This helps to avoid overloading healthy backends. For details about panic mode, see documentation.
If the value is 0, panic mode will never be activated and traffic is routed only to healthy backends at all times.
Default value: 0. Acceptable values are 0 to 100, inclusive.
locality_aware_routing_percent int64
Percentage of traffic that a load balancer node sends to healthy backends in its availability zone. The rest is divided equally between other zones. For details about zone-aware routing, see documentation.
If there are no healthy backends in an availability zone, all the traffic is divided between other zones.
If strict_locality is true, the specified value is ignored. A load balancer node sends all the traffic within its availability zone, regardless of backends' health.
Default value: 0. Acceptable values are 0 to 100, inclusive.
strict_locality bool
Specifies whether a load balancer node should only send traffic to backends in its availability zone, regardless of their health, and ignore backends in other zones.
If set to true and there are no healthy backends in the zone, the node in this zone will respond to incoming traffic with errors. For details about strict locality, see documentation.
If strict_locality is true, the value specified in locality_aware_routing_percent is ignored.
Default value: false.
mode enum LoadBalancingMode
Load balancing mode for the backend.
For details about load balancing modes, see documentation.
  • ROUND_ROBIN: Round robin load balancing mode.
    All endpoints of the backend take their turns to receive requests attributed to the backend.
  • RANDOM: Random load balancing mode. Default value.
    For a request attributed to the backend, an endpoint that receives it is picked at random.
  • LEAST_REQUEST: Least request load balancing mode.
    To pick an endpoint that receives a request attributed to the backend, the power of two choices algorithm is used; that is, two endpoints are picked at random, and the request is sent to the one which has the fewest active requests.
  • MAGLEV_HASH: Maglev hashing load balancing mode.
    Each endpoint is hashed, and a hash table with 65537 rows is filled accordingly, so that every endpoint occupies the same amount of rows. An attribute of each request is also hashed by the same function (if session affinity is enabled for the backend group, the attribute to hash is specified in session affinity configuration). The row with the same number as the resulting value is looked up in the table to determine the endpoint that receives the request.
    If the backend group with session affinity enabled contains more than one backend with positive weight, endpoints for backends with MAGLEV_HASH load balancing mode are picked at RANDOM instead.

TargetGroupsBackend

Field Description
target_group_ids[] string
List of ID's of target groups that belong to the backend.
To get the ID's of all available target groups, make a TargetGroupService.List request. The number of elements must be greater than 0.

StorageBucketBackend

Field Description
bucket string
Required. Name of the bucket.

HealthCheck

Field Description
timeout google.protobuf.Duration
Required. Health check timeout.
The timeout is the time allowed for the target to respond to a check. If the target doesn't respond in time, the check is considered failed.
interval google.protobuf.Duration
Required. Base interval between consecutive health checks.
interval_jitter_percent double
healthy_threshold int64
Number of consecutive successful health checks required to mark an unhealthy target as healthy.
Both 0 and 1 values amount to one successful check required.
The value is ignored when a load balancer is initialized; a target is marked healthy after one successful check.
Default value: 0.
unhealthy_threshold int64
Number of consecutive failed health checks required to mark a healthy target as unhealthy.
Both 0 and 1 values amount to one unsuccessful check required.
The value is ignored if a health check is failed due to an HTTP 503 Service Unavailable response from the target (not applicable to TCP stream health checks). The target is immediately marked unhealthy.
Default value: 0.
healthcheck_port int64
Port used for health checks.
If not specified, the backend port (HttpBackend.port or GrpcBackend.port) is used for health checks. Acceptable values are 0 to 65535, inclusive.
healthcheck oneof: stream, http or grpc
Protocol-specific health check settings.
The protocols of the backend and of its health check may differ, e.g. a gRPC health check may be specified for an HTTP backend.
  stream StreamHealthCheck
TCP stream health check settings.
  http HttpHealthCheck
HTTP health check settings.
  grpc GrpcHealthCheck
gRPC health check settings.
transport_settings oneof: plaintext or tls
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  plaintext PlaintextTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  tls SecureTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.

StreamHealthCheck

Field Description
send Payload
Message sent to targets during TCP data transfer.
If not specified, no data is sent to the target.
receive Payload
Data that must be contained in the messages received from targets for a successful health check.
If not specified, no messages are expected from targets, and those that are received are not checked.

HttpHealthCheck

Field Description
host string
Value for the HTTP/1.1 Host header or the HTTP/2 :authority pseudo-header used in requests to targets.
path string
Required. HTTP path used in requests to targets: request URI for HTTP/1.1 request line or value for the HTTP/2 :path pseudo-header.
use_http2 bool
Enables HTTP/2 usage in health checks.
Default value: false, HTTP/1.1 is used.

GrpcHealthCheck

Field Description
service_name string
Name of the gRPC service to be checked.
If not specified, overall health is checked.
For details about the concept, see GRPC Health Checking Protocol.

PlaintextTransportSettings

SecureTransportSettings

Field Description
sni string
SNI string for TLS connections.
validation_context ValidationContext
Validation context for backend TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

BackendTls

Field Description
sni string
Server Name Indication (SNI) string for TLS connections.
validation_context ValidationContext
Validation context for TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

ConnectionSessionAffinity

Field Description
source_ip bool
Specifies whether an IP address of the client is used to define a connection for session affinity.

HeaderSessionAffinity

Field Description
header_name string
Name of the HTTP header field that is used for session affinity. The string length in characters must be 1-256.

CookieSessionAffinity

Field Description
name string
Name of the cookie that is used for session affinity. The string length in characters must be 1-256.
ttl google.protobuf.Duration
Maximum age of cookies that are generated for sessions.
If set to 0, session cookies are used, which are stored by clients in temporary memory and are deleted on client restarts.
If not set, the balancer does not generate cookies and only uses incoming ones for establishing session affinity.

GrpcBackendGroup

Field Description
backends[] GrpcBackend
List of gRPC backends.
session_affinity oneof: connection, header or cookie
Session affinity configuration for the backend group.
For details about the concept, see documentation.
If session affinity is configured, the backend group should contain exactly one active backend (i.e. with positive GrpcBackend.backend_weight), and its LoadBalancingConfig.load_balancing_mode should be MAGLEV_HASH. If any of these conditions are not met, session affinity will not work.
  connection ConnectionSessionAffinity
Connection-based session affinity configuration.
For now, a connection is defined only by an IP address of the client.
  header HeaderSessionAffinity
HTTP-header-field-based session affinity configuration.
  cookie CookieSessionAffinity
Cookie-based session affinity configuration.

GrpcBackend

Field Description
name string
Required. Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9].
backend_weight google.protobuf.Int64Value
Backend weight. Traffic is distributed between backends of a backend group according to their weights.
Weights must be set either for all backends of a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends.
If the weight is non-positive, traffic is not sent to the backend.
load_balancing_config LoadBalancingConfig
Load balancing configuration for the backend.
port int64
Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive.
backend_type oneof: target_groups
Reference to targets that belong to the backend. For now, targets are referenced via target groups.
  target_groups TargetGroupsBackend
Target groups that belong to the backend.
healthchecks[] HealthCheck
Health checks to perform on targets from target groups. For details about health checking, see documentation.
If no health checks are specified, active health checking is not performed.
tls BackendTls
Settings for TLS connections between load balancer nodes and backend targets.
If specified, the load balancer establishes HTTPS (HTTP over TLS) connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted HTTP connections with targets.

LoadBalancingConfig

Field Description
panic_threshold int64
Threshold for panic mode.
If percentage of healthy backends in the group drops below threshold, panic mode will be activated and traffic will be routed to all backends, regardless of their health check status. This helps to avoid overloading healthy backends. For details about panic mode, see documentation.
If the value is 0, panic mode will never be activated and traffic is routed only to healthy backends at all times.
Default value: 0. Acceptable values are 0 to 100, inclusive.
locality_aware_routing_percent int64
Percentage of traffic that a load balancer node sends to healthy backends in its availability zone. The rest is divided equally between other zones. For details about zone-aware routing, see documentation.
If there are no healthy backends in an availability zone, all the traffic is divided between other zones.
If strict_locality is true, the specified value is ignored. A load balancer node sends all the traffic within its availability zone, regardless of backends' health.
Default value: 0. Acceptable values are 0 to 100, inclusive.
strict_locality bool
Specifies whether a load balancer node should only send traffic to backends in its availability zone, regardless of their health, and ignore backends in other zones.
If set to true and there are no healthy backends in the zone, the node in this zone will respond to incoming traffic with errors. For details about strict locality, see documentation.
If strict_locality is true, the value specified in locality_aware_routing_percent is ignored.
Default value: false.
mode enum LoadBalancingMode
Load balancing mode for the backend.
For details about load balancing modes, see documentation.
  • ROUND_ROBIN: Round robin load balancing mode.
    All endpoints of the backend take their turns to receive requests attributed to the backend.
  • RANDOM: Random load balancing mode. Default value.
    For a request attributed to the backend, an endpoint that receives it is picked at random.
  • LEAST_REQUEST: Least request load balancing mode.
    To pick an endpoint that receives a request attributed to the backend, the power of two choices algorithm is used; that is, two endpoints are picked at random, and the request is sent to the one which has the fewest active requests.
  • MAGLEV_HASH: Maglev hashing load balancing mode.
    Each endpoint is hashed, and a hash table with 65537 rows is filled accordingly, so that every endpoint occupies the same amount of rows. An attribute of each request is also hashed by the same function (if session affinity is enabled for the backend group, the attribute to hash is specified in session affinity configuration). The row with the same number as the resulting value is looked up in the table to determine the endpoint that receives the request.
    If the backend group with session affinity enabled contains more than one backend with positive weight, endpoints for backends with MAGLEV_HASH load balancing mode are picked at RANDOM instead.

TargetGroupsBackend

Field Description
target_group_ids[] string
List of ID's of target groups that belong to the backend.
To get the ID's of all available target groups, make a TargetGroupService.List request. The number of elements must be greater than 0.

HealthCheck

Field Description
timeout google.protobuf.Duration
Required. Health check timeout.
The timeout is the time allowed for the target to respond to a check. If the target doesn't respond in time, the check is considered failed.
interval google.protobuf.Duration
Required. Base interval between consecutive health checks.
interval_jitter_percent double
healthy_threshold int64
Number of consecutive successful health checks required to mark an unhealthy target as healthy.
Both 0 and 1 values amount to one successful check required.
The value is ignored when a load balancer is initialized; a target is marked healthy after one successful check.
Default value: 0.
unhealthy_threshold int64
Number of consecutive failed health checks required to mark a healthy target as unhealthy.
Both 0 and 1 values amount to one unsuccessful check required.
The value is ignored if a health check is failed due to an HTTP 503 Service Unavailable response from the target (not applicable to TCP stream health checks). The target is immediately marked unhealthy.
Default value: 0.
healthcheck_port int64
Port used for health checks.
If not specified, the backend port (HttpBackend.port or GrpcBackend.port) is used for health checks. Acceptable values are 0 to 65535, inclusive.
healthcheck oneof: stream, http or grpc
Protocol-specific health check settings.
The protocols of the backend and of its health check may differ, e.g. a gRPC health check may be specified for an HTTP backend.
  stream StreamHealthCheck
TCP stream health check settings.
  http HttpHealthCheck
HTTP health check settings.
  grpc GrpcHealthCheck
gRPC health check settings.
transport_settings oneof: plaintext or tls
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  plaintext PlaintextTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  tls SecureTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.

StreamHealthCheck

Field Description
send Payload
Message sent to targets during TCP data transfer.
If not specified, no data is sent to the target.
receive Payload
Data that must be contained in the messages received from targets for a successful health check.
If not specified, no messages are expected from targets, and those that are received are not checked.

HttpHealthCheck

Field Description
host string
Value for the HTTP/1.1 Host header or the HTTP/2 :authority pseudo-header used in requests to targets.
path string
Required. HTTP path used in requests to targets: request URI for HTTP/1.1 request line or value for the HTTP/2 :path pseudo-header.
use_http2 bool
Enables HTTP/2 usage in health checks.
Default value: false, HTTP/1.1 is used.

GrpcHealthCheck

Field Description
service_name string
Name of the gRPC service to be checked.
If not specified, overall health is checked.
For details about the concept, see GRPC Health Checking Protocol.

PlaintextTransportSettings

SecureTransportSettings

Field Description
sni string
SNI string for TLS connections.
validation_context ValidationContext
Validation context for backend TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

BackendTls

Field Description
sni string
Server Name Indication (SNI) string for TLS connections.
validation_context ValidationContext
Validation context for TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

ConnectionSessionAffinity

Field Description
source_ip bool
Specifies whether an IP address of the client is used to define a connection for session affinity.

HeaderSessionAffinity

Field Description
header_name string
Name of the HTTP header field that is used for session affinity. The string length in characters must be 1-256.

CookieSessionAffinity

Field Description
name string
Name of the cookie that is used for session affinity. The string length in characters must be 1-256.
ttl google.protobuf.Duration
Maximum age of cookies that are generated for sessions.
If set to 0, session cookies are used, which are stored by clients in temporary memory and are deleted on client restarts.
If not set, the balancer does not generate cookies and only uses incoming ones for establishing session affinity.

StreamBackendGroup

Field Description
backends[] StreamBackend
List of stream (TCP) backends.
session_affinity oneof: connection
Session affinity configuration for the backend group.
For details about the concept, see documentation.
If session affinity is configured, the backend group should contain exactly one active backend (i.e. with positive HttpBackend.backend_weight), its HttpBackend.backend_type should be TargetGroupsBackend, and its LoadBalancingConfig.load_balancing_mode should be MAGLEV_HASH. If any of these conditions are not met, session affinity will not work.
  connection ConnectionSessionAffinity
Connection-based session affinity configuration.
For now, a connection is defined only by an IP address of the client.

StreamBackend

Field Description
name string
Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9].
backend_weight google.protobuf.Int64Value
Backend weight. Traffic is distributed between backends of a backend group according to their weights.
Weights must be set either for all backends in a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends.
If the weight is non-positive, traffic is not sent to the backend.
load_balancing_config LoadBalancingConfig
Load balancing configuration for the backend.
port int64
Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive.
backend_type oneof: target_groups
Reference to targets that belong to the backend.
  target_groups TargetGroupsBackend
Target groups that belong to the backend. For details about target groups, see documentation.
healthchecks[] HealthCheck
Health checks to perform on targets from target groups. For details about health checking, see documentation.
If no health checks are specified, active health checking is not performed.
tls BackendTls
Settings for TLS connections between load balancer nodes and backend targets.
If specified, the load balancer establishes TLS-encrypted TCP connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted TCP connections with targets.
enable_proxy_protocol bool
If set, proxy protocol will be enabled for this backend.

LoadBalancingConfig

Field Description
panic_threshold int64
Threshold for panic mode.
If percentage of healthy backends in the group drops below threshold, panic mode will be activated and traffic will be routed to all backends, regardless of their health check status. This helps to avoid overloading healthy backends. For details about panic mode, see documentation.
If the value is 0, panic mode will never be activated and traffic is routed only to healthy backends at all times.
Default value: 0. Acceptable values are 0 to 100, inclusive.
locality_aware_routing_percent int64
Percentage of traffic that a load balancer node sends to healthy backends in its availability zone. The rest is divided equally between other zones. For details about zone-aware routing, see documentation.
If there are no healthy backends in an availability zone, all the traffic is divided between other zones.
If strict_locality is true, the specified value is ignored. A load balancer node sends all the traffic within its availability zone, regardless of backends' health.
Default value: 0. Acceptable values are 0 to 100, inclusive.
strict_locality bool
Specifies whether a load balancer node should only send traffic to backends in its availability zone, regardless of their health, and ignore backends in other zones.
If set to true and there are no healthy backends in the zone, the node in this zone will respond to incoming traffic with errors. For details about strict locality, see documentation.
If strict_locality is true, the value specified in locality_aware_routing_percent is ignored.
Default value: false.
mode enum LoadBalancingMode
Load balancing mode for the backend.
For details about load balancing modes, see documentation.
  • ROUND_ROBIN: Round robin load balancing mode.
    All endpoints of the backend take their turns to receive requests attributed to the backend.
  • RANDOM: Random load balancing mode. Default value.
    For a request attributed to the backend, an endpoint that receives it is picked at random.
  • LEAST_REQUEST: Least request load balancing mode.
    To pick an endpoint that receives a request attributed to the backend, the power of two choices algorithm is used; that is, two endpoints are picked at random, and the request is sent to the one which has the fewest active requests.
  • MAGLEV_HASH: Maglev hashing load balancing mode.
    Each endpoint is hashed, and a hash table with 65537 rows is filled accordingly, so that every endpoint occupies the same amount of rows. An attribute of each request is also hashed by the same function (if session affinity is enabled for the backend group, the attribute to hash is specified in session affinity configuration). The row with the same number as the resulting value is looked up in the table to determine the endpoint that receives the request.
    If the backend group with session affinity enabled contains more than one backend with positive weight, endpoints for backends with MAGLEV_HASH load balancing mode are picked at RANDOM instead.

TargetGroupsBackend

Field Description
target_group_ids[] string
List of ID's of target groups that belong to the backend.
To get the ID's of all available target groups, make a TargetGroupService.List request. The number of elements must be greater than 0.

HealthCheck

Field Description
timeout google.protobuf.Duration
Required. Health check timeout.
The timeout is the time allowed for the target to respond to a check. If the target doesn't respond in time, the check is considered failed.
interval google.protobuf.Duration
Required. Base interval between consecutive health checks.
interval_jitter_percent double
healthy_threshold int64
Number of consecutive successful health checks required to mark an unhealthy target as healthy.
Both 0 and 1 values amount to one successful check required.
The value is ignored when a load balancer is initialized; a target is marked healthy after one successful check.
Default value: 0.
unhealthy_threshold int64
Number of consecutive failed health checks required to mark a healthy target as unhealthy.
Both 0 and 1 values amount to one unsuccessful check required.
The value is ignored if a health check is failed due to an HTTP 503 Service Unavailable response from the target (not applicable to TCP stream health checks). The target is immediately marked unhealthy.
Default value: 0.
healthcheck_port int64
Port used for health checks.
If not specified, the backend port (HttpBackend.port or GrpcBackend.port) is used for health checks. Acceptable values are 0 to 65535, inclusive.
healthcheck oneof: stream, http or grpc
Protocol-specific health check settings.
The protocols of the backend and of its health check may differ, e.g. a gRPC health check may be specified for an HTTP backend.
  stream StreamHealthCheck
TCP stream health check settings.
  http HttpHealthCheck
HTTP health check settings.
  grpc GrpcHealthCheck
gRPC health check settings.
transport_settings oneof: plaintext or tls
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  plaintext PlaintextTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  tls SecureTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.

StreamHealthCheck

Field Description
send Payload
Message sent to targets during TCP data transfer.
If not specified, no data is sent to the target.
receive Payload
Data that must be contained in the messages received from targets for a successful health check.
If not specified, no messages are expected from targets, and those that are received are not checked.

HttpHealthCheck

Field Description
host string
Value for the HTTP/1.1 Host header or the HTTP/2 :authority pseudo-header used in requests to targets.
path string
Required. HTTP path used in requests to targets: request URI for HTTP/1.1 request line or value for the HTTP/2 :path pseudo-header.
use_http2 bool
Enables HTTP/2 usage in health checks.
Default value: false, HTTP/1.1 is used.

GrpcHealthCheck

Field Description
service_name string
Name of the gRPC service to be checked.
If not specified, overall health is checked.
For details about the concept, see GRPC Health Checking Protocol.

PlaintextTransportSettings

SecureTransportSettings

Field Description
sni string
SNI string for TLS connections.
validation_context ValidationContext
Validation context for backend TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

BackendTls

Field Description
sni string
Server Name Indication (SNI) string for TLS connections.
validation_context ValidationContext
Validation context for TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

ConnectionSessionAffinity

Field Description
source_ip bool
Specifies whether an IP address of the client is used to define a connection for session affinity.

List

Lists backend groups in the specified folder.

rpc List (ListBackendGroupsRequest) returns (ListBackendGroupsResponse)

ListBackendGroupsRequest

Field Description
folder_id string
Required. ID of the folder to list backend groups in.
To get the folder ID, make a yandex.cloud.resourcemanager.v1.FolderService.List request.
page_size int64
The maximum number of results per page to return. If the number of available results is larger than page_size, the service returns a ListBackendGroupsResponse.next_page_token that can be used to get the next page of results in subsequent list requests. Default value: 100. Acceptable values are 0 to 1000, inclusive.
page_token string
Page token. To get the next page of results, set page_token to the ListBackendGroupsResponse.next_page_token returned by a previous list request. The maximum string length in characters is 100.
filter string
A filter expression that filters backend groups listed in the response.
The expression must specify:
  1. The field name. Currently you can use filtering only on BackendGroup.name field.
  2. An = operator.
  3. The value in double quotes ("). Must be 3-63 characters long and match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9].
Example of a filter: name=my-backend-group. The maximum string length in characters is 1000.

ListBackendGroupsResponse

Field Description
backend_groups[] BackendGroup
List of backend groups in the specified folder.
next_page_token string
Token for getting the next page of the list. If the number of results is greater than the specified ListBackendGroupsRequest.page_size, use next_page_token as the value for the ListBackendGroupsRequest.page_token parameter in the next list request.
Each subsequent page will have its own next_page_token to continue paging through the results.

BackendGroup

Field Description
id string
ID of the backend group. Generated at creation time.
name string
Name of the backend group. The name is unique within the folder. The string length in characters is 3-63.
description string
Description of the backend group. The string is 0-256 characters long.
folder_id string
ID of the folder that the backend group belongs to.
labels map<string,string>
Backend group labels as key:value pairs. For details about the concept, see documentation. The maximum number of labels is 64.
backend oneof: http, grpc or stream
Backends that the backend group consists of.
  http HttpBackendGroup
List of HTTP backends that the backend group consists of.
  grpc GrpcBackendGroup
List of gRPC backends that the backend group consists of.
  stream StreamBackendGroup
List of stream (TCP) backends that the backend group consists of.
created_at google.protobuf.Timestamp
Creation timestamp.

HttpBackendGroup

Field Description
backends[] HttpBackend
List of HTTP backends.
session_affinity oneof: connection, header or cookie
Session affinity configuration for the backend group.
For details about the concept, see documentation.
If session affinity is configured, the backend group should contain exactly one active backend (i.e. with positive HttpBackend.backend_weight), its HttpBackend.backend_type should be TargetGroupsBackend, and its LoadBalancingConfig.load_balancing_mode should be MAGLEV_HASH. If any of these conditions are not met, session affinity will not work.
  connection ConnectionSessionAffinity
Connection-based session affinity configuration.
For now, a connection is defined only by an IP address of the client.
  header HeaderSessionAffinity
HTTP-header-field-based session affinity configuration.
  cookie CookieSessionAffinity
Cookie-based session affinity configuration.

HttpBackend

Field Description
name string
Required. Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9].
backend_weight google.protobuf.Int64Value
Backend weight. Traffic is distributed between backends of a backend group according to their weights.
Weights must be set either for all backends in a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends.
If the weight is non-positive, traffic is not sent to the backend.
load_balancing_config LoadBalancingConfig
Load balancing configuration for the backend.
port int64
Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive.
backend_type oneof: target_groups or storage_bucket
Reference to targets that belong to the backend.
A backend may be a set of target groups or an Object Storage bucket. For details about backend types, see documentation.
  target_groups TargetGroupsBackend
Target groups that belong to the backend. For details about target groups, see documentation.
  storage_bucket StorageBucketBackend
Object Storage bucket to use as the backend. For details about buckets, see documentation.
If a bucket is used as a backend, the list of bucket objects and the objects themselves must be publicly accessible. For instructions, see documentation.
healthchecks[] HealthCheck
Health checks to perform on targets from target groups. For details about health checking, see documentation.
If no health checks are specified, active health checking is not performed.
tls BackendTls
Settings for TLS connections between load balancer nodes and backend targets.
If specified, the load balancer establishes HTTPS (HTTP over TLS) connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted HTTP connections with targets.
use_http2 bool
Enables HTTP/2 usage in connections between load balancer nodes and backend targets.
Default value: false, HTTP/1.1 is used.

LoadBalancingConfig

Field Description
panic_threshold int64
Threshold for panic mode.
If percentage of healthy backends in the group drops below threshold, panic mode will be activated and traffic will be routed to all backends, regardless of their health check status. This helps to avoid overloading healthy backends. For details about panic mode, see documentation.
If the value is 0, panic mode will never be activated and traffic is routed only to healthy backends at all times.
Default value: 0. Acceptable values are 0 to 100, inclusive.
locality_aware_routing_percent int64
Percentage of traffic that a load balancer node sends to healthy backends in its availability zone. The rest is divided equally between other zones. For details about zone-aware routing, see documentation.
If there are no healthy backends in an availability zone, all the traffic is divided between other zones.
If strict_locality is true, the specified value is ignored. A load balancer node sends all the traffic within its availability zone, regardless of backends' health.
Default value: 0. Acceptable values are 0 to 100, inclusive.
strict_locality bool
Specifies whether a load balancer node should only send traffic to backends in its availability zone, regardless of their health, and ignore backends in other zones.
If set to true and there are no healthy backends in the zone, the node in this zone will respond to incoming traffic with errors. For details about strict locality, see documentation.
If strict_locality is true, the value specified in locality_aware_routing_percent is ignored.
Default value: false.
mode enum LoadBalancingMode
Load balancing mode for the backend.
For details about load balancing modes, see documentation.
  • ROUND_ROBIN: Round robin load balancing mode.
    All endpoints of the backend take their turns to receive requests attributed to the backend.
  • RANDOM: Random load balancing mode. Default value.
    For a request attributed to the backend, an endpoint that receives it is picked at random.
  • LEAST_REQUEST: Least request load balancing mode.
    To pick an endpoint that receives a request attributed to the backend, the power of two choices algorithm is used; that is, two endpoints are picked at random, and the request is sent to the one which has the fewest active requests.
  • MAGLEV_HASH: Maglev hashing load balancing mode.
    Each endpoint is hashed, and a hash table with 65537 rows is filled accordingly, so that every endpoint occupies the same amount of rows. An attribute of each request is also hashed by the same function (if session affinity is enabled for the backend group, the attribute to hash is specified in session affinity configuration). The row with the same number as the resulting value is looked up in the table to determine the endpoint that receives the request.
    If the backend group with session affinity enabled contains more than one backend with positive weight, endpoints for backends with MAGLEV_HASH load balancing mode are picked at RANDOM instead.

TargetGroupsBackend

Field Description
target_group_ids[] string
List of ID's of target groups that belong to the backend.
To get the ID's of all available target groups, make a TargetGroupService.List request. The number of elements must be greater than 0.

StorageBucketBackend

Field Description
bucket string
Required. Name of the bucket.

HealthCheck

Field Description
timeout google.protobuf.Duration
Required. Health check timeout.
The timeout is the time allowed for the target to respond to a check. If the target doesn't respond in time, the check is considered failed.
interval google.protobuf.Duration
Required. Base interval between consecutive health checks.
interval_jitter_percent double
healthy_threshold int64
Number of consecutive successful health checks required to mark an unhealthy target as healthy.
Both 0 and 1 values amount to one successful check required.
The value is ignored when a load balancer is initialized; a target is marked healthy after one successful check.
Default value: 0.
unhealthy_threshold int64
Number of consecutive failed health checks required to mark a healthy target as unhealthy.
Both 0 and 1 values amount to one unsuccessful check required.
The value is ignored if a health check is failed due to an HTTP 503 Service Unavailable response from the target (not applicable to TCP stream health checks). The target is immediately marked unhealthy.
Default value: 0.
healthcheck_port int64
Port used for health checks.
If not specified, the backend port (HttpBackend.port or GrpcBackend.port) is used for health checks. Acceptable values are 0 to 65535, inclusive.
healthcheck oneof: stream, http or grpc
Protocol-specific health check settings.
The protocols of the backend and of its health check may differ, e.g. a gRPC health check may be specified for an HTTP backend.
  stream StreamHealthCheck
TCP stream health check settings.
  http HttpHealthCheck
HTTP health check settings.
  grpc GrpcHealthCheck
gRPC health check settings.
transport_settings oneof: plaintext or tls
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  plaintext PlaintextTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  tls SecureTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.

StreamHealthCheck

Field Description
send Payload
Message sent to targets during TCP data transfer.
If not specified, no data is sent to the target.
receive Payload
Data that must be contained in the messages received from targets for a successful health check.
If not specified, no messages are expected from targets, and those that are received are not checked.

HttpHealthCheck

Field Description
host string
Value for the HTTP/1.1 Host header or the HTTP/2 :authority pseudo-header used in requests to targets.
path string
Required. HTTP path used in requests to targets: request URI for HTTP/1.1 request line or value for the HTTP/2 :path pseudo-header.
use_http2 bool
Enables HTTP/2 usage in health checks.
Default value: false, HTTP/1.1 is used.

GrpcHealthCheck

Field Description
service_name string
Name of the gRPC service to be checked.
If not specified, overall health is checked.
For details about the concept, see GRPC Health Checking Protocol.

PlaintextTransportSettings

SecureTransportSettings

Field Description
sni string
SNI string for TLS connections.
validation_context ValidationContext
Validation context for backend TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

BackendTls

Field Description
sni string
Server Name Indication (SNI) string for TLS connections.
validation_context ValidationContext
Validation context for TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

ConnectionSessionAffinity

Field Description
source_ip bool
Specifies whether an IP address of the client is used to define a connection for session affinity.

HeaderSessionAffinity

Field Description
header_name string
Name of the HTTP header field that is used for session affinity. The string length in characters must be 1-256.

CookieSessionAffinity

Field Description
name string
Name of the cookie that is used for session affinity. The string length in characters must be 1-256.
ttl google.protobuf.Duration
Maximum age of cookies that are generated for sessions.
If set to 0, session cookies are used, which are stored by clients in temporary memory and are deleted on client restarts.
If not set, the balancer does not generate cookies and only uses incoming ones for establishing session affinity.

GrpcBackendGroup

Field Description
backends[] GrpcBackend
List of gRPC backends.
session_affinity oneof: connection, header or cookie
Session affinity configuration for the backend group.
For details about the concept, see documentation.
If session affinity is configured, the backend group should contain exactly one active backend (i.e. with positive GrpcBackend.backend_weight), and its LoadBalancingConfig.load_balancing_mode should be MAGLEV_HASH. If any of these conditions are not met, session affinity will not work.
  connection ConnectionSessionAffinity
Connection-based session affinity configuration.
For now, a connection is defined only by an IP address of the client.
  header HeaderSessionAffinity
HTTP-header-field-based session affinity configuration.
  cookie CookieSessionAffinity
Cookie-based session affinity configuration.

GrpcBackend

Field Description
name string
Required. Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9].
backend_weight google.protobuf.Int64Value
Backend weight. Traffic is distributed between backends of a backend group according to their weights.
Weights must be set either for all backends of a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends.
If the weight is non-positive, traffic is not sent to the backend.
load_balancing_config LoadBalancingConfig
Load balancing configuration for the backend.
port int64
Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive.
backend_type oneof: target_groups
Reference to targets that belong to the backend. For now, targets are referenced via target groups.
  target_groups TargetGroupsBackend
Target groups that belong to the backend.
healthchecks[] HealthCheck
Health checks to perform on targets from target groups. For details about health checking, see documentation.
If no health checks are specified, active health checking is not performed.
tls BackendTls
Settings for TLS connections between load balancer nodes and backend targets.
If specified, the load balancer establishes HTTPS (HTTP over TLS) connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted HTTP connections with targets.

LoadBalancingConfig

Field Description
panic_threshold int64
Threshold for panic mode.
If percentage of healthy backends in the group drops below threshold, panic mode will be activated and traffic will be routed to all backends, regardless of their health check status. This helps to avoid overloading healthy backends. For details about panic mode, see documentation.
If the value is 0, panic mode will never be activated and traffic is routed only to healthy backends at all times.
Default value: 0. Acceptable values are 0 to 100, inclusive.
locality_aware_routing_percent int64
Percentage of traffic that a load balancer node sends to healthy backends in its availability zone. The rest is divided equally between other zones. For details about zone-aware routing, see documentation.
If there are no healthy backends in an availability zone, all the traffic is divided between other zones.
If strict_locality is true, the specified value is ignored. A load balancer node sends all the traffic within its availability zone, regardless of backends' health.
Default value: 0. Acceptable values are 0 to 100, inclusive.
strict_locality bool
Specifies whether a load balancer node should only send traffic to backends in its availability zone, regardless of their health, and ignore backends in other zones.
If set to true and there are no healthy backends in the zone, the node in this zone will respond to incoming traffic with errors. For details about strict locality, see documentation.
If strict_locality is true, the value specified in locality_aware_routing_percent is ignored.
Default value: false.
mode enum LoadBalancingMode
Load balancing mode for the backend.
For details about load balancing modes, see documentation.
  • ROUND_ROBIN: Round robin load balancing mode.
    All endpoints of the backend take their turns to receive requests attributed to the backend.
  • RANDOM: Random load balancing mode. Default value.
    For a request attributed to the backend, an endpoint that receives it is picked at random.
  • LEAST_REQUEST: Least request load balancing mode.
    To pick an endpoint that receives a request attributed to the backend, the power of two choices algorithm is used; that is, two endpoints are picked at random, and the request is sent to the one which has the fewest active requests.
  • MAGLEV_HASH: Maglev hashing load balancing mode.
    Each endpoint is hashed, and a hash table with 65537 rows is filled accordingly, so that every endpoint occupies the same amount of rows. An attribute of each request is also hashed by the same function (if session affinity is enabled for the backend group, the attribute to hash is specified in session affinity configuration). The row with the same number as the resulting value is looked up in the table to determine the endpoint that receives the request.
    If the backend group with session affinity enabled contains more than one backend with positive weight, endpoints for backends with MAGLEV_HASH load balancing mode are picked at RANDOM instead.

TargetGroupsBackend

Field Description
target_group_ids[] string
List of ID's of target groups that belong to the backend.
To get the ID's of all available target groups, make a TargetGroupService.List request. The number of elements must be greater than 0.

HealthCheck

Field Description
timeout google.protobuf.Duration
Required. Health check timeout.
The timeout is the time allowed for the target to respond to a check. If the target doesn't respond in time, the check is considered failed.
interval google.protobuf.Duration
Required. Base interval between consecutive health checks.
interval_jitter_percent double
healthy_threshold int64
Number of consecutive successful health checks required to mark an unhealthy target as healthy.
Both 0 and 1 values amount to one successful check required.
The value is ignored when a load balancer is initialized; a target is marked healthy after one successful check.
Default value: 0.
unhealthy_threshold int64
Number of consecutive failed health checks required to mark a healthy target as unhealthy.
Both 0 and 1 values amount to one unsuccessful check required.
The value is ignored if a health check is failed due to an HTTP 503 Service Unavailable response from the target (not applicable to TCP stream health checks). The target is immediately marked unhealthy.
Default value: 0.
healthcheck_port int64
Port used for health checks.
If not specified, the backend port (HttpBackend.port or GrpcBackend.port) is used for health checks. Acceptable values are 0 to 65535, inclusive.
healthcheck oneof: stream, http or grpc
Protocol-specific health check settings.
The protocols of the backend and of its health check may differ, e.g. a gRPC health check may be specified for an HTTP backend.
  stream StreamHealthCheck
TCP stream health check settings.
  http HttpHealthCheck
HTTP health check settings.
  grpc GrpcHealthCheck
gRPC health check settings.
transport_settings oneof: plaintext or tls
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  plaintext PlaintextTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  tls SecureTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.

StreamHealthCheck

Field Description
send Payload
Message sent to targets during TCP data transfer.
If not specified, no data is sent to the target.
receive Payload
Data that must be contained in the messages received from targets for a successful health check.
If not specified, no messages are expected from targets, and those that are received are not checked.

HttpHealthCheck

Field Description
host string
Value for the HTTP/1.1 Host header or the HTTP/2 :authority pseudo-header used in requests to targets.
path string
Required. HTTP path used in requests to targets: request URI for HTTP/1.1 request line or value for the HTTP/2 :path pseudo-header.
use_http2 bool
Enables HTTP/2 usage in health checks.
Default value: false, HTTP/1.1 is used.

GrpcHealthCheck

Field Description
service_name string
Name of the gRPC service to be checked.
If not specified, overall health is checked.
For details about the concept, see GRPC Health Checking Protocol.

PlaintextTransportSettings

SecureTransportSettings

Field Description
sni string
SNI string for TLS connections.
validation_context ValidationContext
Validation context for backend TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

BackendTls

Field Description
sni string
Server Name Indication (SNI) string for TLS connections.
validation_context ValidationContext
Validation context for TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

ConnectionSessionAffinity

Field Description
source_ip bool
Specifies whether an IP address of the client is used to define a connection for session affinity.

HeaderSessionAffinity

Field Description
header_name string
Name of the HTTP header field that is used for session affinity. The string length in characters must be 1-256.

CookieSessionAffinity

Field Description
name string
Name of the cookie that is used for session affinity. The string length in characters must be 1-256.
ttl google.protobuf.Duration
Maximum age of cookies that are generated for sessions.
If set to 0, session cookies are used, which are stored by clients in temporary memory and are deleted on client restarts.
If not set, the balancer does not generate cookies and only uses incoming ones for establishing session affinity.

StreamBackendGroup

Field Description
backends[] StreamBackend
List of stream (TCP) backends.
session_affinity oneof: connection
Session affinity configuration for the backend group.
For details about the concept, see documentation.
If session affinity is configured, the backend group should contain exactly one active backend (i.e. with positive HttpBackend.backend_weight), its HttpBackend.backend_type should be TargetGroupsBackend, and its LoadBalancingConfig.load_balancing_mode should be MAGLEV_HASH. If any of these conditions are not met, session affinity will not work.
  connection ConnectionSessionAffinity
Connection-based session affinity configuration.
For now, a connection is defined only by an IP address of the client.

StreamBackend

Field Description
name string
Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9].
backend_weight google.protobuf.Int64Value
Backend weight. Traffic is distributed between backends of a backend group according to their weights.
Weights must be set either for all backends in a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends.
If the weight is non-positive, traffic is not sent to the backend.
load_balancing_config LoadBalancingConfig
Load balancing configuration for the backend.
port int64
Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive.
backend_type oneof: target_groups
Reference to targets that belong to the backend.
  target_groups TargetGroupsBackend
Target groups that belong to the backend. For details about target groups, see documentation.
healthchecks[] HealthCheck
Health checks to perform on targets from target groups. For details about health checking, see documentation.
If no health checks are specified, active health checking is not performed.
tls BackendTls
Settings for TLS connections between load balancer nodes and backend targets.
If specified, the load balancer establishes TLS-encrypted TCP connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted TCP connections with targets.
enable_proxy_protocol bool
If set, proxy protocol will be enabled for this backend.

LoadBalancingConfig

Field Description
panic_threshold int64
Threshold for panic mode.
If percentage of healthy backends in the group drops below threshold, panic mode will be activated and traffic will be routed to all backends, regardless of their health check status. This helps to avoid overloading healthy backends. For details about panic mode, see documentation.
If the value is 0, panic mode will never be activated and traffic is routed only to healthy backends at all times.
Default value: 0. Acceptable values are 0 to 100, inclusive.
locality_aware_routing_percent int64
Percentage of traffic that a load balancer node sends to healthy backends in its availability zone. The rest is divided equally between other zones. For details about zone-aware routing, see documentation.
If there are no healthy backends in an availability zone, all the traffic is divided between other zones.
If strict_locality is true, the specified value is ignored. A load balancer node sends all the traffic within its availability zone, regardless of backends' health.
Default value: 0. Acceptable values are 0 to 100, inclusive.
strict_locality bool
Specifies whether a load balancer node should only send traffic to backends in its availability zone, regardless of their health, and ignore backends in other zones.
If set to true and there are no healthy backends in the zone, the node in this zone will respond to incoming traffic with errors. For details about strict locality, see documentation.
If strict_locality is true, the value specified in locality_aware_routing_percent is ignored.
Default value: false.
mode enum LoadBalancingMode
Load balancing mode for the backend.
For details about load balancing modes, see documentation.
  • ROUND_ROBIN: Round robin load balancing mode.
    All endpoints of the backend take their turns to receive requests attributed to the backend.
  • RANDOM: Random load balancing mode. Default value.
    For a request attributed to the backend, an endpoint that receives it is picked at random.
  • LEAST_REQUEST: Least request load balancing mode.
    To pick an endpoint that receives a request attributed to the backend, the power of two choices algorithm is used; that is, two endpoints are picked at random, and the request is sent to the one which has the fewest active requests.
  • MAGLEV_HASH: Maglev hashing load balancing mode.
    Each endpoint is hashed, and a hash table with 65537 rows is filled accordingly, so that every endpoint occupies the same amount of rows. An attribute of each request is also hashed by the same function (if session affinity is enabled for the backend group, the attribute to hash is specified in session affinity configuration). The row with the same number as the resulting value is looked up in the table to determine the endpoint that receives the request.
    If the backend group with session affinity enabled contains more than one backend with positive weight, endpoints for backends with MAGLEV_HASH load balancing mode are picked at RANDOM instead.

TargetGroupsBackend

Field Description
target_group_ids[] string
List of ID's of target groups that belong to the backend.
To get the ID's of all available target groups, make a TargetGroupService.List request. The number of elements must be greater than 0.

HealthCheck

Field Description
timeout google.protobuf.Duration
Required. Health check timeout.
The timeout is the time allowed for the target to respond to a check. If the target doesn't respond in time, the check is considered failed.
interval google.protobuf.Duration
Required. Base interval between consecutive health checks.
interval_jitter_percent double
healthy_threshold int64
Number of consecutive successful health checks required to mark an unhealthy target as healthy.
Both 0 and 1 values amount to one successful check required.
The value is ignored when a load balancer is initialized; a target is marked healthy after one successful check.
Default value: 0.
unhealthy_threshold int64
Number of consecutive failed health checks required to mark a healthy target as unhealthy.
Both 0 and 1 values amount to one unsuccessful check required.
The value is ignored if a health check is failed due to an HTTP 503 Service Unavailable response from the target (not applicable to TCP stream health checks). The target is immediately marked unhealthy.
Default value: 0.
healthcheck_port int64
Port used for health checks.
If not specified, the backend port (HttpBackend.port or GrpcBackend.port) is used for health checks. Acceptable values are 0 to 65535, inclusive.
healthcheck oneof: stream, http or grpc
Protocol-specific health check settings.
The protocols of the backend and of its health check may differ, e.g. a gRPC health check may be specified for an HTTP backend.
  stream StreamHealthCheck
TCP stream health check settings.
  http HttpHealthCheck
HTTP health check settings.
  grpc GrpcHealthCheck
gRPC health check settings.
transport_settings oneof: plaintext or tls
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  plaintext PlaintextTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  tls SecureTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.

StreamHealthCheck

Field Description
send Payload
Message sent to targets during TCP data transfer.
If not specified, no data is sent to the target.
receive Payload
Data that must be contained in the messages received from targets for a successful health check.
If not specified, no messages are expected from targets, and those that are received are not checked.

HttpHealthCheck

Field Description
host string
Value for the HTTP/1.1 Host header or the HTTP/2 :authority pseudo-header used in requests to targets.
path string
Required. HTTP path used in requests to targets: request URI for HTTP/1.1 request line or value for the HTTP/2 :path pseudo-header.
use_http2 bool
Enables HTTP/2 usage in health checks.
Default value: false, HTTP/1.1 is used.

GrpcHealthCheck

Field Description
service_name string
Name of the gRPC service to be checked.
If not specified, overall health is checked.
For details about the concept, see GRPC Health Checking Protocol.

PlaintextTransportSettings

SecureTransportSettings

Field Description
sni string
SNI string for TLS connections.
validation_context ValidationContext
Validation context for backend TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

BackendTls

Field Description
sni string
Server Name Indication (SNI) string for TLS connections.
validation_context ValidationContext
Validation context for TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

ConnectionSessionAffinity

Field Description
source_ip bool
Specifies whether an IP address of the client is used to define a connection for session affinity.

Create

Creates a backend group in the specified folder.

rpc Create (CreateBackendGroupRequest) returns (operation.Operation)

Metadata and response of Operation:

    Operation.metadata:CreateBackendGroupMetadata

    Operation.response:BackendGroup

CreateBackendGroupRequest

Field Description
folder_id string
Required. ID of the folder to create a backend group in.
To get the folder ID, make a yandex.cloud.resourcemanager.v1.FolderService.List request.
name string
Name of the backend group. The name must be unique within the folder. Value must match the regular expression ([a-z]([-a-z0-9]{0,61}[a-z0-9])?)?.
description string
Description of the backend group. The maximum string length in characters is 256.
labels map<string,string>
Backend group labels as key:value pairs. For details about the concept, see documentation. No more than 64 per resource. The maximum string length in characters for each value is 63. Each value must match the regular expression [-_./\\@0-9a-z]*. The string length in characters for each key must be 1-63. Each key must match the regular expression [a-z][-_./\\@0-9a-z]*.
backend oneof: http, grpc or stream
Backends that the backend group will consist of.
  http HttpBackendGroup
List of HTTP backends that the backend group will consist of.
  grpc GrpcBackendGroup
List of gRPC backends that the backend group consists of.
  stream StreamBackendGroup
List of stream (TCP) backends that the backend group consists of.

HttpBackendGroup

Field Description
backends[] HttpBackend
List of HTTP backends.
session_affinity oneof: connection, header or cookie
Session affinity configuration for the backend group.
For details about the concept, see documentation.
If session affinity is configured, the backend group should contain exactly one active backend (i.e. with positive HttpBackend.backend_weight), its HttpBackend.backend_type should be TargetGroupsBackend, and its LoadBalancingConfig.load_balancing_mode should be MAGLEV_HASH. If any of these conditions are not met, session affinity will not work.
  connection ConnectionSessionAffinity
Connection-based session affinity configuration.
For now, a connection is defined only by an IP address of the client.
  header HeaderSessionAffinity
HTTP-header-field-based session affinity configuration.
  cookie CookieSessionAffinity
Cookie-based session affinity configuration.

HttpBackend

Field Description
name string
Required. Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9].
backend_weight google.protobuf.Int64Value
Backend weight. Traffic is distributed between backends of a backend group according to their weights.
Weights must be set either for all backends in a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends.
If the weight is non-positive, traffic is not sent to the backend.
load_balancing_config LoadBalancingConfig
Load balancing configuration for the backend.
port int64
Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive.
backend_type oneof: target_groups or storage_bucket
Reference to targets that belong to the backend.
A backend may be a set of target groups or an Object Storage bucket. For details about backend types, see documentation.
  target_groups TargetGroupsBackend
Target groups that belong to the backend. For details about target groups, see documentation.
  storage_bucket StorageBucketBackend
Object Storage bucket to use as the backend. For details about buckets, see documentation.
If a bucket is used as a backend, the list of bucket objects and the objects themselves must be publicly accessible. For instructions, see documentation.
healthchecks[] HealthCheck
Health checks to perform on targets from target groups. For details about health checking, see documentation.
If no health checks are specified, active health checking is not performed.
tls BackendTls
Settings for TLS connections between load balancer nodes and backend targets.
If specified, the load balancer establishes HTTPS (HTTP over TLS) connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted HTTP connections with targets.
use_http2 bool
Enables HTTP/2 usage in connections between load balancer nodes and backend targets.
Default value: false, HTTP/1.1 is used.

LoadBalancingConfig

Field Description
panic_threshold int64
Threshold for panic mode.
If percentage of healthy backends in the group drops below threshold, panic mode will be activated and traffic will be routed to all backends, regardless of their health check status. This helps to avoid overloading healthy backends. For details about panic mode, see documentation.
If the value is 0, panic mode will never be activated and traffic is routed only to healthy backends at all times.
Default value: 0. Acceptable values are 0 to 100, inclusive.
locality_aware_routing_percent int64
Percentage of traffic that a load balancer node sends to healthy backends in its availability zone. The rest is divided equally between other zones. For details about zone-aware routing, see documentation.
If there are no healthy backends in an availability zone, all the traffic is divided between other zones.
If strict_locality is true, the specified value is ignored. A load balancer node sends all the traffic within its availability zone, regardless of backends' health.
Default value: 0. Acceptable values are 0 to 100, inclusive.
strict_locality bool
Specifies whether a load balancer node should only send traffic to backends in its availability zone, regardless of their health, and ignore backends in other zones.
If set to true and there are no healthy backends in the zone, the node in this zone will respond to incoming traffic with errors. For details about strict locality, see documentation.
If strict_locality is true, the value specified in locality_aware_routing_percent is ignored.
Default value: false.
mode enum LoadBalancingMode
Load balancing mode for the backend.
For details about load balancing modes, see documentation.
  • ROUND_ROBIN: Round robin load balancing mode.
    All endpoints of the backend take their turns to receive requests attributed to the backend.
  • RANDOM: Random load balancing mode. Default value.
    For a request attributed to the backend, an endpoint that receives it is picked at random.
  • LEAST_REQUEST: Least request load balancing mode.
    To pick an endpoint that receives a request attributed to the backend, the power of two choices algorithm is used; that is, two endpoints are picked at random, and the request is sent to the one which has the fewest active requests.
  • MAGLEV_HASH: Maglev hashing load balancing mode.
    Each endpoint is hashed, and a hash table with 65537 rows is filled accordingly, so that every endpoint occupies the same amount of rows. An attribute of each request is also hashed by the same function (if session affinity is enabled for the backend group, the attribute to hash is specified in session affinity configuration). The row with the same number as the resulting value is looked up in the table to determine the endpoint that receives the request.
    If the backend group with session affinity enabled contains more than one backend with positive weight, endpoints for backends with MAGLEV_HASH load balancing mode are picked at RANDOM instead.

TargetGroupsBackend

Field Description
target_group_ids[] string
List of ID's of target groups that belong to the backend.
To get the ID's of all available target groups, make a TargetGroupService.List request. The number of elements must be greater than 0.

StorageBucketBackend

Field Description
bucket string
Required. Name of the bucket.

HealthCheck

Field Description
timeout google.protobuf.Duration
Required. Health check timeout.
The timeout is the time allowed for the target to respond to a check. If the target doesn't respond in time, the check is considered failed.
interval google.protobuf.Duration
Required. Base interval between consecutive health checks.
interval_jitter_percent double
healthy_threshold int64
Number of consecutive successful health checks required to mark an unhealthy target as healthy.
Both 0 and 1 values amount to one successful check required.
The value is ignored when a load balancer is initialized; a target is marked healthy after one successful check.
Default value: 0.
unhealthy_threshold int64
Number of consecutive failed health checks required to mark a healthy target as unhealthy.
Both 0 and 1 values amount to one unsuccessful check required.
The value is ignored if a health check is failed due to an HTTP 503 Service Unavailable response from the target (not applicable to TCP stream health checks). The target is immediately marked unhealthy.
Default value: 0.
healthcheck_port int64
Port used for health checks.
If not specified, the backend port (HttpBackend.port or GrpcBackend.port) is used for health checks. Acceptable values are 0 to 65535, inclusive.
healthcheck oneof: stream, http or grpc
Protocol-specific health check settings.
The protocols of the backend and of its health check may differ, e.g. a gRPC health check may be specified for an HTTP backend.
  stream StreamHealthCheck
TCP stream health check settings.
  http HttpHealthCheck
HTTP health check settings.
  grpc GrpcHealthCheck
gRPC health check settings.
transport_settings oneof: plaintext or tls
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  plaintext PlaintextTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  tls SecureTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.

StreamHealthCheck

Field Description
send Payload
Message sent to targets during TCP data transfer.
If not specified, no data is sent to the target.
receive Payload
Data that must be contained in the messages received from targets for a successful health check.
If not specified, no messages are expected from targets, and those that are received are not checked.

HttpHealthCheck

Field Description
host string
Value for the HTTP/1.1 Host header or the HTTP/2 :authority pseudo-header used in requests to targets.
path string
Required. HTTP path used in requests to targets: request URI for HTTP/1.1 request line or value for the HTTP/2 :path pseudo-header.
use_http2 bool
Enables HTTP/2 usage in health checks.
Default value: false, HTTP/1.1 is used.

GrpcHealthCheck

Field Description
service_name string
Name of the gRPC service to be checked.
If not specified, overall health is checked.
For details about the concept, see GRPC Health Checking Protocol.

PlaintextTransportSettings

SecureTransportSettings

Field Description
sni string
SNI string for TLS connections.
validation_context ValidationContext
Validation context for backend TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

BackendTls

Field Description
sni string
Server Name Indication (SNI) string for TLS connections.
validation_context ValidationContext
Validation context for TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

ConnectionSessionAffinity

Field Description
source_ip bool
Specifies whether an IP address of the client is used to define a connection for session affinity.

HeaderSessionAffinity

Field Description
header_name string
Name of the HTTP header field that is used for session affinity. The string length in characters must be 1-256.

CookieSessionAffinity

Field Description
name string
Name of the cookie that is used for session affinity. The string length in characters must be 1-256.
ttl google.protobuf.Duration
Maximum age of cookies that are generated for sessions.
If set to 0, session cookies are used, which are stored by clients in temporary memory and are deleted on client restarts.
If not set, the balancer does not generate cookies and only uses incoming ones for establishing session affinity.

GrpcBackendGroup

Field Description
backends[] GrpcBackend
List of gRPC backends.
session_affinity oneof: connection, header or cookie
Session affinity configuration for the backend group.
For details about the concept, see documentation.
If session affinity is configured, the backend group should contain exactly one active backend (i.e. with positive GrpcBackend.backend_weight), and its LoadBalancingConfig.load_balancing_mode should be MAGLEV_HASH. If any of these conditions are not met, session affinity will not work.
  connection ConnectionSessionAffinity
Connection-based session affinity configuration.
For now, a connection is defined only by an IP address of the client.
  header HeaderSessionAffinity
HTTP-header-field-based session affinity configuration.
  cookie CookieSessionAffinity
Cookie-based session affinity configuration.

GrpcBackend

Field Description
name string
Required. Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9].
backend_weight google.protobuf.Int64Value
Backend weight. Traffic is distributed between backends of a backend group according to their weights.
Weights must be set either for all backends of a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends.
If the weight is non-positive, traffic is not sent to the backend.
load_balancing_config LoadBalancingConfig
Load balancing configuration for the backend.
port int64
Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive.
backend_type oneof: target_groups
Reference to targets that belong to the backend. For now, targets are referenced via target groups.
  target_groups TargetGroupsBackend
Target groups that belong to the backend.
healthchecks[] HealthCheck
Health checks to perform on targets from target groups. For details about health checking, see documentation.
If no health checks are specified, active health checking is not performed.
tls BackendTls
Settings for TLS connections between load balancer nodes and backend targets.
If specified, the load balancer establishes HTTPS (HTTP over TLS) connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted HTTP connections with targets.

LoadBalancingConfig

Field Description
panic_threshold int64
Threshold for panic mode.
If percentage of healthy backends in the group drops below threshold, panic mode will be activated and traffic will be routed to all backends, regardless of their health check status. This helps to avoid overloading healthy backends. For details about panic mode, see documentation.
If the value is 0, panic mode will never be activated and traffic is routed only to healthy backends at all times.
Default value: 0. Acceptable values are 0 to 100, inclusive.
locality_aware_routing_percent int64
Percentage of traffic that a load balancer node sends to healthy backends in its availability zone. The rest is divided equally between other zones. For details about zone-aware routing, see documentation.
If there are no healthy backends in an availability zone, all the traffic is divided between other zones.
If strict_locality is true, the specified value is ignored. A load balancer node sends all the traffic within its availability zone, regardless of backends' health.
Default value: 0. Acceptable values are 0 to 100, inclusive.
strict_locality bool
Specifies whether a load balancer node should only send traffic to backends in its availability zone, regardless of their health, and ignore backends in other zones.
If set to true and there are no healthy backends in the zone, the node in this zone will respond to incoming traffic with errors. For details about strict locality, see documentation.
If strict_locality is true, the value specified in locality_aware_routing_percent is ignored.
Default value: false.
mode enum LoadBalancingMode
Load balancing mode for the backend.
For details about load balancing modes, see documentation.
  • ROUND_ROBIN: Round robin load balancing mode.
    All endpoints of the backend take their turns to receive requests attributed to the backend.
  • RANDOM: Random load balancing mode. Default value.
    For a request attributed to the backend, an endpoint that receives it is picked at random.
  • LEAST_REQUEST: Least request load balancing mode.
    To pick an endpoint that receives a request attributed to the backend, the power of two choices algorithm is used; that is, two endpoints are picked at random, and the request is sent to the one which has the fewest active requests.
  • MAGLEV_HASH: Maglev hashing load balancing mode.
    Each endpoint is hashed, and a hash table with 65537 rows is filled accordingly, so that every endpoint occupies the same amount of rows. An attribute of each request is also hashed by the same function (if session affinity is enabled for the backend group, the attribute to hash is specified in session affinity configuration). The row with the same number as the resulting value is looked up in the table to determine the endpoint that receives the request.
    If the backend group with session affinity enabled contains more than one backend with positive weight, endpoints for backends with MAGLEV_HASH load balancing mode are picked at RANDOM instead.

TargetGroupsBackend

Field Description
target_group_ids[] string
List of ID's of target groups that belong to the backend.
To get the ID's of all available target groups, make a TargetGroupService.List request. The number of elements must be greater than 0.

HealthCheck

Field Description
timeout google.protobuf.Duration
Required. Health check timeout.
The timeout is the time allowed for the target to respond to a check. If the target doesn't respond in time, the check is considered failed.
interval google.protobuf.Duration
Required. Base interval between consecutive health checks.
interval_jitter_percent double
healthy_threshold int64
Number of consecutive successful health checks required to mark an unhealthy target as healthy.
Both 0 and 1 values amount to one successful check required.
The value is ignored when a load balancer is initialized; a target is marked healthy after one successful check.
Default value: 0.
unhealthy_threshold int64
Number of consecutive failed health checks required to mark a healthy target as unhealthy.
Both 0 and 1 values amount to one unsuccessful check required.
The value is ignored if a health check is failed due to an HTTP 503 Service Unavailable response from the target (not applicable to TCP stream health checks). The target is immediately marked unhealthy.
Default value: 0.
healthcheck_port int64
Port used for health checks.
If not specified, the backend port (HttpBackend.port or GrpcBackend.port) is used for health checks. Acceptable values are 0 to 65535, inclusive.
healthcheck oneof: stream, http or grpc
Protocol-specific health check settings.
The protocols of the backend and of its health check may differ, e.g. a gRPC health check may be specified for an HTTP backend.
  stream StreamHealthCheck
TCP stream health check settings.
  http HttpHealthCheck
HTTP health check settings.
  grpc GrpcHealthCheck
gRPC health check settings.
transport_settings oneof: plaintext or tls
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  plaintext PlaintextTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  tls SecureTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.

StreamHealthCheck

Field Description
send Payload
Message sent to targets during TCP data transfer.
If not specified, no data is sent to the target.
receive Payload
Data that must be contained in the messages received from targets for a successful health check.
If not specified, no messages are expected from targets, and those that are received are not checked.

HttpHealthCheck

Field Description
host string
Value for the HTTP/1.1 Host header or the HTTP/2 :authority pseudo-header used in requests to targets.
path string
Required. HTTP path used in requests to targets: request URI for HTTP/1.1 request line or value for the HTTP/2 :path pseudo-header.
use_http2 bool
Enables HTTP/2 usage in health checks.
Default value: false, HTTP/1.1 is used.

GrpcHealthCheck

Field Description
service_name string
Name of the gRPC service to be checked.
If not specified, overall health is checked.
For details about the concept, see GRPC Health Checking Protocol.

PlaintextTransportSettings

SecureTransportSettings

Field Description
sni string
SNI string for TLS connections.
validation_context ValidationContext
Validation context for backend TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

BackendTls

Field Description
sni string
Server Name Indication (SNI) string for TLS connections.
validation_context ValidationContext
Validation context for TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

ConnectionSessionAffinity

Field Description
source_ip bool
Specifies whether an IP address of the client is used to define a connection for session affinity.

HeaderSessionAffinity

Field Description
header_name string
Name of the HTTP header field that is used for session affinity. The string length in characters must be 1-256.

CookieSessionAffinity

Field Description
name string
Name of the cookie that is used for session affinity. The string length in characters must be 1-256.
ttl google.protobuf.Duration
Maximum age of cookies that are generated for sessions.
If set to 0, session cookies are used, which are stored by clients in temporary memory and are deleted on client restarts.
If not set, the balancer does not generate cookies and only uses incoming ones for establishing session affinity.

StreamBackendGroup

Field Description
backends[] StreamBackend
List of stream (TCP) backends.
session_affinity oneof: connection
Session affinity configuration for the backend group.
For details about the concept, see documentation.
If session affinity is configured, the backend group should contain exactly one active backend (i.e. with positive HttpBackend.backend_weight), its HttpBackend.backend_type should be TargetGroupsBackend, and its LoadBalancingConfig.load_balancing_mode should be MAGLEV_HASH. If any of these conditions are not met, session affinity will not work.
  connection ConnectionSessionAffinity
Connection-based session affinity configuration.
For now, a connection is defined only by an IP address of the client.

StreamBackend

Field Description
name string
Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9].
backend_weight google.protobuf.Int64Value
Backend weight. Traffic is distributed between backends of a backend group according to their weights.
Weights must be set either for all backends in a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends.
If the weight is non-positive, traffic is not sent to the backend.
load_balancing_config LoadBalancingConfig
Load balancing configuration for the backend.
port int64
Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive.
backend_type oneof: target_groups
Reference to targets that belong to the backend.
  target_groups TargetGroupsBackend
Target groups that belong to the backend. For details about target groups, see documentation.
healthchecks[] HealthCheck
Health checks to perform on targets from target groups. For details about health checking, see documentation.
If no health checks are specified, active health checking is not performed.
tls BackendTls
Settings for TLS connections between load balancer nodes and backend targets.
If specified, the load balancer establishes TLS-encrypted TCP connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted TCP connections with targets.
enable_proxy_protocol bool
If set, proxy protocol will be enabled for this backend.

LoadBalancingConfig

Field Description
panic_threshold int64
Threshold for panic mode.
If percentage of healthy backends in the group drops below threshold, panic mode will be activated and traffic will be routed to all backends, regardless of their health check status. This helps to avoid overloading healthy backends. For details about panic mode, see documentation.
If the value is 0, panic mode will never be activated and traffic is routed only to healthy backends at all times.
Default value: 0. Acceptable values are 0 to 100, inclusive.
locality_aware_routing_percent int64
Percentage of traffic that a load balancer node sends to healthy backends in its availability zone. The rest is divided equally between other zones. For details about zone-aware routing, see documentation.
If there are no healthy backends in an availability zone, all the traffic is divided between other zones.
If strict_locality is true, the specified value is ignored. A load balancer node sends all the traffic within its availability zone, regardless of backends' health.
Default value: 0. Acceptable values are 0 to 100, inclusive.
strict_locality bool
Specifies whether a load balancer node should only send traffic to backends in its availability zone, regardless of their health, and ignore backends in other zones.
If set to true and there are no healthy backends in the zone, the node in this zone will respond to incoming traffic with errors. For details about strict locality, see documentation.
If strict_locality is true, the value specified in locality_aware_routing_percent is ignored.
Default value: false.
mode enum LoadBalancingMode
Load balancing mode for the backend.
For details about load balancing modes, see documentation.
  • ROUND_ROBIN: Round robin load balancing mode.
    All endpoints of the backend take their turns to receive requests attributed to the backend.
  • RANDOM: Random load balancing mode. Default value.
    For a request attributed to the backend, an endpoint that receives it is picked at random.
  • LEAST_REQUEST: Least request load balancing mode.
    To pick an endpoint that receives a request attributed to the backend, the power of two choices algorithm is used; that is, two endpoints are picked at random, and the request is sent to the one which has the fewest active requests.
  • MAGLEV_HASH: Maglev hashing load balancing mode.
    Each endpoint is hashed, and a hash table with 65537 rows is filled accordingly, so that every endpoint occupies the same amount of rows. An attribute of each request is also hashed by the same function (if session affinity is enabled for the backend group, the attribute to hash is specified in session affinity configuration). The row with the same number as the resulting value is looked up in the table to determine the endpoint that receives the request.
    If the backend group with session affinity enabled contains more than one backend with positive weight, endpoints for backends with MAGLEV_HASH load balancing mode are picked at RANDOM instead.

TargetGroupsBackend

Field Description
target_group_ids[] string
List of ID's of target groups that belong to the backend.
To get the ID's of all available target groups, make a TargetGroupService.List request. The number of elements must be greater than 0.

HealthCheck

Field Description
timeout google.protobuf.Duration
Required. Health check timeout.
The timeout is the time allowed for the target to respond to a check. If the target doesn't respond in time, the check is considered failed.
interval google.protobuf.Duration
Required. Base interval between consecutive health checks.
interval_jitter_percent double
healthy_threshold int64
Number of consecutive successful health checks required to mark an unhealthy target as healthy.
Both 0 and 1 values amount to one successful check required.
The value is ignored when a load balancer is initialized; a target is marked healthy after one successful check.
Default value: 0.
unhealthy_threshold int64
Number of consecutive failed health checks required to mark a healthy target as unhealthy.
Both 0 and 1 values amount to one unsuccessful check required.
The value is ignored if a health check is failed due to an HTTP 503 Service Unavailable response from the target (not applicable to TCP stream health checks). The target is immediately marked unhealthy.
Default value: 0.
healthcheck_port int64
Port used for health checks.
If not specified, the backend port (HttpBackend.port or GrpcBackend.port) is used for health checks. Acceptable values are 0 to 65535, inclusive.
healthcheck oneof: stream, http or grpc
Protocol-specific health check settings.
The protocols of the backend and of its health check may differ, e.g. a gRPC health check may be specified for an HTTP backend.
  stream StreamHealthCheck
TCP stream health check settings.
  http HttpHealthCheck
HTTP health check settings.
  grpc GrpcHealthCheck
gRPC health check settings.
transport_settings oneof: plaintext or tls
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  plaintext PlaintextTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  tls SecureTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.

StreamHealthCheck

Field Description
send Payload
Message sent to targets during TCP data transfer.
If not specified, no data is sent to the target.
receive Payload
Data that must be contained in the messages received from targets for a successful health check.
If not specified, no messages are expected from targets, and those that are received are not checked.

HttpHealthCheck

Field Description
host string
Value for the HTTP/1.1 Host header or the HTTP/2 :authority pseudo-header used in requests to targets.
path string
Required. HTTP path used in requests to targets: request URI for HTTP/1.1 request line or value for the HTTP/2 :path pseudo-header.
use_http2 bool
Enables HTTP/2 usage in health checks.
Default value: false, HTTP/1.1 is used.

GrpcHealthCheck

Field Description
service_name string
Name of the gRPC service to be checked.
If not specified, overall health is checked.
For details about the concept, see GRPC Health Checking Protocol.

PlaintextTransportSettings

SecureTransportSettings

Field Description
sni string
SNI string for TLS connections.
validation_context ValidationContext
Validation context for backend TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

BackendTls

Field Description
sni string
Server Name Indication (SNI) string for TLS connections.
validation_context ValidationContext
Validation context for TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

ConnectionSessionAffinity

Field Description
source_ip bool
Specifies whether an IP address of the client is used to define a connection for session affinity.

Operation

Field Description
id string
ID of the operation.
description string
Description of the operation. 0-256 characters long.
created_at google.protobuf.Timestamp
Creation timestamp.
created_by string
ID of the user or service account who initiated the operation.
modified_at google.protobuf.Timestamp
The time when the Operation resource was last modified.
done bool
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 google.protobuf.Any<CreateBackendGroupMetadata>
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.
result oneof: error or response
The operation result. If done == false and there was no failure detected, neither error nor response is set. If done == false and there was a failure detected, error is set. If done == true, exactly one of error or response is set.
  error google.rpc.Status
The error result of the operation in case of failure or cancellation.
  response google.protobuf.Any<BackendGroup>
if operation finished successfully.

CreateBackendGroupMetadata

Field Description
backend_group_id string
ID of the backend group that is being created.

BackendGroup

Field Description
id string
ID of the backend group. Generated at creation time.
name string
Name of the backend group. The name is unique within the folder. The string length in characters is 3-63.
description string
Description of the backend group. The string is 0-256 characters long.
folder_id string
ID of the folder that the backend group belongs to.
labels map<string,string>
Backend group labels as key:value pairs. For details about the concept, see documentation. The maximum number of labels is 64.
backend oneof: http, grpc or stream
Backends that the backend group consists of.
  http HttpBackendGroup
List of HTTP backends that the backend group consists of.
  grpc GrpcBackendGroup
List of gRPC backends that the backend group consists of.
  stream StreamBackendGroup
List of stream (TCP) backends that the backend group consists of.
created_at google.protobuf.Timestamp
Creation timestamp.

HttpBackendGroup

Field Description
backends[] HttpBackend
List of HTTP backends.
session_affinity oneof: connection, header or cookie
Session affinity configuration for the backend group.
For details about the concept, see documentation.
If session affinity is configured, the backend group should contain exactly one active backend (i.e. with positive HttpBackend.backend_weight), its HttpBackend.backend_type should be TargetGroupsBackend, and its LoadBalancingConfig.load_balancing_mode should be MAGLEV_HASH. If any of these conditions are not met, session affinity will not work.
  connection ConnectionSessionAffinity
Connection-based session affinity configuration.
For now, a connection is defined only by an IP address of the client.
  header HeaderSessionAffinity
HTTP-header-field-based session affinity configuration.
  cookie CookieSessionAffinity
Cookie-based session affinity configuration.

HttpBackend

Field Description
name string
Required. Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9].
backend_weight google.protobuf.Int64Value
Backend weight. Traffic is distributed between backends of a backend group according to their weights.
Weights must be set either for all backends in a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends.
If the weight is non-positive, traffic is not sent to the backend.
load_balancing_config LoadBalancingConfig
Load balancing configuration for the backend.
port int64
Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive.
backend_type oneof: target_groups or storage_bucket
Reference to targets that belong to the backend.
A backend may be a set of target groups or an Object Storage bucket. For details about backend types, see documentation.
  target_groups TargetGroupsBackend
Target groups that belong to the backend. For details about target groups, see documentation.
  storage_bucket StorageBucketBackend
Object Storage bucket to use as the backend. For details about buckets, see documentation.
If a bucket is used as a backend, the list of bucket objects and the objects themselves must be publicly accessible. For instructions, see documentation.
healthchecks[] HealthCheck
Health checks to perform on targets from target groups. For details about health checking, see documentation.
If no health checks are specified, active health checking is not performed.
tls BackendTls
Settings for TLS connections between load balancer nodes and backend targets.
If specified, the load balancer establishes HTTPS (HTTP over TLS) connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted HTTP connections with targets.
use_http2 bool
Enables HTTP/2 usage in connections between load balancer nodes and backend targets.
Default value: false, HTTP/1.1 is used.

LoadBalancingConfig

Field Description
panic_threshold int64
Threshold for panic mode.
If percentage of healthy backends in the group drops below threshold, panic mode will be activated and traffic will be routed to all backends, regardless of their health check status. This helps to avoid overloading healthy backends. For details about panic mode, see documentation.
If the value is 0, panic mode will never be activated and traffic is routed only to healthy backends at all times.
Default value: 0. Acceptable values are 0 to 100, inclusive.
locality_aware_routing_percent int64
Percentage of traffic that a load balancer node sends to healthy backends in its availability zone. The rest is divided equally between other zones. For details about zone-aware routing, see documentation.
If there are no healthy backends in an availability zone, all the traffic is divided between other zones.
If strict_locality is true, the specified value is ignored. A load balancer node sends all the traffic within its availability zone, regardless of backends' health.
Default value: 0. Acceptable values are 0 to 100, inclusive.
strict_locality bool
Specifies whether a load balancer node should only send traffic to backends in its availability zone, regardless of their health, and ignore backends in other zones.
If set to true and there are no healthy backends in the zone, the node in this zone will respond to incoming traffic with errors. For details about strict locality, see documentation.
If strict_locality is true, the value specified in locality_aware_routing_percent is ignored.
Default value: false.
mode enum LoadBalancingMode
Load balancing mode for the backend.
For details about load balancing modes, see documentation.
  • ROUND_ROBIN: Round robin load balancing mode.
    All endpoints of the backend take their turns to receive requests attributed to the backend.
  • RANDOM: Random load balancing mode. Default value.
    For a request attributed to the backend, an endpoint that receives it is picked at random.
  • LEAST_REQUEST: Least request load balancing mode.
    To pick an endpoint that receives a request attributed to the backend, the power of two choices algorithm is used; that is, two endpoints are picked at random, and the request is sent to the one which has the fewest active requests.
  • MAGLEV_HASH: Maglev hashing load balancing mode.
    Each endpoint is hashed, and a hash table with 65537 rows is filled accordingly, so that every endpoint occupies the same amount of rows. An attribute of each request is also hashed by the same function (if session affinity is enabled for the backend group, the attribute to hash is specified in session affinity configuration). The row with the same number as the resulting value is looked up in the table to determine the endpoint that receives the request.
    If the backend group with session affinity enabled contains more than one backend with positive weight, endpoints for backends with MAGLEV_HASH load balancing mode are picked at RANDOM instead.

TargetGroupsBackend

Field Description
target_group_ids[] string
List of ID's of target groups that belong to the backend.
To get the ID's of all available target groups, make a TargetGroupService.List request. The number of elements must be greater than 0.

StorageBucketBackend

Field Description
bucket string
Required. Name of the bucket.

HealthCheck

Field Description
timeout google.protobuf.Duration
Required. Health check timeout.
The timeout is the time allowed for the target to respond to a check. If the target doesn't respond in time, the check is considered failed.
interval google.protobuf.Duration
Required. Base interval between consecutive health checks.
interval_jitter_percent double
healthy_threshold int64
Number of consecutive successful health checks required to mark an unhealthy target as healthy.
Both 0 and 1 values amount to one successful check required.
The value is ignored when a load balancer is initialized; a target is marked healthy after one successful check.
Default value: 0.
unhealthy_threshold int64
Number of consecutive failed health checks required to mark a healthy target as unhealthy.
Both 0 and 1 values amount to one unsuccessful check required.
The value is ignored if a health check is failed due to an HTTP 503 Service Unavailable response from the target (not applicable to TCP stream health checks). The target is immediately marked unhealthy.
Default value: 0.
healthcheck_port int64
Port used for health checks.
If not specified, the backend port (HttpBackend.port or GrpcBackend.port) is used for health checks. Acceptable values are 0 to 65535, inclusive.
healthcheck oneof: stream, http or grpc
Protocol-specific health check settings.
The protocols of the backend and of its health check may differ, e.g. a gRPC health check may be specified for an HTTP backend.
  stream StreamHealthCheck
TCP stream health check settings.
  http HttpHealthCheck
HTTP health check settings.
  grpc GrpcHealthCheck
gRPC health check settings.
transport_settings oneof: plaintext or tls
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  plaintext PlaintextTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  tls SecureTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.

StreamHealthCheck

Field Description
send Payload
Message sent to targets during TCP data transfer.
If not specified, no data is sent to the target.
receive Payload
Data that must be contained in the messages received from targets for a successful health check.
If not specified, no messages are expected from targets, and those that are received are not checked.

HttpHealthCheck

Field Description
host string
Value for the HTTP/1.1 Host header or the HTTP/2 :authority pseudo-header used in requests to targets.
path string
Required. HTTP path used in requests to targets: request URI for HTTP/1.1 request line or value for the HTTP/2 :path pseudo-header.
use_http2 bool
Enables HTTP/2 usage in health checks.
Default value: false, HTTP/1.1 is used.

GrpcHealthCheck

Field Description
service_name string
Name of the gRPC service to be checked.
If not specified, overall health is checked.
For details about the concept, see GRPC Health Checking Protocol.

PlaintextTransportSettings

SecureTransportSettings

Field Description
sni string
SNI string for TLS connections.
validation_context ValidationContext
Validation context for backend TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

BackendTls

Field Description
sni string
Server Name Indication (SNI) string for TLS connections.
validation_context ValidationContext
Validation context for TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

ConnectionSessionAffinity

Field Description
source_ip bool
Specifies whether an IP address of the client is used to define a connection for session affinity.

HeaderSessionAffinity

Field Description
header_name string
Name of the HTTP header field that is used for session affinity. The string length in characters must be 1-256.

CookieSessionAffinity

Field Description
name string
Name of the cookie that is used for session affinity. The string length in characters must be 1-256.
ttl google.protobuf.Duration
Maximum age of cookies that are generated for sessions.
If set to 0, session cookies are used, which are stored by clients in temporary memory and are deleted on client restarts.
If not set, the balancer does not generate cookies and only uses incoming ones for establishing session affinity.

GrpcBackendGroup

Field Description
backends[] GrpcBackend
List of gRPC backends.
session_affinity oneof: connection, header or cookie
Session affinity configuration for the backend group.
For details about the concept, see documentation.
If session affinity is configured, the backend group should contain exactly one active backend (i.e. with positive GrpcBackend.backend_weight), and its LoadBalancingConfig.load_balancing_mode should be MAGLEV_HASH. If any of these conditions are not met, session affinity will not work.
  connection ConnectionSessionAffinity
Connection-based session affinity configuration.
For now, a connection is defined only by an IP address of the client.
  header HeaderSessionAffinity
HTTP-header-field-based session affinity configuration.
  cookie CookieSessionAffinity
Cookie-based session affinity configuration.

GrpcBackend

Field Description
name string
Required. Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9].
backend_weight google.protobuf.Int64Value
Backend weight. Traffic is distributed between backends of a backend group according to their weights.
Weights must be set either for all backends of a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends.
If the weight is non-positive, traffic is not sent to the backend.
load_balancing_config LoadBalancingConfig
Load balancing configuration for the backend.
port int64
Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive.
backend_type oneof: target_groups
Reference to targets that belong to the backend. For now, targets are referenced via target groups.
  target_groups TargetGroupsBackend
Target groups that belong to the backend.
healthchecks[] HealthCheck
Health checks to perform on targets from target groups. For details about health checking, see documentation.
If no health checks are specified, active health checking is not performed.
tls BackendTls
Settings for TLS connections between load balancer nodes and backend targets.
If specified, the load balancer establishes HTTPS (HTTP over TLS) connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted HTTP connections with targets.

LoadBalancingConfig

Field Description
panic_threshold int64
Threshold for panic mode.
If percentage of healthy backends in the group drops below threshold, panic mode will be activated and traffic will be routed to all backends, regardless of their health check status. This helps to avoid overloading healthy backends. For details about panic mode, see documentation.
If the value is 0, panic mode will never be activated and traffic is routed only to healthy backends at all times.
Default value: 0. Acceptable values are 0 to 100, inclusive.
locality_aware_routing_percent int64
Percentage of traffic that a load balancer node sends to healthy backends in its availability zone. The rest is divided equally between other zones. For details about zone-aware routing, see documentation.
If there are no healthy backends in an availability zone, all the traffic is divided between other zones.
If strict_locality is true, the specified value is ignored. A load balancer node sends all the traffic within its availability zone, regardless of backends' health.
Default value: 0. Acceptable values are 0 to 100, inclusive.
strict_locality bool
Specifies whether a load balancer node should only send traffic to backends in its availability zone, regardless of their health, and ignore backends in other zones.
If set to true and there are no healthy backends in the zone, the node in this zone will respond to incoming traffic with errors. For details about strict locality, see documentation.
If strict_locality is true, the value specified in locality_aware_routing_percent is ignored.
Default value: false.
mode enum LoadBalancingMode
Load balancing mode for the backend.
For details about load balancing modes, see documentation.
  • ROUND_ROBIN: Round robin load balancing mode.
    All endpoints of the backend take their turns to receive requests attributed to the backend.
  • RANDOM: Random load balancing mode. Default value.
    For a request attributed to the backend, an endpoint that receives it is picked at random.
  • LEAST_REQUEST: Least request load balancing mode.
    To pick an endpoint that receives a request attributed to the backend, the power of two choices algorithm is used; that is, two endpoints are picked at random, and the request is sent to the one which has the fewest active requests.
  • MAGLEV_HASH: Maglev hashing load balancing mode.
    Each endpoint is hashed, and a hash table with 65537 rows is filled accordingly, so that every endpoint occupies the same amount of rows. An attribute of each request is also hashed by the same function (if session affinity is enabled for the backend group, the attribute to hash is specified in session affinity configuration). The row with the same number as the resulting value is looked up in the table to determine the endpoint that receives the request.
    If the backend group with session affinity enabled contains more than one backend with positive weight, endpoints for backends with MAGLEV_HASH load balancing mode are picked at RANDOM instead.

TargetGroupsBackend

Field Description
target_group_ids[] string
List of ID's of target groups that belong to the backend.
To get the ID's of all available target groups, make a TargetGroupService.List request. The number of elements must be greater than 0.

HealthCheck

Field Description
timeout google.protobuf.Duration
Required. Health check timeout.
The timeout is the time allowed for the target to respond to a check. If the target doesn't respond in time, the check is considered failed.
interval google.protobuf.Duration
Required. Base interval between consecutive health checks.
interval_jitter_percent double
healthy_threshold int64
Number of consecutive successful health checks required to mark an unhealthy target as healthy.
Both 0 and 1 values amount to one successful check required.
The value is ignored when a load balancer is initialized; a target is marked healthy after one successful check.
Default value: 0.
unhealthy_threshold int64
Number of consecutive failed health checks required to mark a healthy target as unhealthy.
Both 0 and 1 values amount to one unsuccessful check required.
The value is ignored if a health check is failed due to an HTTP 503 Service Unavailable response from the target (not applicable to TCP stream health checks). The target is immediately marked unhealthy.
Default value: 0.
healthcheck_port int64
Port used for health checks.
If not specified, the backend port (HttpBackend.port or GrpcBackend.port) is used for health checks. Acceptable values are 0 to 65535, inclusive.
healthcheck oneof: stream, http or grpc
Protocol-specific health check settings.
The protocols of the backend and of its health check may differ, e.g. a gRPC health check may be specified for an HTTP backend.
  stream StreamHealthCheck
TCP stream health check settings.
  http HttpHealthCheck
HTTP health check settings.
  grpc GrpcHealthCheck
gRPC health check settings.
transport_settings oneof: plaintext or tls
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  plaintext PlaintextTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  tls SecureTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.

StreamHealthCheck

Field Description
send Payload
Message sent to targets during TCP data transfer.
If not specified, no data is sent to the target.
receive Payload
Data that must be contained in the messages received from targets for a successful health check.
If not specified, no messages are expected from targets, and those that are received are not checked.

HttpHealthCheck

Field Description
host string
Value for the HTTP/1.1 Host header or the HTTP/2 :authority pseudo-header used in requests to targets.
path string
Required. HTTP path used in requests to targets: request URI for HTTP/1.1 request line or value for the HTTP/2 :path pseudo-header.
use_http2 bool
Enables HTTP/2 usage in health checks.
Default value: false, HTTP/1.1 is used.

GrpcHealthCheck

Field Description
service_name string
Name of the gRPC service to be checked.
If not specified, overall health is checked.
For details about the concept, see GRPC Health Checking Protocol.

PlaintextTransportSettings

SecureTransportSettings

Field Description
sni string
SNI string for TLS connections.
validation_context ValidationContext
Validation context for backend TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

BackendTls

Field Description
sni string
Server Name Indication (SNI) string for TLS connections.
validation_context ValidationContext
Validation context for TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

ConnectionSessionAffinity

Field Description
source_ip bool
Specifies whether an IP address of the client is used to define a connection for session affinity.

HeaderSessionAffinity

Field Description
header_name string
Name of the HTTP header field that is used for session affinity. The string length in characters must be 1-256.

CookieSessionAffinity

Field Description
name string
Name of the cookie that is used for session affinity. The string length in characters must be 1-256.
ttl google.protobuf.Duration
Maximum age of cookies that are generated for sessions.
If set to 0, session cookies are used, which are stored by clients in temporary memory and are deleted on client restarts.
If not set, the balancer does not generate cookies and only uses incoming ones for establishing session affinity.

StreamBackendGroup

Field Description
backends[] StreamBackend
List of stream (TCP) backends.
session_affinity oneof: connection
Session affinity configuration for the backend group.
For details about the concept, see documentation.
If session affinity is configured, the backend group should contain exactly one active backend (i.e. with positive HttpBackend.backend_weight), its HttpBackend.backend_type should be TargetGroupsBackend, and its LoadBalancingConfig.load_balancing_mode should be MAGLEV_HASH. If any of these conditions are not met, session affinity will not work.
  connection ConnectionSessionAffinity
Connection-based session affinity configuration.
For now, a connection is defined only by an IP address of the client.

StreamBackend

Field Description
name string
Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9].
backend_weight google.protobuf.Int64Value
Backend weight. Traffic is distributed between backends of a backend group according to their weights.
Weights must be set either for all backends in a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends.
If the weight is non-positive, traffic is not sent to the backend.
load_balancing_config LoadBalancingConfig
Load balancing configuration for the backend.
port int64
Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive.
backend_type oneof: target_groups
Reference to targets that belong to the backend.
  target_groups TargetGroupsBackend
Target groups that belong to the backend. For details about target groups, see documentation.
healthchecks[] HealthCheck
Health checks to perform on targets from target groups. For details about health checking, see documentation.
If no health checks are specified, active health checking is not performed.
tls BackendTls
Settings for TLS connections between load balancer nodes and backend targets.
If specified, the load balancer establishes TLS-encrypted TCP connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted TCP connections with targets.
enable_proxy_protocol bool
If set, proxy protocol will be enabled for this backend.

LoadBalancingConfig

Field Description
panic_threshold int64
Threshold for panic mode.
If percentage of healthy backends in the group drops below threshold, panic mode will be activated and traffic will be routed to all backends, regardless of their health check status. This helps to avoid overloading healthy backends. For details about panic mode, see documentation.
If the value is 0, panic mode will never be activated and traffic is routed only to healthy backends at all times.
Default value: 0. Acceptable values are 0 to 100, inclusive.
locality_aware_routing_percent int64
Percentage of traffic that a load balancer node sends to healthy backends in its availability zone. The rest is divided equally between other zones. For details about zone-aware routing, see documentation.
If there are no healthy backends in an availability zone, all the traffic is divided between other zones.
If strict_locality is true, the specified value is ignored. A load balancer node sends all the traffic within its availability zone, regardless of backends' health.
Default value: 0. Acceptable values are 0 to 100, inclusive.
strict_locality bool
Specifies whether a load balancer node should only send traffic to backends in its availability zone, regardless of their health, and ignore backends in other zones.
If set to true and there are no healthy backends in the zone, the node in this zone will respond to incoming traffic with errors. For details about strict locality, see documentation.
If strict_locality is true, the value specified in locality_aware_routing_percent is ignored.
Default value: false.
mode enum LoadBalancingMode
Load balancing mode for the backend.
For details about load balancing modes, see documentation.
  • ROUND_ROBIN: Round robin load balancing mode.
    All endpoints of the backend take their turns to receive requests attributed to the backend.
  • RANDOM: Random load balancing mode. Default value.
    For a request attributed to the backend, an endpoint that receives it is picked at random.
  • LEAST_REQUEST: Least request load balancing mode.
    To pick an endpoint that receives a request attributed to the backend, the power of two choices algorithm is used; that is, two endpoints are picked at random, and the request is sent to the one which has the fewest active requests.
  • MAGLEV_HASH: Maglev hashing load balancing mode.
    Each endpoint is hashed, and a hash table with 65537 rows is filled accordingly, so that every endpoint occupies the same amount of rows. An attribute of each request is also hashed by the same function (if session affinity is enabled for the backend group, the attribute to hash is specified in session affinity configuration). The row with the same number as the resulting value is looked up in the table to determine the endpoint that receives the request.
    If the backend group with session affinity enabled contains more than one backend with positive weight, endpoints for backends with MAGLEV_HASH load balancing mode are picked at RANDOM instead.

TargetGroupsBackend

Field Description
target_group_ids[] string
List of ID's of target groups that belong to the backend.
To get the ID's of all available target groups, make a TargetGroupService.List request. The number of elements must be greater than 0.

HealthCheck

Field Description
timeout google.protobuf.Duration
Required. Health check timeout.
The timeout is the time allowed for the target to respond to a check. If the target doesn't respond in time, the check is considered failed.
interval google.protobuf.Duration
Required. Base interval between consecutive health checks.
interval_jitter_percent double
healthy_threshold int64
Number of consecutive successful health checks required to mark an unhealthy target as healthy.
Both 0 and 1 values amount to one successful check required.
The value is ignored when a load balancer is initialized; a target is marked healthy after one successful check.
Default value: 0.
unhealthy_threshold int64
Number of consecutive failed health checks required to mark a healthy target as unhealthy.
Both 0 and 1 values amount to one unsuccessful check required.
The value is ignored if a health check is failed due to an HTTP 503 Service Unavailable response from the target (not applicable to TCP stream health checks). The target is immediately marked unhealthy.
Default value: 0.
healthcheck_port int64
Port used for health checks.
If not specified, the backend port (HttpBackend.port or GrpcBackend.port) is used for health checks. Acceptable values are 0 to 65535, inclusive.
healthcheck oneof: stream, http or grpc
Protocol-specific health check settings.
The protocols of the backend and of its health check may differ, e.g. a gRPC health check may be specified for an HTTP backend.
  stream StreamHealthCheck
TCP stream health check settings.
  http HttpHealthCheck
HTTP health check settings.
  grpc GrpcHealthCheck
gRPC health check settings.
transport_settings oneof: plaintext or tls
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  plaintext PlaintextTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  tls SecureTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.

StreamHealthCheck

Field Description
send Payload
Message sent to targets during TCP data transfer.
If not specified, no data is sent to the target.
receive Payload
Data that must be contained in the messages received from targets for a successful health check.
If not specified, no messages are expected from targets, and those that are received are not checked.

HttpHealthCheck

Field Description
host string
Value for the HTTP/1.1 Host header or the HTTP/2 :authority pseudo-header used in requests to targets.
path string
Required. HTTP path used in requests to targets: request URI for HTTP/1.1 request line or value for the HTTP/2 :path pseudo-header.
use_http2 bool
Enables HTTP/2 usage in health checks.
Default value: false, HTTP/1.1 is used.

GrpcHealthCheck

Field Description
service_name string
Name of the gRPC service to be checked.
If not specified, overall health is checked.
For details about the concept, see GRPC Health Checking Protocol.

PlaintextTransportSettings

SecureTransportSettings

Field Description
sni string
SNI string for TLS connections.
validation_context ValidationContext
Validation context for backend TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

BackendTls

Field Description
sni string
Server Name Indication (SNI) string for TLS connections.
validation_context ValidationContext
Validation context for TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

ConnectionSessionAffinity

Field Description
source_ip bool
Specifies whether an IP address of the client is used to define a connection for session affinity.

Update

Updates the specified backend group.

rpc Update (UpdateBackendGroupRequest) returns (operation.Operation)

Metadata and response of Operation:

    Operation.metadata:UpdateBackendGroupMetadata

    Operation.response:BackendGroup

UpdateBackendGroupRequest

Field Description
backend_group_id string
Required. ID of the backend group to update.
To get the backend group ID, make a BackendGroupService.List request.
update_mask google.protobuf.FieldMask
Field mask that specifies which attributes of the backend group should be updated.
name string
New name for the backend group. The name must be unique within the folder. Value must match the regular expression ([a-z]([-a-z0-9]{0,61}[a-z0-9])?)?.
description string
New description of the backend group. The maximum string length in characters is 256.
labels map<string,string>
Backend group labels as key:value pairs. For details about the concept, see documentation.
Existing set of labels is completely replaced by the provided set, so if you just want to add or remove a label:
  1. Get the current set of labels with a BackendGroupService.Get request.
  2. Add or remove a label in this set.
  3. Send the new set in this field.
No more than 64 per resource. The maximum string length in characters for each value is 63. Each value must match the regular expression [-_./\\@0-9a-z]*. The string length in characters for each key must be 1-63. Each key must match the regular expression [a-z][-_./\\@0-9a-z]*.
backend oneof: http, grpc or stream
New list of backends in the backend group.
Existing list of backends is completely replaced by the specified list, so if you just want to add or remove a target, make a BackendGroupService.AddBackend request or a BackendGroupService.RemoveBackend request.
  http HttpBackendGroup
New list of HTTP backends that the backend group will consist of.
  grpc GrpcBackendGroup
New list of gRPC backends that the backend group will consist of.
  stream StreamBackendGroup
New list of stream (TCP) backends that the backend group will consist of.

HttpBackendGroup

Field Description
backends[] HttpBackend
List of HTTP backends.
session_affinity oneof: connection, header or cookie
Session affinity configuration for the backend group.
For details about the concept, see documentation.
If session affinity is configured, the backend group should contain exactly one active backend (i.e. with positive HttpBackend.backend_weight), its HttpBackend.backend_type should be TargetGroupsBackend, and its LoadBalancingConfig.load_balancing_mode should be MAGLEV_HASH. If any of these conditions are not met, session affinity will not work.
  connection ConnectionSessionAffinity
Connection-based session affinity configuration.
For now, a connection is defined only by an IP address of the client.
  header HeaderSessionAffinity
HTTP-header-field-based session affinity configuration.
  cookie CookieSessionAffinity
Cookie-based session affinity configuration.

HttpBackend

Field Description
name string
Required. Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9].
backend_weight google.protobuf.Int64Value
Backend weight. Traffic is distributed between backends of a backend group according to their weights.
Weights must be set either for all backends in a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends.
If the weight is non-positive, traffic is not sent to the backend.
load_balancing_config LoadBalancingConfig
Load balancing configuration for the backend.
port int64
Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive.
backend_type oneof: target_groups or storage_bucket
Reference to targets that belong to the backend.
A backend may be a set of target groups or an Object Storage bucket. For details about backend types, see documentation.
  target_groups TargetGroupsBackend
Target groups that belong to the backend. For details about target groups, see documentation.
  storage_bucket StorageBucketBackend
Object Storage bucket to use as the backend. For details about buckets, see documentation.
If a bucket is used as a backend, the list of bucket objects and the objects themselves must be publicly accessible. For instructions, see documentation.
healthchecks[] HealthCheck
Health checks to perform on targets from target groups. For details about health checking, see documentation.
If no health checks are specified, active health checking is not performed.
tls BackendTls
Settings for TLS connections between load balancer nodes and backend targets.
If specified, the load balancer establishes HTTPS (HTTP over TLS) connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted HTTP connections with targets.
use_http2 bool
Enables HTTP/2 usage in connections between load balancer nodes and backend targets.
Default value: false, HTTP/1.1 is used.

LoadBalancingConfig

Field Description
panic_threshold int64
Threshold for panic mode.
If percentage of healthy backends in the group drops below threshold, panic mode will be activated and traffic will be routed to all backends, regardless of their health check status. This helps to avoid overloading healthy backends. For details about panic mode, see documentation.
If the value is 0, panic mode will never be activated and traffic is routed only to healthy backends at all times.
Default value: 0. Acceptable values are 0 to 100, inclusive.
locality_aware_routing_percent int64
Percentage of traffic that a load balancer node sends to healthy backends in its availability zone. The rest is divided equally between other zones. For details about zone-aware routing, see documentation.
If there are no healthy backends in an availability zone, all the traffic is divided between other zones.
If strict_locality is true, the specified value is ignored. A load balancer node sends all the traffic within its availability zone, regardless of backends' health.
Default value: 0. Acceptable values are 0 to 100, inclusive.
strict_locality bool
Specifies whether a load balancer node should only send traffic to backends in its availability zone, regardless of their health, and ignore backends in other zones.
If set to true and there are no healthy backends in the zone, the node in this zone will respond to incoming traffic with errors. For details about strict locality, see documentation.
If strict_locality is true, the value specified in locality_aware_routing_percent is ignored.
Default value: false.
mode enum LoadBalancingMode
Load balancing mode for the backend.
For details about load balancing modes, see documentation.
  • ROUND_ROBIN: Round robin load balancing mode.
    All endpoints of the backend take their turns to receive requests attributed to the backend.
  • RANDOM: Random load balancing mode. Default value.
    For a request attributed to the backend, an endpoint that receives it is picked at random.
  • LEAST_REQUEST: Least request load balancing mode.
    To pick an endpoint that receives a request attributed to the backend, the power of two choices algorithm is used; that is, two endpoints are picked at random, and the request is sent to the one which has the fewest active requests.
  • MAGLEV_HASH: Maglev hashing load balancing mode.
    Each endpoint is hashed, and a hash table with 65537 rows is filled accordingly, so that every endpoint occupies the same amount of rows. An attribute of each request is also hashed by the same function (if session affinity is enabled for the backend group, the attribute to hash is specified in session affinity configuration). The row with the same number as the resulting value is looked up in the table to determine the endpoint that receives the request.
    If the backend group with session affinity enabled contains more than one backend with positive weight, endpoints for backends with MAGLEV_HASH load balancing mode are picked at RANDOM instead.

TargetGroupsBackend

Field Description
target_group_ids[] string
List of ID's of target groups that belong to the backend.
To get the ID's of all available target groups, make a TargetGroupService.List request. The number of elements must be greater than 0.

StorageBucketBackend

Field Description
bucket string
Required. Name of the bucket.

HealthCheck

Field Description
timeout google.protobuf.Duration
Required. Health check timeout.
The timeout is the time allowed for the target to respond to a check. If the target doesn't respond in time, the check is considered failed.
interval google.protobuf.Duration
Required. Base interval between consecutive health checks.
interval_jitter_percent double
healthy_threshold int64
Number of consecutive successful health checks required to mark an unhealthy target as healthy.
Both 0 and 1 values amount to one successful check required.
The value is ignored when a load balancer is initialized; a target is marked healthy after one successful check.
Default value: 0.
unhealthy_threshold int64
Number of consecutive failed health checks required to mark a healthy target as unhealthy.
Both 0 and 1 values amount to one unsuccessful check required.
The value is ignored if a health check is failed due to an HTTP 503 Service Unavailable response from the target (not applicable to TCP stream health checks). The target is immediately marked unhealthy.
Default value: 0.
healthcheck_port int64
Port used for health checks.
If not specified, the backend port (HttpBackend.port or GrpcBackend.port) is used for health checks. Acceptable values are 0 to 65535, inclusive.
healthcheck oneof: stream, http or grpc
Protocol-specific health check settings.
The protocols of the backend and of its health check may differ, e.g. a gRPC health check may be specified for an HTTP backend.
  stream StreamHealthCheck
TCP stream health check settings.
  http HttpHealthCheck
HTTP health check settings.
  grpc GrpcHealthCheck
gRPC health check settings.
transport_settings oneof: plaintext or tls
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  plaintext PlaintextTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  tls SecureTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.

StreamHealthCheck

Field Description
send Payload
Message sent to targets during TCP data transfer.
If not specified, no data is sent to the target.
receive Payload
Data that must be contained in the messages received from targets for a successful health check.
If not specified, no messages are expected from targets, and those that are received are not checked.

HttpHealthCheck

Field Description
host string
Value for the HTTP/1.1 Host header or the HTTP/2 :authority pseudo-header used in requests to targets.
path string
Required. HTTP path used in requests to targets: request URI for HTTP/1.1 request line or value for the HTTP/2 :path pseudo-header.
use_http2 bool
Enables HTTP/2 usage in health checks.
Default value: false, HTTP/1.1 is used.

GrpcHealthCheck

Field Description
service_name string
Name of the gRPC service to be checked.
If not specified, overall health is checked.
For details about the concept, see GRPC Health Checking Protocol.

PlaintextTransportSettings

SecureTransportSettings

Field Description
sni string
SNI string for TLS connections.
validation_context ValidationContext
Validation context for backend TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

BackendTls

Field Description
sni string
Server Name Indication (SNI) string for TLS connections.
validation_context ValidationContext
Validation context for TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

ConnectionSessionAffinity

Field Description
source_ip bool
Specifies whether an IP address of the client is used to define a connection for session affinity.

HeaderSessionAffinity

Field Description
header_name string
Name of the HTTP header field that is used for session affinity. The string length in characters must be 1-256.

CookieSessionAffinity

Field Description
name string
Name of the cookie that is used for session affinity. The string length in characters must be 1-256.
ttl google.protobuf.Duration
Maximum age of cookies that are generated for sessions.
If set to 0, session cookies are used, which are stored by clients in temporary memory and are deleted on client restarts.
If not set, the balancer does not generate cookies and only uses incoming ones for establishing session affinity.

GrpcBackendGroup

Field Description
backends[] GrpcBackend
List of gRPC backends.
session_affinity oneof: connection, header or cookie
Session affinity configuration for the backend group.
For details about the concept, see documentation.
If session affinity is configured, the backend group should contain exactly one active backend (i.e. with positive GrpcBackend.backend_weight), and its LoadBalancingConfig.load_balancing_mode should be MAGLEV_HASH. If any of these conditions are not met, session affinity will not work.
  connection ConnectionSessionAffinity
Connection-based session affinity configuration.
For now, a connection is defined only by an IP address of the client.
  header HeaderSessionAffinity
HTTP-header-field-based session affinity configuration.
  cookie CookieSessionAffinity
Cookie-based session affinity configuration.

GrpcBackend

Field Description
name string
Required. Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9].
backend_weight google.protobuf.Int64Value
Backend weight. Traffic is distributed between backends of a backend group according to their weights.
Weights must be set either for all backends of a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends.
If the weight is non-positive, traffic is not sent to the backend.
load_balancing_config LoadBalancingConfig
Load balancing configuration for the backend.
port int64
Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive.
backend_type oneof: target_groups
Reference to targets that belong to the backend. For now, targets are referenced via target groups.
  target_groups TargetGroupsBackend
Target groups that belong to the backend.
healthchecks[] HealthCheck
Health checks to perform on targets from target groups. For details about health checking, see documentation.
If no health checks are specified, active health checking is not performed.
tls BackendTls
Settings for TLS connections between load balancer nodes and backend targets.
If specified, the load balancer establishes HTTPS (HTTP over TLS) connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted HTTP connections with targets.

LoadBalancingConfig

Field Description
panic_threshold int64
Threshold for panic mode.
If percentage of healthy backends in the group drops below threshold, panic mode will be activated and traffic will be routed to all backends, regardless of their health check status. This helps to avoid overloading healthy backends. For details about panic mode, see documentation.
If the value is 0, panic mode will never be activated and traffic is routed only to healthy backends at all times.
Default value: 0. Acceptable values are 0 to 100, inclusive.
locality_aware_routing_percent int64
Percentage of traffic that a load balancer node sends to healthy backends in its availability zone. The rest is divided equally between other zones. For details about zone-aware routing, see documentation.
If there are no healthy backends in an availability zone, all the traffic is divided between other zones.
If strict_locality is true, the specified value is ignored. A load balancer node sends all the traffic within its availability zone, regardless of backends' health.
Default value: 0. Acceptable values are 0 to 100, inclusive.
strict_locality bool
Specifies whether a load balancer node should only send traffic to backends in its availability zone, regardless of their health, and ignore backends in other zones.
If set to true and there are no healthy backends in the zone, the node in this zone will respond to incoming traffic with errors. For details about strict locality, see documentation.
If strict_locality is true, the value specified in locality_aware_routing_percent is ignored.
Default value: false.
mode enum LoadBalancingMode
Load balancing mode for the backend.
For details about load balancing modes, see documentation.
  • ROUND_ROBIN: Round robin load balancing mode.
    All endpoints of the backend take their turns to receive requests attributed to the backend.
  • RANDOM: Random load balancing mode. Default value.
    For a request attributed to the backend, an endpoint that receives it is picked at random.
  • LEAST_REQUEST: Least request load balancing mode.
    To pick an endpoint that receives a request attributed to the backend, the power of two choices algorithm is used; that is, two endpoints are picked at random, and the request is sent to the one which has the fewest active requests.
  • MAGLEV_HASH: Maglev hashing load balancing mode.
    Each endpoint is hashed, and a hash table with 65537 rows is filled accordingly, so that every endpoint occupies the same amount of rows. An attribute of each request is also hashed by the same function (if session affinity is enabled for the backend group, the attribute to hash is specified in session affinity configuration). The row with the same number as the resulting value is looked up in the table to determine the endpoint that receives the request.
    If the backend group with session affinity enabled contains more than one backend with positive weight, endpoints for backends with MAGLEV_HASH load balancing mode are picked at RANDOM instead.

TargetGroupsBackend

Field Description
target_group_ids[] string
List of ID's of target groups that belong to the backend.
To get the ID's of all available target groups, make a TargetGroupService.List request. The number of elements must be greater than 0.

HealthCheck

Field Description
timeout google.protobuf.Duration
Required. Health check timeout.
The timeout is the time allowed for the target to respond to a check. If the target doesn't respond in time, the check is considered failed.
interval google.protobuf.Duration
Required. Base interval between consecutive health checks.
interval_jitter_percent double
healthy_threshold int64
Number of consecutive successful health checks required to mark an unhealthy target as healthy.
Both 0 and 1 values amount to one successful check required.
The value is ignored when a load balancer is initialized; a target is marked healthy after one successful check.
Default value: 0.
unhealthy_threshold int64
Number of consecutive failed health checks required to mark a healthy target as unhealthy.
Both 0 and 1 values amount to one unsuccessful check required.
The value is ignored if a health check is failed due to an HTTP 503 Service Unavailable response from the target (not applicable to TCP stream health checks). The target is immediately marked unhealthy.
Default value: 0.
healthcheck_port int64
Port used for health checks.
If not specified, the backend port (HttpBackend.port or GrpcBackend.port) is used for health checks. Acceptable values are 0 to 65535, inclusive.
healthcheck oneof: stream, http or grpc
Protocol-specific health check settings.
The protocols of the backend and of its health check may differ, e.g. a gRPC health check may be specified for an HTTP backend.
  stream StreamHealthCheck
TCP stream health check settings.
  http HttpHealthCheck
HTTP health check settings.
  grpc GrpcHealthCheck
gRPC health check settings.
transport_settings oneof: plaintext or tls
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  plaintext PlaintextTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  tls SecureTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.

StreamHealthCheck

Field Description
send Payload
Message sent to targets during TCP data transfer.
If not specified, no data is sent to the target.
receive Payload
Data that must be contained in the messages received from targets for a successful health check.
If not specified, no messages are expected from targets, and those that are received are not checked.

HttpHealthCheck

Field Description
host string
Value for the HTTP/1.1 Host header or the HTTP/2 :authority pseudo-header used in requests to targets.
path string
Required. HTTP path used in requests to targets: request URI for HTTP/1.1 request line or value for the HTTP/2 :path pseudo-header.
use_http2 bool
Enables HTTP/2 usage in health checks.
Default value: false, HTTP/1.1 is used.

GrpcHealthCheck

Field Description
service_name string
Name of the gRPC service to be checked.
If not specified, overall health is checked.
For details about the concept, see GRPC Health Checking Protocol.

PlaintextTransportSettings

SecureTransportSettings

Field Description
sni string
SNI string for TLS connections.
validation_context ValidationContext
Validation context for backend TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

BackendTls

Field Description
sni string
Server Name Indication (SNI) string for TLS connections.
validation_context ValidationContext
Validation context for TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

ConnectionSessionAffinity

Field Description
source_ip bool
Specifies whether an IP address of the client is used to define a connection for session affinity.

HeaderSessionAffinity

Field Description
header_name string
Name of the HTTP header field that is used for session affinity. The string length in characters must be 1-256.

CookieSessionAffinity

Field Description
name string
Name of the cookie that is used for session affinity. The string length in characters must be 1-256.
ttl google.protobuf.Duration
Maximum age of cookies that are generated for sessions.
If set to 0, session cookies are used, which are stored by clients in temporary memory and are deleted on client restarts.
If not set, the balancer does not generate cookies and only uses incoming ones for establishing session affinity.

StreamBackendGroup

Field Description
backends[] StreamBackend
List of stream (TCP) backends.
session_affinity oneof: connection
Session affinity configuration for the backend group.
For details about the concept, see documentation.
If session affinity is configured, the backend group should contain exactly one active backend (i.e. with positive HttpBackend.backend_weight), its HttpBackend.backend_type should be TargetGroupsBackend, and its LoadBalancingConfig.load_balancing_mode should be MAGLEV_HASH. If any of these conditions are not met, session affinity will not work.
  connection ConnectionSessionAffinity
Connection-based session affinity configuration.
For now, a connection is defined only by an IP address of the client.

StreamBackend

Field Description
name string
Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9].
backend_weight google.protobuf.Int64Value
Backend weight. Traffic is distributed between backends of a backend group according to their weights.
Weights must be set either for all backends in a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends.
If the weight is non-positive, traffic is not sent to the backend.
load_balancing_config LoadBalancingConfig
Load balancing configuration for the backend.
port int64
Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive.
backend_type oneof: target_groups
Reference to targets that belong to the backend.
  target_groups TargetGroupsBackend
Target groups that belong to the backend. For details about target groups, see documentation.
healthchecks[] HealthCheck
Health checks to perform on targets from target groups. For details about health checking, see documentation.
If no health checks are specified, active health checking is not performed.
tls BackendTls
Settings for TLS connections between load balancer nodes and backend targets.
If specified, the load balancer establishes TLS-encrypted TCP connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted TCP connections with targets.
enable_proxy_protocol bool
If set, proxy protocol will be enabled for this backend.

LoadBalancingConfig

Field Description
panic_threshold int64
Threshold for panic mode.
If percentage of healthy backends in the group drops below threshold, panic mode will be activated and traffic will be routed to all backends, regardless of their health check status. This helps to avoid overloading healthy backends. For details about panic mode, see documentation.
If the value is 0, panic mode will never be activated and traffic is routed only to healthy backends at all times.
Default value: 0. Acceptable values are 0 to 100, inclusive.
locality_aware_routing_percent int64
Percentage of traffic that a load balancer node sends to healthy backends in its availability zone. The rest is divided equally between other zones. For details about zone-aware routing, see documentation.
If there are no healthy backends in an availability zone, all the traffic is divided between other zones.
If strict_locality is true, the specified value is ignored. A load balancer node sends all the traffic within its availability zone, regardless of backends' health.
Default value: 0. Acceptable values are 0 to 100, inclusive.
strict_locality bool
Specifies whether a load balancer node should only send traffic to backends in its availability zone, regardless of their health, and ignore backends in other zones.
If set to true and there are no healthy backends in the zone, the node in this zone will respond to incoming traffic with errors. For details about strict locality, see documentation.
If strict_locality is true, the value specified in locality_aware_routing_percent is ignored.
Default value: false.
mode enum LoadBalancingMode
Load balancing mode for the backend.
For details about load balancing modes, see documentation.
  • ROUND_ROBIN: Round robin load balancing mode.
    All endpoints of the backend take their turns to receive requests attributed to the backend.
  • RANDOM: Random load balancing mode. Default value.
    For a request attributed to the backend, an endpoint that receives it is picked at random.
  • LEAST_REQUEST: Least request load balancing mode.
    To pick an endpoint that receives a request attributed to the backend, the power of two choices algorithm is used; that is, two endpoints are picked at random, and the request is sent to the one which has the fewest active requests.
  • MAGLEV_HASH: Maglev hashing load balancing mode.
    Each endpoint is hashed, and a hash table with 65537 rows is filled accordingly, so that every endpoint occupies the same amount of rows. An attribute of each request is also hashed by the same function (if session affinity is enabled for the backend group, the attribute to hash is specified in session affinity configuration). The row with the same number as the resulting value is looked up in the table to determine the endpoint that receives the request.
    If the backend group with session affinity enabled contains more than one backend with positive weight, endpoints for backends with MAGLEV_HASH load balancing mode are picked at RANDOM instead.

TargetGroupsBackend

Field Description
target_group_ids[] string
List of ID's of target groups that belong to the backend.
To get the ID's of all available target groups, make a TargetGroupService.List request. The number of elements must be greater than 0.

HealthCheck

Field Description
timeout google.protobuf.Duration
Required. Health check timeout.
The timeout is the time allowed for the target to respond to a check. If the target doesn't respond in time, the check is considered failed.
interval google.protobuf.Duration
Required. Base interval between consecutive health checks.
interval_jitter_percent double
healthy_threshold int64
Number of consecutive successful health checks required to mark an unhealthy target as healthy.
Both 0 and 1 values amount to one successful check required.
The value is ignored when a load balancer is initialized; a target is marked healthy after one successful check.
Default value: 0.
unhealthy_threshold int64
Number of consecutive failed health checks required to mark a healthy target as unhealthy.
Both 0 and 1 values amount to one unsuccessful check required.
The value is ignored if a health check is failed due to an HTTP 503 Service Unavailable response from the target (not applicable to TCP stream health checks). The target is immediately marked unhealthy.
Default value: 0.
healthcheck_port int64
Port used for health checks.
If not specified, the backend port (HttpBackend.port or GrpcBackend.port) is used for health checks. Acceptable values are 0 to 65535, inclusive.
healthcheck oneof: stream, http or grpc
Protocol-specific health check settings.
The protocols of the backend and of its health check may differ, e.g. a gRPC health check may be specified for an HTTP backend.
  stream StreamHealthCheck
TCP stream health check settings.
  http HttpHealthCheck
HTTP health check settings.
  grpc GrpcHealthCheck
gRPC health check settings.
transport_settings oneof: plaintext or tls
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  plaintext PlaintextTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  tls SecureTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.

StreamHealthCheck

Field Description
send Payload
Message sent to targets during TCP data transfer.
If not specified, no data is sent to the target.
receive Payload
Data that must be contained in the messages received from targets for a successful health check.
If not specified, no messages are expected from targets, and those that are received are not checked.

HttpHealthCheck

Field Description
host string
Value for the HTTP/1.1 Host header or the HTTP/2 :authority pseudo-header used in requests to targets.
path string
Required. HTTP path used in requests to targets: request URI for HTTP/1.1 request line or value for the HTTP/2 :path pseudo-header.
use_http2 bool
Enables HTTP/2 usage in health checks.
Default value: false, HTTP/1.1 is used.

GrpcHealthCheck

Field Description
service_name string
Name of the gRPC service to be checked.
If not specified, overall health is checked.
For details about the concept, see GRPC Health Checking Protocol.

PlaintextTransportSettings

SecureTransportSettings

Field Description
sni string
SNI string for TLS connections.
validation_context ValidationContext
Validation context for backend TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

BackendTls

Field Description
sni string
Server Name Indication (SNI) string for TLS connections.
validation_context ValidationContext
Validation context for TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

ConnectionSessionAffinity

Field Description
source_ip bool
Specifies whether an IP address of the client is used to define a connection for session affinity.

Operation

Field Description
id string
ID of the operation.
description string
Description of the operation. 0-256 characters long.
created_at google.protobuf.Timestamp
Creation timestamp.
created_by string
ID of the user or service account who initiated the operation.
modified_at google.protobuf.Timestamp
The time when the Operation resource was last modified.
done bool
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 google.protobuf.Any<UpdateBackendGroupMetadata>
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.
result oneof: error or response
The operation result. If done == false and there was no failure detected, neither error nor response is set. If done == false and there was a failure detected, error is set. If done == true, exactly one of error or response is set.
  error google.rpc.Status
The error result of the operation in case of failure or cancellation.
  response google.protobuf.Any<BackendGroup>
if operation finished successfully.

UpdateBackendGroupMetadata

Field Description
backend_group_id string
ID of the backend group that is being updated.

BackendGroup

Field Description
id string
ID of the backend group. Generated at creation time.
name string
Name of the backend group. The name is unique within the folder. The string length in characters is 3-63.
description string
Description of the backend group. The string is 0-256 characters long.
folder_id string
ID of the folder that the backend group belongs to.
labels map<string,string>
Backend group labels as key:value pairs. For details about the concept, see documentation. The maximum number of labels is 64.
backend oneof: http, grpc or stream
Backends that the backend group consists of.
  http HttpBackendGroup
List of HTTP backends that the backend group consists of.
  grpc GrpcBackendGroup
List of gRPC backends that the backend group consists of.
  stream StreamBackendGroup
List of stream (TCP) backends that the backend group consists of.
created_at google.protobuf.Timestamp
Creation timestamp.

HttpBackendGroup

Field Description
backends[] HttpBackend
List of HTTP backends.
session_affinity oneof: connection, header or cookie
Session affinity configuration for the backend group.
For details about the concept, see documentation.
If session affinity is configured, the backend group should contain exactly one active backend (i.e. with positive HttpBackend.backend_weight), its HttpBackend.backend_type should be TargetGroupsBackend, and its LoadBalancingConfig.load_balancing_mode should be MAGLEV_HASH. If any of these conditions are not met, session affinity will not work.
  connection ConnectionSessionAffinity
Connection-based session affinity configuration.
For now, a connection is defined only by an IP address of the client.
  header HeaderSessionAffinity
HTTP-header-field-based session affinity configuration.
  cookie CookieSessionAffinity
Cookie-based session affinity configuration.

HttpBackend

Field Description
name string
Required. Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9].
backend_weight google.protobuf.Int64Value
Backend weight. Traffic is distributed between backends of a backend group according to their weights.
Weights must be set either for all backends in a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends.
If the weight is non-positive, traffic is not sent to the backend.
load_balancing_config LoadBalancingConfig
Load balancing configuration for the backend.
port int64
Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive.
backend_type oneof: target_groups or storage_bucket
Reference to targets that belong to the backend.
A backend may be a set of target groups or an Object Storage bucket. For details about backend types, see documentation.
  target_groups TargetGroupsBackend
Target groups that belong to the backend. For details about target groups, see documentation.
  storage_bucket StorageBucketBackend
Object Storage bucket to use as the backend. For details about buckets, see documentation.
If a bucket is used as a backend, the list of bucket objects and the objects themselves must be publicly accessible. For instructions, see documentation.
healthchecks[] HealthCheck
Health checks to perform on targets from target groups. For details about health checking, see documentation.
If no health checks are specified, active health checking is not performed.
tls BackendTls
Settings for TLS connections between load balancer nodes and backend targets.
If specified, the load balancer establishes HTTPS (HTTP over TLS) connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted HTTP connections with targets.
use_http2 bool
Enables HTTP/2 usage in connections between load balancer nodes and backend targets.
Default value: false, HTTP/1.1 is used.

LoadBalancingConfig

Field Description
panic_threshold int64
Threshold for panic mode.
If percentage of healthy backends in the group drops below threshold, panic mode will be activated and traffic will be routed to all backends, regardless of their health check status. This helps to avoid overloading healthy backends. For details about panic mode, see documentation.
If the value is 0, panic mode will never be activated and traffic is routed only to healthy backends at all times.
Default value: 0. Acceptable values are 0 to 100, inclusive.
locality_aware_routing_percent int64
Percentage of traffic that a load balancer node sends to healthy backends in its availability zone. The rest is divided equally between other zones. For details about zone-aware routing, see documentation.
If there are no healthy backends in an availability zone, all the traffic is divided between other zones.
If strict_locality is true, the specified value is ignored. A load balancer node sends all the traffic within its availability zone, regardless of backends' health.
Default value: 0. Acceptable values are 0 to 100, inclusive.
strict_locality bool
Specifies whether a load balancer node should only send traffic to backends in its availability zone, regardless of their health, and ignore backends in other zones.
If set to true and there are no healthy backends in the zone, the node in this zone will respond to incoming traffic with errors. For details about strict locality, see documentation.
If strict_locality is true, the value specified in locality_aware_routing_percent is ignored.
Default value: false.
mode enum LoadBalancingMode
Load balancing mode for the backend.
For details about load balancing modes, see documentation.
  • ROUND_ROBIN: Round robin load balancing mode.
    All endpoints of the backend take their turns to receive requests attributed to the backend.
  • RANDOM: Random load balancing mode. Default value.
    For a request attributed to the backend, an endpoint that receives it is picked at random.
  • LEAST_REQUEST: Least request load balancing mode.
    To pick an endpoint that receives a request attributed to the backend, the power of two choices algorithm is used; that is, two endpoints are picked at random, and the request is sent to the one which has the fewest active requests.
  • MAGLEV_HASH: Maglev hashing load balancing mode.
    Each endpoint is hashed, and a hash table with 65537 rows is filled accordingly, so that every endpoint occupies the same amount of rows. An attribute of each request is also hashed by the same function (if session affinity is enabled for the backend group, the attribute to hash is specified in session affinity configuration). The row with the same number as the resulting value is looked up in the table to determine the endpoint that receives the request.
    If the backend group with session affinity enabled contains more than one backend with positive weight, endpoints for backends with MAGLEV_HASH load balancing mode are picked at RANDOM instead.

TargetGroupsBackend

Field Description
target_group_ids[] string
List of ID's of target groups that belong to the backend.
To get the ID's of all available target groups, make a TargetGroupService.List request. The number of elements must be greater than 0.

StorageBucketBackend

Field Description
bucket string
Required. Name of the bucket.

HealthCheck

Field Description
timeout google.protobuf.Duration
Required. Health check timeout.
The timeout is the time allowed for the target to respond to a check. If the target doesn't respond in time, the check is considered failed.
interval google.protobuf.Duration
Required. Base interval between consecutive health checks.
interval_jitter_percent double
healthy_threshold int64
Number of consecutive successful health checks required to mark an unhealthy target as healthy.
Both 0 and 1 values amount to one successful check required.
The value is ignored when a load balancer is initialized; a target is marked healthy after one successful check.
Default value: 0.
unhealthy_threshold int64
Number of consecutive failed health checks required to mark a healthy target as unhealthy.
Both 0 and 1 values amount to one unsuccessful check required.
The value is ignored if a health check is failed due to an HTTP 503 Service Unavailable response from the target (not applicable to TCP stream health checks). The target is immediately marked unhealthy.
Default value: 0.
healthcheck_port int64
Port used for health checks.
If not specified, the backend port (HttpBackend.port or GrpcBackend.port) is used for health checks. Acceptable values are 0 to 65535, inclusive.
healthcheck oneof: stream, http or grpc
Protocol-specific health check settings.
The protocols of the backend and of its health check may differ, e.g. a gRPC health check may be specified for an HTTP backend.
  stream StreamHealthCheck
TCP stream health check settings.
  http HttpHealthCheck
HTTP health check settings.
  grpc GrpcHealthCheck
gRPC health check settings.
transport_settings oneof: plaintext or tls
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  plaintext PlaintextTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  tls SecureTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.

StreamHealthCheck

Field Description
send Payload
Message sent to targets during TCP data transfer.
If not specified, no data is sent to the target.
receive Payload
Data that must be contained in the messages received from targets for a successful health check.
If not specified, no messages are expected from targets, and those that are received are not checked.

HttpHealthCheck

Field Description
host string
Value for the HTTP/1.1 Host header or the HTTP/2 :authority pseudo-header used in requests to targets.
path string
Required. HTTP path used in requests to targets: request URI for HTTP/1.1 request line or value for the HTTP/2 :path pseudo-header.
use_http2 bool
Enables HTTP/2 usage in health checks.
Default value: false, HTTP/1.1 is used.

GrpcHealthCheck

Field Description
service_name string
Name of the gRPC service to be checked.
If not specified, overall health is checked.
For details about the concept, see GRPC Health Checking Protocol.

PlaintextTransportSettings

SecureTransportSettings

Field Description
sni string
SNI string for TLS connections.
validation_context ValidationContext
Validation context for backend TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

BackendTls

Field Description
sni string
Server Name Indication (SNI) string for TLS connections.
validation_context ValidationContext
Validation context for TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

ConnectionSessionAffinity

Field Description
source_ip bool
Specifies whether an IP address of the client is used to define a connection for session affinity.

HeaderSessionAffinity

Field Description
header_name string
Name of the HTTP header field that is used for session affinity. The string length in characters must be 1-256.

CookieSessionAffinity

Field Description
name string
Name of the cookie that is used for session affinity. The string length in characters must be 1-256.
ttl google.protobuf.Duration
Maximum age of cookies that are generated for sessions.
If set to 0, session cookies are used, which are stored by clients in temporary memory and are deleted on client restarts.
If not set, the balancer does not generate cookies and only uses incoming ones for establishing session affinity.

GrpcBackendGroup

Field Description
backends[] GrpcBackend
List of gRPC backends.
session_affinity oneof: connection, header or cookie
Session affinity configuration for the backend group.
For details about the concept, see documentation.
If session affinity is configured, the backend group should contain exactly one active backend (i.e. with positive GrpcBackend.backend_weight), and its LoadBalancingConfig.load_balancing_mode should be MAGLEV_HASH. If any of these conditions are not met, session affinity will not work.
  connection ConnectionSessionAffinity
Connection-based session affinity configuration.
For now, a connection is defined only by an IP address of the client.
  header HeaderSessionAffinity
HTTP-header-field-based session affinity configuration.
  cookie CookieSessionAffinity
Cookie-based session affinity configuration.

GrpcBackend

Field Description
name string
Required. Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9].
backend_weight google.protobuf.Int64Value
Backend weight. Traffic is distributed between backends of a backend group according to their weights.
Weights must be set either for all backends of a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends.
If the weight is non-positive, traffic is not sent to the backend.
load_balancing_config LoadBalancingConfig
Load balancing configuration for the backend.
port int64
Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive.
backend_type oneof: target_groups
Reference to targets that belong to the backend. For now, targets are referenced via target groups.
  target_groups TargetGroupsBackend
Target groups that belong to the backend.
healthchecks[] HealthCheck
Health checks to perform on targets from target groups. For details about health checking, see documentation.
If no health checks are specified, active health checking is not performed.
tls BackendTls
Settings for TLS connections between load balancer nodes and backend targets.
If specified, the load balancer establishes HTTPS (HTTP over TLS) connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted HTTP connections with targets.

LoadBalancingConfig

Field Description
panic_threshold int64
Threshold for panic mode.
If percentage of healthy backends in the group drops below threshold, panic mode will be activated and traffic will be routed to all backends, regardless of their health check status. This helps to avoid overloading healthy backends. For details about panic mode, see documentation.
If the value is 0, panic mode will never be activated and traffic is routed only to healthy backends at all times.
Default value: 0. Acceptable values are 0 to 100, inclusive.
locality_aware_routing_percent int64
Percentage of traffic that a load balancer node sends to healthy backends in its availability zone. The rest is divided equally between other zones. For details about zone-aware routing, see documentation.
If there are no healthy backends in an availability zone, all the traffic is divided between other zones.
If strict_locality is true, the specified value is ignored. A load balancer node sends all the traffic within its availability zone, regardless of backends' health.
Default value: 0. Acceptable values are 0 to 100, inclusive.
strict_locality bool
Specifies whether a load balancer node should only send traffic to backends in its availability zone, regardless of their health, and ignore backends in other zones.
If set to true and there are no healthy backends in the zone, the node in this zone will respond to incoming traffic with errors. For details about strict locality, see documentation.
If strict_locality is true, the value specified in locality_aware_routing_percent is ignored.
Default value: false.
mode enum LoadBalancingMode
Load balancing mode for the backend.
For details about load balancing modes, see documentation.
  • ROUND_ROBIN: Round robin load balancing mode.
    All endpoints of the backend take their turns to receive requests attributed to the backend.
  • RANDOM: Random load balancing mode. Default value.
    For a request attributed to the backend, an endpoint that receives it is picked at random.
  • LEAST_REQUEST: Least request load balancing mode.
    To pick an endpoint that receives a request attributed to the backend, the power of two choices algorithm is used; that is, two endpoints are picked at random, and the request is sent to the one which has the fewest active requests.
  • MAGLEV_HASH: Maglev hashing load balancing mode.
    Each endpoint is hashed, and a hash table with 65537 rows is filled accordingly, so that every endpoint occupies the same amount of rows. An attribute of each request is also hashed by the same function (if session affinity is enabled for the backend group, the attribute to hash is specified in session affinity configuration). The row with the same number as the resulting value is looked up in the table to determine the endpoint that receives the request.
    If the backend group with session affinity enabled contains more than one backend with positive weight, endpoints for backends with MAGLEV_HASH load balancing mode are picked at RANDOM instead.

TargetGroupsBackend

Field Description
target_group_ids[] string
List of ID's of target groups that belong to the backend.
To get the ID's of all available target groups, make a TargetGroupService.List request. The number of elements must be greater than 0.

HealthCheck

Field Description
timeout google.protobuf.Duration
Required. Health check timeout.
The timeout is the time allowed for the target to respond to a check. If the target doesn't respond in time, the check is considered failed.
interval google.protobuf.Duration
Required. Base interval between consecutive health checks.
interval_jitter_percent double
healthy_threshold int64
Number of consecutive successful health checks required to mark an unhealthy target as healthy.
Both 0 and 1 values amount to one successful check required.
The value is ignored when a load balancer is initialized; a target is marked healthy after one successful check.
Default value: 0.
unhealthy_threshold int64
Number of consecutive failed health checks required to mark a healthy target as unhealthy.
Both 0 and 1 values amount to one unsuccessful check required.
The value is ignored if a health check is failed due to an HTTP 503 Service Unavailable response from the target (not applicable to TCP stream health checks). The target is immediately marked unhealthy.
Default value: 0.
healthcheck_port int64
Port used for health checks.
If not specified, the backend port (HttpBackend.port or GrpcBackend.port) is used for health checks. Acceptable values are 0 to 65535, inclusive.
healthcheck oneof: stream, http or grpc
Protocol-specific health check settings.
The protocols of the backend and of its health check may differ, e.g. a gRPC health check may be specified for an HTTP backend.
  stream StreamHealthCheck
TCP stream health check settings.
  http HttpHealthCheck
HTTP health check settings.
  grpc GrpcHealthCheck
gRPC health check settings.
transport_settings oneof: plaintext or tls
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  plaintext PlaintextTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  tls SecureTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.

StreamHealthCheck

Field Description
send Payload
Message sent to targets during TCP data transfer.
If not specified, no data is sent to the target.
receive Payload
Data that must be contained in the messages received from targets for a successful health check.
If not specified, no messages are expected from targets, and those that are received are not checked.

HttpHealthCheck

Field Description
host string
Value for the HTTP/1.1 Host header or the HTTP/2 :authority pseudo-header used in requests to targets.
path string
Required. HTTP path used in requests to targets: request URI for HTTP/1.1 request line or value for the HTTP/2 :path pseudo-header.
use_http2 bool
Enables HTTP/2 usage in health checks.
Default value: false, HTTP/1.1 is used.

GrpcHealthCheck

Field Description
service_name string
Name of the gRPC service to be checked.
If not specified, overall health is checked.
For details about the concept, see GRPC Health Checking Protocol.

PlaintextTransportSettings

SecureTransportSettings

Field Description
sni string
SNI string for TLS connections.
validation_context ValidationContext
Validation context for backend TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

BackendTls

Field Description
sni string
Server Name Indication (SNI) string for TLS connections.
validation_context ValidationContext
Validation context for TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

ConnectionSessionAffinity

Field Description
source_ip bool
Specifies whether an IP address of the client is used to define a connection for session affinity.

HeaderSessionAffinity

Field Description
header_name string
Name of the HTTP header field that is used for session affinity. The string length in characters must be 1-256.

CookieSessionAffinity

Field Description
name string
Name of the cookie that is used for session affinity. The string length in characters must be 1-256.
ttl google.protobuf.Duration
Maximum age of cookies that are generated for sessions.
If set to 0, session cookies are used, which are stored by clients in temporary memory and are deleted on client restarts.
If not set, the balancer does not generate cookies and only uses incoming ones for establishing session affinity.

StreamBackendGroup

Field Description
backends[] StreamBackend
List of stream (TCP) backends.
session_affinity oneof: connection
Session affinity configuration for the backend group.
For details about the concept, see documentation.
If session affinity is configured, the backend group should contain exactly one active backend (i.e. with positive HttpBackend.backend_weight), its HttpBackend.backend_type should be TargetGroupsBackend, and its LoadBalancingConfig.load_balancing_mode should be MAGLEV_HASH. If any of these conditions are not met, session affinity will not work.
  connection ConnectionSessionAffinity
Connection-based session affinity configuration.
For now, a connection is defined only by an IP address of the client.

StreamBackend

Field Description
name string
Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9].
backend_weight google.protobuf.Int64Value
Backend weight. Traffic is distributed between backends of a backend group according to their weights.
Weights must be set either for all backends in a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends.
If the weight is non-positive, traffic is not sent to the backend.
load_balancing_config LoadBalancingConfig
Load balancing configuration for the backend.
port int64
Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive.
backend_type oneof: target_groups
Reference to targets that belong to the backend.
  target_groups TargetGroupsBackend
Target groups that belong to the backend. For details about target groups, see documentation.
healthchecks[] HealthCheck
Health checks to perform on targets from target groups. For details about health checking, see documentation.
If no health checks are specified, active health checking is not performed.
tls BackendTls
Settings for TLS connections between load balancer nodes and backend targets.
If specified, the load balancer establishes TLS-encrypted TCP connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted TCP connections with targets.
enable_proxy_protocol bool
If set, proxy protocol will be enabled for this backend.

LoadBalancingConfig

Field Description
panic_threshold int64
Threshold for panic mode.
If percentage of healthy backends in the group drops below threshold, panic mode will be activated and traffic will be routed to all backends, regardless of their health check status. This helps to avoid overloading healthy backends. For details about panic mode, see documentation.
If the value is 0, panic mode will never be activated and traffic is routed only to healthy backends at all times.
Default value: 0. Acceptable values are 0 to 100, inclusive.
locality_aware_routing_percent int64
Percentage of traffic that a load balancer node sends to healthy backends in its availability zone. The rest is divided equally between other zones. For details about zone-aware routing, see documentation.
If there are no healthy backends in an availability zone, all the traffic is divided between other zones.
If strict_locality is true, the specified value is ignored. A load balancer node sends all the traffic within its availability zone, regardless of backends' health.
Default value: 0. Acceptable values are 0 to 100, inclusive.
strict_locality bool
Specifies whether a load balancer node should only send traffic to backends in its availability zone, regardless of their health, and ignore backends in other zones.
If set to true and there are no healthy backends in the zone, the node in this zone will respond to incoming traffic with errors. For details about strict locality, see documentation.
If strict_locality is true, the value specified in locality_aware_routing_percent is ignored.
Default value: false.
mode enum LoadBalancingMode
Load balancing mode for the backend.
For details about load balancing modes, see documentation.
  • ROUND_ROBIN: Round robin load balancing mode.
    All endpoints of the backend take their turns to receive requests attributed to the backend.
  • RANDOM: Random load balancing mode. Default value.
    For a request attributed to the backend, an endpoint that receives it is picked at random.
  • LEAST_REQUEST: Least request load balancing mode.
    To pick an endpoint that receives a request attributed to the backend, the power of two choices algorithm is used; that is, two endpoints are picked at random, and the request is sent to the one which has the fewest active requests.
  • MAGLEV_HASH: Maglev hashing load balancing mode.
    Each endpoint is hashed, and a hash table with 65537 rows is filled accordingly, so that every endpoint occupies the same amount of rows. An attribute of each request is also hashed by the same function (if session affinity is enabled for the backend group, the attribute to hash is specified in session affinity configuration). The row with the same number as the resulting value is looked up in the table to determine the endpoint that receives the request.
    If the backend group with session affinity enabled contains more than one backend with positive weight, endpoints for backends with MAGLEV_HASH load balancing mode are picked at RANDOM instead.

TargetGroupsBackend

Field Description
target_group_ids[] string
List of ID's of target groups that belong to the backend.
To get the ID's of all available target groups, make a TargetGroupService.List request. The number of elements must be greater than 0.

HealthCheck

Field Description
timeout google.protobuf.Duration
Required. Health check timeout.
The timeout is the time allowed for the target to respond to a check. If the target doesn't respond in time, the check is considered failed.
interval google.protobuf.Duration
Required. Base interval between consecutive health checks.
interval_jitter_percent double
healthy_threshold int64
Number of consecutive successful health checks required to mark an unhealthy target as healthy.
Both 0 and 1 values amount to one successful check required.
The value is ignored when a load balancer is initialized; a target is marked healthy after one successful check.
Default value: 0.
unhealthy_threshold int64
Number of consecutive failed health checks required to mark a healthy target as unhealthy.
Both 0 and 1 values amount to one unsuccessful check required.
The value is ignored if a health check is failed due to an HTTP 503 Service Unavailable response from the target (not applicable to TCP stream health checks). The target is immediately marked unhealthy.
Default value: 0.
healthcheck_port int64
Port used for health checks.
If not specified, the backend port (HttpBackend.port or GrpcBackend.port) is used for health checks. Acceptable values are 0 to 65535, inclusive.
healthcheck oneof: stream, http or grpc
Protocol-specific health check settings.
The protocols of the backend and of its health check may differ, e.g. a gRPC health check may be specified for an HTTP backend.
  stream StreamHealthCheck
TCP stream health check settings.
  http HttpHealthCheck
HTTP health check settings.
  grpc GrpcHealthCheck
gRPC health check settings.
transport_settings oneof: plaintext or tls
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  plaintext PlaintextTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  tls SecureTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.

StreamHealthCheck

Field Description
send Payload
Message sent to targets during TCP data transfer.
If not specified, no data is sent to the target.
receive Payload
Data that must be contained in the messages received from targets for a successful health check.
If not specified, no messages are expected from targets, and those that are received are not checked.

HttpHealthCheck

Field Description
host string
Value for the HTTP/1.1 Host header or the HTTP/2 :authority pseudo-header used in requests to targets.
path string
Required. HTTP path used in requests to targets: request URI for HTTP/1.1 request line or value for the HTTP/2 :path pseudo-header.
use_http2 bool
Enables HTTP/2 usage in health checks.
Default value: false, HTTP/1.1 is used.

GrpcHealthCheck

Field Description
service_name string
Name of the gRPC service to be checked.
If not specified, overall health is checked.
For details about the concept, see GRPC Health Checking Protocol.

PlaintextTransportSettings

SecureTransportSettings

Field Description
sni string
SNI string for TLS connections.
validation_context ValidationContext
Validation context for backend TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

BackendTls

Field Description
sni string
Server Name Indication (SNI) string for TLS connections.
validation_context ValidationContext
Validation context for TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

ConnectionSessionAffinity

Field Description
source_ip bool
Specifies whether an IP address of the client is used to define a connection for session affinity.

Delete

Deletes the specified backend group.

rpc Delete (DeleteBackendGroupRequest) returns (operation.Operation)

Metadata and response of Operation:

    Operation.metadata:DeleteBackendGroupMetadata

    Operation.response:google.protobuf.Empty

DeleteBackendGroupRequest

Field Description
backend_group_id string
Required. ID of the backend group to delete.
To get the backend group ID, make a BackendGroupService.List request.

Operation

Field Description
id string
ID of the operation.
description string
Description of the operation. 0-256 characters long.
created_at google.protobuf.Timestamp
Creation timestamp.
created_by string
ID of the user or service account who initiated the operation.
modified_at google.protobuf.Timestamp
The time when the Operation resource was last modified.
done bool
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 google.protobuf.Any<DeleteBackendGroupMetadata>
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.
result oneof: error or response
The operation result. If done == false and there was no failure detected, neither error nor response is set. If done == false and there was a failure detected, error is set. If done == true, exactly one of error or response is set.
  error google.rpc.Status
The error result of the operation in case of failure or cancellation.
  response google.protobuf.Any<google.protobuf.Empty>
if operation finished successfully.

DeleteBackendGroupMetadata

Field Description
backend_group_id string
ID of the backend group that is being deleted.

AddBackend

Adds backends to the specified backend group.

rpc AddBackend (AddBackendRequest) returns (operation.Operation)

Metadata and response of Operation:

    Operation.metadata:AddBackendMetadata

    Operation.response:BackendGroup

AddBackendRequest

Field Description
backend_group_id string
Required. ID of the backend group to add a backend to.
To get the backend group ID, make a BackendGroupService.List request.
backend oneof: http, grpc or stream
Backend to add to the backend group.
  http HttpBackend
HTTP backend to add to the backend group.
  grpc GrpcBackend
gRPC backend to add to the backend group.
  stream StreamBackend
New settings for the Stream backend.

HttpBackend

Field Description
name string
Required. Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9].
backend_weight google.protobuf.Int64Value
Backend weight. Traffic is distributed between backends of a backend group according to their weights.
Weights must be set either for all backends in a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends.
If the weight is non-positive, traffic is not sent to the backend.
load_balancing_config LoadBalancingConfig
Load balancing configuration for the backend.
port int64
Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive.
backend_type oneof: target_groups or storage_bucket
Reference to targets that belong to the backend.
A backend may be a set of target groups or an Object Storage bucket. For details about backend types, see documentation.
  target_groups TargetGroupsBackend
Target groups that belong to the backend. For details about target groups, see documentation.
  storage_bucket StorageBucketBackend
Object Storage bucket to use as the backend. For details about buckets, see documentation.
If a bucket is used as a backend, the list of bucket objects and the objects themselves must be publicly accessible. For instructions, see documentation.
healthchecks[] HealthCheck
Health checks to perform on targets from target groups. For details about health checking, see documentation.
If no health checks are specified, active health checking is not performed.
tls BackendTls
Settings for TLS connections between load balancer nodes and backend targets.
If specified, the load balancer establishes HTTPS (HTTP over TLS) connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted HTTP connections with targets.
use_http2 bool
Enables HTTP/2 usage in connections between load balancer nodes and backend targets.
Default value: false, HTTP/1.1 is used.

LoadBalancingConfig

Field Description
panic_threshold int64
Threshold for panic mode.
If percentage of healthy backends in the group drops below threshold, panic mode will be activated and traffic will be routed to all backends, regardless of their health check status. This helps to avoid overloading healthy backends. For details about panic mode, see documentation.
If the value is 0, panic mode will never be activated and traffic is routed only to healthy backends at all times.
Default value: 0. Acceptable values are 0 to 100, inclusive.
locality_aware_routing_percent int64
Percentage of traffic that a load balancer node sends to healthy backends in its availability zone. The rest is divided equally between other zones. For details about zone-aware routing, see documentation.
If there are no healthy backends in an availability zone, all the traffic is divided between other zones.
If strict_locality is true, the specified value is ignored. A load balancer node sends all the traffic within its availability zone, regardless of backends' health.
Default value: 0. Acceptable values are 0 to 100, inclusive.
strict_locality bool
Specifies whether a load balancer node should only send traffic to backends in its availability zone, regardless of their health, and ignore backends in other zones.
If set to true and there are no healthy backends in the zone, the node in this zone will respond to incoming traffic with errors. For details about strict locality, see documentation.
If strict_locality is true, the value specified in locality_aware_routing_percent is ignored.
Default value: false.
mode enum LoadBalancingMode
Load balancing mode for the backend.
For details about load balancing modes, see documentation.
  • ROUND_ROBIN: Round robin load balancing mode.
    All endpoints of the backend take their turns to receive requests attributed to the backend.
  • RANDOM: Random load balancing mode. Default value.
    For a request attributed to the backend, an endpoint that receives it is picked at random.
  • LEAST_REQUEST: Least request load balancing mode.
    To pick an endpoint that receives a request attributed to the backend, the power of two choices algorithm is used; that is, two endpoints are picked at random, and the request is sent to the one which has the fewest active requests.
  • MAGLEV_HASH: Maglev hashing load balancing mode.
    Each endpoint is hashed, and a hash table with 65537 rows is filled accordingly, so that every endpoint occupies the same amount of rows. An attribute of each request is also hashed by the same function (if session affinity is enabled for the backend group, the attribute to hash is specified in session affinity configuration). The row with the same number as the resulting value is looked up in the table to determine the endpoint that receives the request.
    If the backend group with session affinity enabled contains more than one backend with positive weight, endpoints for backends with MAGLEV_HASH load balancing mode are picked at RANDOM instead.

TargetGroupsBackend

Field Description
target_group_ids[] string
List of ID's of target groups that belong to the backend.
To get the ID's of all available target groups, make a TargetGroupService.List request. The number of elements must be greater than 0.

StorageBucketBackend

Field Description
bucket string
Required. Name of the bucket.

HealthCheck

Field Description
timeout google.protobuf.Duration
Required. Health check timeout.
The timeout is the time allowed for the target to respond to a check. If the target doesn't respond in time, the check is considered failed.
interval google.protobuf.Duration
Required. Base interval between consecutive health checks.
interval_jitter_percent double
healthy_threshold int64
Number of consecutive successful health checks required to mark an unhealthy target as healthy.
Both 0 and 1 values amount to one successful check required.
The value is ignored when a load balancer is initialized; a target is marked healthy after one successful check.
Default value: 0.
unhealthy_threshold int64
Number of consecutive failed health checks required to mark a healthy target as unhealthy.
Both 0 and 1 values amount to one unsuccessful check required.
The value is ignored if a health check is failed due to an HTTP 503 Service Unavailable response from the target (not applicable to TCP stream health checks). The target is immediately marked unhealthy.
Default value: 0.
healthcheck_port int64
Port used for health checks.
If not specified, the backend port (HttpBackend.port or GrpcBackend.port) is used for health checks. Acceptable values are 0 to 65535, inclusive.
healthcheck oneof: stream, http or grpc
Protocol-specific health check settings.
The protocols of the backend and of its health check may differ, e.g. a gRPC health check may be specified for an HTTP backend.
  stream StreamHealthCheck
TCP stream health check settings.
  http HttpHealthCheck
HTTP health check settings.
  grpc GrpcHealthCheck
gRPC health check settings.
transport_settings oneof: plaintext or tls
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  plaintext PlaintextTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  tls SecureTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.

StreamHealthCheck

Field Description
send Payload
Message sent to targets during TCP data transfer.
If not specified, no data is sent to the target.
receive Payload
Data that must be contained in the messages received from targets for a successful health check.
If not specified, no messages are expected from targets, and those that are received are not checked.

HttpHealthCheck

Field Description
host string
Value for the HTTP/1.1 Host header or the HTTP/2 :authority pseudo-header used in requests to targets.
path string
Required. HTTP path used in requests to targets: request URI for HTTP/1.1 request line or value for the HTTP/2 :path pseudo-header.
use_http2 bool
Enables HTTP/2 usage in health checks.
Default value: false, HTTP/1.1 is used.

GrpcHealthCheck

Field Description
service_name string
Name of the gRPC service to be checked.
If not specified, overall health is checked.
For details about the concept, see GRPC Health Checking Protocol.

PlaintextTransportSettings

SecureTransportSettings

Field Description
sni string
SNI string for TLS connections.
validation_context ValidationContext
Validation context for backend TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

BackendTls

Field Description
sni string
Server Name Indication (SNI) string for TLS connections.
validation_context ValidationContext
Validation context for TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

GrpcBackend

Field Description
name string
Required. Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9].
backend_weight google.protobuf.Int64Value
Backend weight. Traffic is distributed between backends of a backend group according to their weights.
Weights must be set either for all backends of a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends.
If the weight is non-positive, traffic is not sent to the backend.
load_balancing_config LoadBalancingConfig
Load balancing configuration for the backend.
port int64
Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive.
backend_type oneof: target_groups
Reference to targets that belong to the backend. For now, targets are referenced via target groups.
  target_groups TargetGroupsBackend
Target groups that belong to the backend.
healthchecks[] HealthCheck
Health checks to perform on targets from target groups. For details about health checking, see documentation.
If no health checks are specified, active health checking is not performed.
tls BackendTls
Settings for TLS connections between load balancer nodes and backend targets.
If specified, the load balancer establishes HTTPS (HTTP over TLS) connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted HTTP connections with targets.

LoadBalancingConfig

Field Description
panic_threshold int64
Threshold for panic mode.
If percentage of healthy backends in the group drops below threshold, panic mode will be activated and traffic will be routed to all backends, regardless of their health check status. This helps to avoid overloading healthy backends. For details about panic mode, see documentation.
If the value is 0, panic mode will never be activated and traffic is routed only to healthy backends at all times.
Default value: 0. Acceptable values are 0 to 100, inclusive.
locality_aware_routing_percent int64
Percentage of traffic that a load balancer node sends to healthy backends in its availability zone. The rest is divided equally between other zones. For details about zone-aware routing, see documentation.
If there are no healthy backends in an availability zone, all the traffic is divided between other zones.
If strict_locality is true, the specified value is ignored. A load balancer node sends all the traffic within its availability zone, regardless of backends' health.
Default value: 0. Acceptable values are 0 to 100, inclusive.
strict_locality bool
Specifies whether a load balancer node should only send traffic to backends in its availability zone, regardless of their health, and ignore backends in other zones.
If set to true and there are no healthy backends in the zone, the node in this zone will respond to incoming traffic with errors. For details about strict locality, see documentation.
If strict_locality is true, the value specified in locality_aware_routing_percent is ignored.
Default value: false.
mode enum LoadBalancingMode
Load balancing mode for the backend.
For details about load balancing modes, see documentation.
  • ROUND_ROBIN: Round robin load balancing mode.
    All endpoints of the backend take their turns to receive requests attributed to the backend.
  • RANDOM: Random load balancing mode. Default value.
    For a request attributed to the backend, an endpoint that receives it is picked at random.
  • LEAST_REQUEST: Least request load balancing mode.
    To pick an endpoint that receives a request attributed to the backend, the power of two choices algorithm is used; that is, two endpoints are picked at random, and the request is sent to the one which has the fewest active requests.
  • MAGLEV_HASH: Maglev hashing load balancing mode.
    Each endpoint is hashed, and a hash table with 65537 rows is filled accordingly, so that every endpoint occupies the same amount of rows. An attribute of each request is also hashed by the same function (if session affinity is enabled for the backend group, the attribute to hash is specified in session affinity configuration). The row with the same number as the resulting value is looked up in the table to determine the endpoint that receives the request.
    If the backend group with session affinity enabled contains more than one backend with positive weight, endpoints for backends with MAGLEV_HASH load balancing mode are picked at RANDOM instead.

TargetGroupsBackend

Field Description
target_group_ids[] string
List of ID's of target groups that belong to the backend.
To get the ID's of all available target groups, make a TargetGroupService.List request. The number of elements must be greater than 0.

HealthCheck

Field Description
timeout google.protobuf.Duration
Required. Health check timeout.
The timeout is the time allowed for the target to respond to a check. If the target doesn't respond in time, the check is considered failed.
interval google.protobuf.Duration
Required. Base interval between consecutive health checks.
interval_jitter_percent double
healthy_threshold int64
Number of consecutive successful health checks required to mark an unhealthy target as healthy.
Both 0 and 1 values amount to one successful check required.
The value is ignored when a load balancer is initialized; a target is marked healthy after one successful check.
Default value: 0.
unhealthy_threshold int64
Number of consecutive failed health checks required to mark a healthy target as unhealthy.
Both 0 and 1 values amount to one unsuccessful check required.
The value is ignored if a health check is failed due to an HTTP 503 Service Unavailable response from the target (not applicable to TCP stream health checks). The target is immediately marked unhealthy.
Default value: 0.
healthcheck_port int64
Port used for health checks.
If not specified, the backend port (HttpBackend.port or GrpcBackend.port) is used for health checks. Acceptable values are 0 to 65535, inclusive.
healthcheck oneof: stream, http or grpc
Protocol-specific health check settings.
The protocols of the backend and of its health check may differ, e.g. a gRPC health check may be specified for an HTTP backend.
  stream StreamHealthCheck
TCP stream health check settings.
  http HttpHealthCheck
HTTP health check settings.
  grpc GrpcHealthCheck
gRPC health check settings.
transport_settings oneof: plaintext or tls
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  plaintext PlaintextTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  tls SecureTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.

StreamHealthCheck

Field Description
send Payload
Message sent to targets during TCP data transfer.
If not specified, no data is sent to the target.
receive Payload
Data that must be contained in the messages received from targets for a successful health check.
If not specified, no messages are expected from targets, and those that are received are not checked.

HttpHealthCheck

Field Description
host string
Value for the HTTP/1.1 Host header or the HTTP/2 :authority pseudo-header used in requests to targets.
path string
Required. HTTP path used in requests to targets: request URI for HTTP/1.1 request line or value for the HTTP/2 :path pseudo-header.
use_http2 bool
Enables HTTP/2 usage in health checks.
Default value: false, HTTP/1.1 is used.

GrpcHealthCheck

Field Description
service_name string
Name of the gRPC service to be checked.
If not specified, overall health is checked.
For details about the concept, see GRPC Health Checking Protocol.

PlaintextTransportSettings

SecureTransportSettings

Field Description
sni string
SNI string for TLS connections.
validation_context ValidationContext
Validation context for backend TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

BackendTls

Field Description
sni string
Server Name Indication (SNI) string for TLS connections.
validation_context ValidationContext
Validation context for TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

StreamBackend

Field Description
name string
Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9].
backend_weight google.protobuf.Int64Value
Backend weight. Traffic is distributed between backends of a backend group according to their weights.
Weights must be set either for all backends in a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends.
If the weight is non-positive, traffic is not sent to the backend.
load_balancing_config LoadBalancingConfig
Load balancing configuration for the backend.
port int64
Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive.
backend_type oneof: target_groups
Reference to targets that belong to the backend.
  target_groups TargetGroupsBackend
Target groups that belong to the backend. For details about target groups, see documentation.
healthchecks[] HealthCheck
Health checks to perform on targets from target groups. For details about health checking, see documentation.
If no health checks are specified, active health checking is not performed.
tls BackendTls
Settings for TLS connections between load balancer nodes and backend targets.
If specified, the load balancer establishes TLS-encrypted TCP connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted TCP connections with targets.
enable_proxy_protocol bool
If set, proxy protocol will be enabled for this backend.

LoadBalancingConfig

Field Description
panic_threshold int64
Threshold for panic mode.
If percentage of healthy backends in the group drops below threshold, panic mode will be activated and traffic will be routed to all backends, regardless of their health check status. This helps to avoid overloading healthy backends. For details about panic mode, see documentation.
If the value is 0, panic mode will never be activated and traffic is routed only to healthy backends at all times.
Default value: 0. Acceptable values are 0 to 100, inclusive.
locality_aware_routing_percent int64
Percentage of traffic that a load balancer node sends to healthy backends in its availability zone. The rest is divided equally between other zones. For details about zone-aware routing, see documentation.
If there are no healthy backends in an availability zone, all the traffic is divided between other zones.
If strict_locality is true, the specified value is ignored. A load balancer node sends all the traffic within its availability zone, regardless of backends' health.
Default value: 0. Acceptable values are 0 to 100, inclusive.
strict_locality bool
Specifies whether a load balancer node should only send traffic to backends in its availability zone, regardless of their health, and ignore backends in other zones.
If set to true and there are no healthy backends in the zone, the node in this zone will respond to incoming traffic with errors. For details about strict locality, see documentation.
If strict_locality is true, the value specified in locality_aware_routing_percent is ignored.
Default value: false.
mode enum LoadBalancingMode
Load balancing mode for the backend.
For details about load balancing modes, see documentation.
  • ROUND_ROBIN: Round robin load balancing mode.
    All endpoints of the backend take their turns to receive requests attributed to the backend.
  • RANDOM: Random load balancing mode. Default value.
    For a request attributed to the backend, an endpoint that receives it is picked at random.
  • LEAST_REQUEST: Least request load balancing mode.
    To pick an endpoint that receives a request attributed to the backend, the power of two choices algorithm is used; that is, two endpoints are picked at random, and the request is sent to the one which has the fewest active requests.
  • MAGLEV_HASH: Maglev hashing load balancing mode.
    Each endpoint is hashed, and a hash table with 65537 rows is filled accordingly, so that every endpoint occupies the same amount of rows. An attribute of each request is also hashed by the same function (if session affinity is enabled for the backend group, the attribute to hash is specified in session affinity configuration). The row with the same number as the resulting value is looked up in the table to determine the endpoint that receives the request.
    If the backend group with session affinity enabled contains more than one backend with positive weight, endpoints for backends with MAGLEV_HASH load balancing mode are picked at RANDOM instead.

TargetGroupsBackend

Field Description
target_group_ids[] string
List of ID's of target groups that belong to the backend.
To get the ID's of all available target groups, make a TargetGroupService.List request. The number of elements must be greater than 0.

HealthCheck

Field Description
timeout google.protobuf.Duration
Required. Health check timeout.
The timeout is the time allowed for the target to respond to a check. If the target doesn't respond in time, the check is considered failed.
interval google.protobuf.Duration
Required. Base interval between consecutive health checks.
interval_jitter_percent double
healthy_threshold int64
Number of consecutive successful health checks required to mark an unhealthy target as healthy.
Both 0 and 1 values amount to one successful check required.
The value is ignored when a load balancer is initialized; a target is marked healthy after one successful check.
Default value: 0.
unhealthy_threshold int64
Number of consecutive failed health checks required to mark a healthy target as unhealthy.
Both 0 and 1 values amount to one unsuccessful check required.
The value is ignored if a health check is failed due to an HTTP 503 Service Unavailable response from the target (not applicable to TCP stream health checks). The target is immediately marked unhealthy.
Default value: 0.
healthcheck_port int64
Port used for health checks.
If not specified, the backend port (HttpBackend.port or GrpcBackend.port) is used for health checks. Acceptable values are 0 to 65535, inclusive.
healthcheck oneof: stream, http or grpc
Protocol-specific health check settings.
The protocols of the backend and of its health check may differ, e.g. a gRPC health check may be specified for an HTTP backend.
  stream StreamHealthCheck
TCP stream health check settings.
  http HttpHealthCheck
HTTP health check settings.
  grpc GrpcHealthCheck
gRPC health check settings.
transport_settings oneof: plaintext or tls
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  plaintext PlaintextTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  tls SecureTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.

StreamHealthCheck

Field Description
send Payload
Message sent to targets during TCP data transfer.
If not specified, no data is sent to the target.
receive Payload
Data that must be contained in the messages received from targets for a successful health check.
If not specified, no messages are expected from targets, and those that are received are not checked.

HttpHealthCheck

Field Description
host string
Value for the HTTP/1.1 Host header or the HTTP/2 :authority pseudo-header used in requests to targets.
path string
Required. HTTP path used in requests to targets: request URI for HTTP/1.1 request line or value for the HTTP/2 :path pseudo-header.
use_http2 bool
Enables HTTP/2 usage in health checks.
Default value: false, HTTP/1.1 is used.

GrpcHealthCheck

Field Description
service_name string
Name of the gRPC service to be checked.
If not specified, overall health is checked.
For details about the concept, see GRPC Health Checking Protocol.

PlaintextTransportSettings

SecureTransportSettings

Field Description
sni string
SNI string for TLS connections.
validation_context ValidationContext
Validation context for backend TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

BackendTls

Field Description
sni string
Server Name Indication (SNI) string for TLS connections.
validation_context ValidationContext
Validation context for TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

Operation

Field Description
id string
ID of the operation.
description string
Description of the operation. 0-256 characters long.
created_at google.protobuf.Timestamp
Creation timestamp.
created_by string
ID of the user or service account who initiated the operation.
modified_at google.protobuf.Timestamp
The time when the Operation resource was last modified.
done bool
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 google.protobuf.Any<AddBackendMetadata>
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.
result oneof: error or response
The operation result. If done == false and there was no failure detected, neither error nor response is set. If done == false and there was a failure detected, error is set. If done == true, exactly one of error or response is set.
  error google.rpc.Status
The error result of the operation in case of failure or cancellation.
  response google.protobuf.Any<BackendGroup>
if operation finished successfully.

AddBackendMetadata

Field Description
backend_group_id string
ID of the backend group that the backend is being added to.
backend_name string
Name of the backend that is being added to the backend group.

BackendGroup

Field Description
id string
ID of the backend group. Generated at creation time.
name string
Name of the backend group. The name is unique within the folder. The string length in characters is 3-63.
description string
Description of the backend group. The string is 0-256 characters long.
folder_id string
ID of the folder that the backend group belongs to.
labels map<string,string>
Backend group labels as key:value pairs. For details about the concept, see documentation. The maximum number of labels is 64.
backend oneof: http, grpc or stream
Backends that the backend group consists of.
  http HttpBackendGroup
List of HTTP backends that the backend group consists of.
  grpc GrpcBackendGroup
List of gRPC backends that the backend group consists of.
  stream StreamBackendGroup
List of stream (TCP) backends that the backend group consists of.
created_at google.protobuf.Timestamp
Creation timestamp.

HttpBackendGroup

Field Description
backends[] HttpBackend
List of HTTP backends.
session_affinity oneof: connection, header or cookie
Session affinity configuration for the backend group.
For details about the concept, see documentation.
If session affinity is configured, the backend group should contain exactly one active backend (i.e. with positive HttpBackend.backend_weight), its HttpBackend.backend_type should be TargetGroupsBackend, and its LoadBalancingConfig.load_balancing_mode should be MAGLEV_HASH. If any of these conditions are not met, session affinity will not work.
  connection ConnectionSessionAffinity
Connection-based session affinity configuration.
For now, a connection is defined only by an IP address of the client.
  header HeaderSessionAffinity
HTTP-header-field-based session affinity configuration.
  cookie CookieSessionAffinity
Cookie-based session affinity configuration.

HttpBackend

Field Description
name string
Required. Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9].
backend_weight google.protobuf.Int64Value
Backend weight. Traffic is distributed between backends of a backend group according to their weights.
Weights must be set either for all backends in a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends.
If the weight is non-positive, traffic is not sent to the backend.
load_balancing_config LoadBalancingConfig
Load balancing configuration for the backend.
port int64
Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive.
backend_type oneof: target_groups or storage_bucket
Reference to targets that belong to the backend.
A backend may be a set of target groups or an Object Storage bucket. For details about backend types, see documentation.
  target_groups TargetGroupsBackend
Target groups that belong to the backend. For details about target groups, see documentation.
  storage_bucket StorageBucketBackend
Object Storage bucket to use as the backend. For details about buckets, see documentation.
If a bucket is used as a backend, the list of bucket objects and the objects themselves must be publicly accessible. For instructions, see documentation.
healthchecks[] HealthCheck
Health checks to perform on targets from target groups. For details about health checking, see documentation.
If no health checks are specified, active health checking is not performed.
tls BackendTls
Settings for TLS connections between load balancer nodes and backend targets.
If specified, the load balancer establishes HTTPS (HTTP over TLS) connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted HTTP connections with targets.
use_http2 bool
Enables HTTP/2 usage in connections between load balancer nodes and backend targets.
Default value: false, HTTP/1.1 is used.

LoadBalancingConfig

Field Description
panic_threshold int64
Threshold for panic mode.
If percentage of healthy backends in the group drops below threshold, panic mode will be activated and traffic will be routed to all backends, regardless of their health check status. This helps to avoid overloading healthy backends. For details about panic mode, see documentation.
If the value is 0, panic mode will never be activated and traffic is routed only to healthy backends at all times.
Default value: 0. Acceptable values are 0 to 100, inclusive.
locality_aware_routing_percent int64
Percentage of traffic that a load balancer node sends to healthy backends in its availability zone. The rest is divided equally between other zones. For details about zone-aware routing, see documentation.
If there are no healthy backends in an availability zone, all the traffic is divided between other zones.
If strict_locality is true, the specified value is ignored. A load balancer node sends all the traffic within its availability zone, regardless of backends' health.
Default value: 0. Acceptable values are 0 to 100, inclusive.
strict_locality bool
Specifies whether a load balancer node should only send traffic to backends in its availability zone, regardless of their health, and ignore backends in other zones.
If set to true and there are no healthy backends in the zone, the node in this zone will respond to incoming traffic with errors. For details about strict locality, see documentation.
If strict_locality is true, the value specified in locality_aware_routing_percent is ignored.
Default value: false.
mode enum LoadBalancingMode
Load balancing mode for the backend.
For details about load balancing modes, see documentation.
  • ROUND_ROBIN: Round robin load balancing mode.
    All endpoints of the backend take their turns to receive requests attributed to the backend.
  • RANDOM: Random load balancing mode. Default value.
    For a request attributed to the backend, an endpoint that receives it is picked at random.
  • LEAST_REQUEST: Least request load balancing mode.
    To pick an endpoint that receives a request attributed to the backend, the power of two choices algorithm is used; that is, two endpoints are picked at random, and the request is sent to the one which has the fewest active requests.
  • MAGLEV_HASH: Maglev hashing load balancing mode.
    Each endpoint is hashed, and a hash table with 65537 rows is filled accordingly, so that every endpoint occupies the same amount of rows. An attribute of each request is also hashed by the same function (if session affinity is enabled for the backend group, the attribute to hash is specified in session affinity configuration). The row with the same number as the resulting value is looked up in the table to determine the endpoint that receives the request.
    If the backend group with session affinity enabled contains more than one backend with positive weight, endpoints for backends with MAGLEV_HASH load balancing mode are picked at RANDOM instead.

TargetGroupsBackend

Field Description
target_group_ids[] string
List of ID's of target groups that belong to the backend.
To get the ID's of all available target groups, make a TargetGroupService.List request. The number of elements must be greater than 0.

StorageBucketBackend

Field Description
bucket string
Required. Name of the bucket.

HealthCheck

Field Description
timeout google.protobuf.Duration
Required. Health check timeout.
The timeout is the time allowed for the target to respond to a check. If the target doesn't respond in time, the check is considered failed.
interval google.protobuf.Duration
Required. Base interval between consecutive health checks.
interval_jitter_percent double
healthy_threshold int64
Number of consecutive successful health checks required to mark an unhealthy target as healthy.
Both 0 and 1 values amount to one successful check required.
The value is ignored when a load balancer is initialized; a target is marked healthy after one successful check.
Default value: 0.
unhealthy_threshold int64
Number of consecutive failed health checks required to mark a healthy target as unhealthy.
Both 0 and 1 values amount to one unsuccessful check required.
The value is ignored if a health check is failed due to an HTTP 503 Service Unavailable response from the target (not applicable to TCP stream health checks). The target is immediately marked unhealthy.
Default value: 0.
healthcheck_port int64
Port used for health checks.
If not specified, the backend port (HttpBackend.port or GrpcBackend.port) is used for health checks. Acceptable values are 0 to 65535, inclusive.
healthcheck oneof: stream, http or grpc
Protocol-specific health check settings.
The protocols of the backend and of its health check may differ, e.g. a gRPC health check may be specified for an HTTP backend.
  stream StreamHealthCheck
TCP stream health check settings.
  http HttpHealthCheck
HTTP health check settings.
  grpc GrpcHealthCheck
gRPC health check settings.
transport_settings oneof: plaintext or tls
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  plaintext PlaintextTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  tls SecureTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.

StreamHealthCheck

Field Description
send Payload
Message sent to targets during TCP data transfer.
If not specified, no data is sent to the target.
receive Payload
Data that must be contained in the messages received from targets for a successful health check.
If not specified, no messages are expected from targets, and those that are received are not checked.

HttpHealthCheck

Field Description
host string
Value for the HTTP/1.1 Host header or the HTTP/2 :authority pseudo-header used in requests to targets.
path string
Required. HTTP path used in requests to targets: request URI for HTTP/1.1 request line or value for the HTTP/2 :path pseudo-header.
use_http2 bool
Enables HTTP/2 usage in health checks.
Default value: false, HTTP/1.1 is used.

GrpcHealthCheck

Field Description
service_name string
Name of the gRPC service to be checked.
If not specified, overall health is checked.
For details about the concept, see GRPC Health Checking Protocol.

PlaintextTransportSettings

SecureTransportSettings

Field Description
sni string
SNI string for TLS connections.
validation_context ValidationContext
Validation context for backend TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

BackendTls

Field Description
sni string
Server Name Indication (SNI) string for TLS connections.
validation_context ValidationContext
Validation context for TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

ConnectionSessionAffinity

Field Description
source_ip bool
Specifies whether an IP address of the client is used to define a connection for session affinity.

HeaderSessionAffinity

Field Description
header_name string
Name of the HTTP header field that is used for session affinity. The string length in characters must be 1-256.

CookieSessionAffinity

Field Description
name string
Name of the cookie that is used for session affinity. The string length in characters must be 1-256.
ttl google.protobuf.Duration
Maximum age of cookies that are generated for sessions.
If set to 0, session cookies are used, which are stored by clients in temporary memory and are deleted on client restarts.
If not set, the balancer does not generate cookies and only uses incoming ones for establishing session affinity.

GrpcBackendGroup

Field Description
backends[] GrpcBackend
List of gRPC backends.
session_affinity oneof: connection, header or cookie
Session affinity configuration for the backend group.
For details about the concept, see documentation.
If session affinity is configured, the backend group should contain exactly one active backend (i.e. with positive GrpcBackend.backend_weight), and its LoadBalancingConfig.load_balancing_mode should be MAGLEV_HASH. If any of these conditions are not met, session affinity will not work.
  connection ConnectionSessionAffinity
Connection-based session affinity configuration.
For now, a connection is defined only by an IP address of the client.
  header HeaderSessionAffinity
HTTP-header-field-based session affinity configuration.
  cookie CookieSessionAffinity
Cookie-based session affinity configuration.

GrpcBackend

Field Description
name string
Required. Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9].
backend_weight google.protobuf.Int64Value
Backend weight. Traffic is distributed between backends of a backend group according to their weights.
Weights must be set either for all backends of a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends.
If the weight is non-positive, traffic is not sent to the backend.
load_balancing_config LoadBalancingConfig
Load balancing configuration for the backend.
port int64
Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive.
backend_type oneof: target_groups
Reference to targets that belong to the backend. For now, targets are referenced via target groups.
  target_groups TargetGroupsBackend
Target groups that belong to the backend.
healthchecks[] HealthCheck
Health checks to perform on targets from target groups. For details about health checking, see documentation.
If no health checks are specified, active health checking is not performed.
tls BackendTls
Settings for TLS connections between load balancer nodes and backend targets.
If specified, the load balancer establishes HTTPS (HTTP over TLS) connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted HTTP connections with targets.

LoadBalancingConfig

Field Description
panic_threshold int64
Threshold for panic mode.
If percentage of healthy backends in the group drops below threshold, panic mode will be activated and traffic will be routed to all backends, regardless of their health check status. This helps to avoid overloading healthy backends. For details about panic mode, see documentation.
If the value is 0, panic mode will never be activated and traffic is routed only to healthy backends at all times.
Default value: 0. Acceptable values are 0 to 100, inclusive.
locality_aware_routing_percent int64
Percentage of traffic that a load balancer node sends to healthy backends in its availability zone. The rest is divided equally between other zones. For details about zone-aware routing, see documentation.
If there are no healthy backends in an availability zone, all the traffic is divided between other zones.
If strict_locality is true, the specified value is ignored. A load balancer node sends all the traffic within its availability zone, regardless of backends' health.
Default value: 0. Acceptable values are 0 to 100, inclusive.
strict_locality bool
Specifies whether a load balancer node should only send traffic to backends in its availability zone, regardless of their health, and ignore backends in other zones.
If set to true and there are no healthy backends in the zone, the node in this zone will respond to incoming traffic with errors. For details about strict locality, see documentation.
If strict_locality is true, the value specified in locality_aware_routing_percent is ignored.
Default value: false.
mode enum LoadBalancingMode
Load balancing mode for the backend.
For details about load balancing modes, see documentation.
  • ROUND_ROBIN: Round robin load balancing mode.
    All endpoints of the backend take their turns to receive requests attributed to the backend.
  • RANDOM: Random load balancing mode. Default value.
    For a request attributed to the backend, an endpoint that receives it is picked at random.
  • LEAST_REQUEST: Least request load balancing mode.
    To pick an endpoint that receives a request attributed to the backend, the power of two choices algorithm is used; that is, two endpoints are picked at random, and the request is sent to the one which has the fewest active requests.
  • MAGLEV_HASH: Maglev hashing load balancing mode.
    Each endpoint is hashed, and a hash table with 65537 rows is filled accordingly, so that every endpoint occupies the same amount of rows. An attribute of each request is also hashed by the same function (if session affinity is enabled for the backend group, the attribute to hash is specified in session affinity configuration). The row with the same number as the resulting value is looked up in the table to determine the endpoint that receives the request.
    If the backend group with session affinity enabled contains more than one backend with positive weight, endpoints for backends with MAGLEV_HASH load balancing mode are picked at RANDOM instead.

TargetGroupsBackend

Field Description
target_group_ids[] string
List of ID's of target groups that belong to the backend.
To get the ID's of all available target groups, make a TargetGroupService.List request. The number of elements must be greater than 0.

HealthCheck

Field Description
timeout google.protobuf.Duration
Required. Health check timeout.
The timeout is the time allowed for the target to respond to a check. If the target doesn't respond in time, the check is considered failed.
interval google.protobuf.Duration
Required. Base interval between consecutive health checks.
interval_jitter_percent double
healthy_threshold int64
Number of consecutive successful health checks required to mark an unhealthy target as healthy.
Both 0 and 1 values amount to one successful check required.
The value is ignored when a load balancer is initialized; a target is marked healthy after one successful check.
Default value: 0.
unhealthy_threshold int64
Number of consecutive failed health checks required to mark a healthy target as unhealthy.
Both 0 and 1 values amount to one unsuccessful check required.
The value is ignored if a health check is failed due to an HTTP 503 Service Unavailable response from the target (not applicable to TCP stream health checks). The target is immediately marked unhealthy.
Default value: 0.
healthcheck_port int64
Port used for health checks.
If not specified, the backend port (HttpBackend.port or GrpcBackend.port) is used for health checks. Acceptable values are 0 to 65535, inclusive.
healthcheck oneof: stream, http or grpc
Protocol-specific health check settings.
The protocols of the backend and of its health check may differ, e.g. a gRPC health check may be specified for an HTTP backend.
  stream StreamHealthCheck
TCP stream health check settings.
  http HttpHealthCheck
HTTP health check settings.
  grpc GrpcHealthCheck
gRPC health check settings.
transport_settings oneof: plaintext or tls
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  plaintext PlaintextTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  tls SecureTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.

StreamHealthCheck

Field Description
send Payload
Message sent to targets during TCP data transfer.
If not specified, no data is sent to the target.
receive Payload
Data that must be contained in the messages received from targets for a successful health check.
If not specified, no messages are expected from targets, and those that are received are not checked.

HttpHealthCheck

Field Description
host string
Value for the HTTP/1.1 Host header or the HTTP/2 :authority pseudo-header used in requests to targets.
path string
Required. HTTP path used in requests to targets: request URI for HTTP/1.1 request line or value for the HTTP/2 :path pseudo-header.
use_http2 bool
Enables HTTP/2 usage in health checks.
Default value: false, HTTP/1.1 is used.

GrpcHealthCheck

Field Description
service_name string
Name of the gRPC service to be checked.
If not specified, overall health is checked.
For details about the concept, see GRPC Health Checking Protocol.

PlaintextTransportSettings

SecureTransportSettings

Field Description
sni string
SNI string for TLS connections.
validation_context ValidationContext
Validation context for backend TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

BackendTls

Field Description
sni string
Server Name Indication (SNI) string for TLS connections.
validation_context ValidationContext
Validation context for TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

ConnectionSessionAffinity

Field Description
source_ip bool
Specifies whether an IP address of the client is used to define a connection for session affinity.

HeaderSessionAffinity

Field Description
header_name string
Name of the HTTP header field that is used for session affinity. The string length in characters must be 1-256.

CookieSessionAffinity

Field Description
name string
Name of the cookie that is used for session affinity. The string length in characters must be 1-256.
ttl google.protobuf.Duration
Maximum age of cookies that are generated for sessions.
If set to 0, session cookies are used, which are stored by clients in temporary memory and are deleted on client restarts.
If not set, the balancer does not generate cookies and only uses incoming ones for establishing session affinity.

StreamBackendGroup

Field Description
backends[] StreamBackend
List of stream (TCP) backends.
session_affinity oneof: connection
Session affinity configuration for the backend group.
For details about the concept, see documentation.
If session affinity is configured, the backend group should contain exactly one active backend (i.e. with positive HttpBackend.backend_weight), its HttpBackend.backend_type should be TargetGroupsBackend, and its LoadBalancingConfig.load_balancing_mode should be MAGLEV_HASH. If any of these conditions are not met, session affinity will not work.
  connection ConnectionSessionAffinity
Connection-based session affinity configuration.
For now, a connection is defined only by an IP address of the client.

StreamBackend

Field Description
name string
Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9].
backend_weight google.protobuf.Int64Value
Backend weight. Traffic is distributed between backends of a backend group according to their weights.
Weights must be set either for all backends in a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends.
If the weight is non-positive, traffic is not sent to the backend.
load_balancing_config LoadBalancingConfig
Load balancing configuration for the backend.
port int64
Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive.
backend_type oneof: target_groups
Reference to targets that belong to the backend.
  target_groups TargetGroupsBackend
Target groups that belong to the backend. For details about target groups, see documentation.
healthchecks[] HealthCheck
Health checks to perform on targets from target groups. For details about health checking, see documentation.
If no health checks are specified, active health checking is not performed.
tls BackendTls
Settings for TLS connections between load balancer nodes and backend targets.
If specified, the load balancer establishes TLS-encrypted TCP connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted TCP connections with targets.
enable_proxy_protocol bool
If set, proxy protocol will be enabled for this backend.

LoadBalancingConfig

Field Description
panic_threshold int64
Threshold for panic mode.
If percentage of healthy backends in the group drops below threshold, panic mode will be activated and traffic will be routed to all backends, regardless of their health check status. This helps to avoid overloading healthy backends. For details about panic mode, see documentation.
If the value is 0, panic mode will never be activated and traffic is routed only to healthy backends at all times.
Default value: 0. Acceptable values are 0 to 100, inclusive.
locality_aware_routing_percent int64
Percentage of traffic that a load balancer node sends to healthy backends in its availability zone. The rest is divided equally between other zones. For details about zone-aware routing, see documentation.
If there are no healthy backends in an availability zone, all the traffic is divided between other zones.
If strict_locality is true, the specified value is ignored. A load balancer node sends all the traffic within its availability zone, regardless of backends' health.
Default value: 0. Acceptable values are 0 to 100, inclusive.
strict_locality bool
Specifies whether a load balancer node should only send traffic to backends in its availability zone, regardless of their health, and ignore backends in other zones.
If set to true and there are no healthy backends in the zone, the node in this zone will respond to incoming traffic with errors. For details about strict locality, see documentation.
If strict_locality is true, the value specified in locality_aware_routing_percent is ignored.
Default value: false.
mode enum LoadBalancingMode
Load balancing mode for the backend.
For details about load balancing modes, see documentation.
  • ROUND_ROBIN: Round robin load balancing mode.
    All endpoints of the backend take their turns to receive requests attributed to the backend.
  • RANDOM: Random load balancing mode. Default value.
    For a request attributed to the backend, an endpoint that receives it is picked at random.
  • LEAST_REQUEST: Least request load balancing mode.
    To pick an endpoint that receives a request attributed to the backend, the power of two choices algorithm is used; that is, two endpoints are picked at random, and the request is sent to the one which has the fewest active requests.
  • MAGLEV_HASH: Maglev hashing load balancing mode.
    Each endpoint is hashed, and a hash table with 65537 rows is filled accordingly, so that every endpoint occupies the same amount of rows. An attribute of each request is also hashed by the same function (if session affinity is enabled for the backend group, the attribute to hash is specified in session affinity configuration). The row with the same number as the resulting value is looked up in the table to determine the endpoint that receives the request.
    If the backend group with session affinity enabled contains more than one backend with positive weight, endpoints for backends with MAGLEV_HASH load balancing mode are picked at RANDOM instead.

TargetGroupsBackend

Field Description
target_group_ids[] string
List of ID's of target groups that belong to the backend.
To get the ID's of all available target groups, make a TargetGroupService.List request. The number of elements must be greater than 0.

HealthCheck

Field Description
timeout google.protobuf.Duration
Required. Health check timeout.
The timeout is the time allowed for the target to respond to a check. If the target doesn't respond in time, the check is considered failed.
interval google.protobuf.Duration
Required. Base interval between consecutive health checks.
interval_jitter_percent double
healthy_threshold int64
Number of consecutive successful health checks required to mark an unhealthy target as healthy.
Both 0 and 1 values amount to one successful check required.
The value is ignored when a load balancer is initialized; a target is marked healthy after one successful check.
Default value: 0.
unhealthy_threshold int64
Number of consecutive failed health checks required to mark a healthy target as unhealthy.
Both 0 and 1 values amount to one unsuccessful check required.
The value is ignored if a health check is failed due to an HTTP 503 Service Unavailable response from the target (not applicable to TCP stream health checks). The target is immediately marked unhealthy.
Default value: 0.
healthcheck_port int64
Port used for health checks.
If not specified, the backend port (HttpBackend.port or GrpcBackend.port) is used for health checks. Acceptable values are 0 to 65535, inclusive.
healthcheck oneof: stream, http or grpc
Protocol-specific health check settings.
The protocols of the backend and of its health check may differ, e.g. a gRPC health check may be specified for an HTTP backend.
  stream StreamHealthCheck
TCP stream health check settings.
  http HttpHealthCheck
HTTP health check settings.
  grpc GrpcHealthCheck
gRPC health check settings.
transport_settings oneof: plaintext or tls
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  plaintext PlaintextTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  tls SecureTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.

StreamHealthCheck

Field Description
send Payload
Message sent to targets during TCP data transfer.
If not specified, no data is sent to the target.
receive Payload
Data that must be contained in the messages received from targets for a successful health check.
If not specified, no messages are expected from targets, and those that are received are not checked.

HttpHealthCheck

Field Description
host string
Value for the HTTP/1.1 Host header or the HTTP/2 :authority pseudo-header used in requests to targets.
path string
Required. HTTP path used in requests to targets: request URI for HTTP/1.1 request line or value for the HTTP/2 :path pseudo-header.
use_http2 bool
Enables HTTP/2 usage in health checks.
Default value: false, HTTP/1.1 is used.

GrpcHealthCheck

Field Description
service_name string
Name of the gRPC service to be checked.
If not specified, overall health is checked.
For details about the concept, see GRPC Health Checking Protocol.

PlaintextTransportSettings

SecureTransportSettings

Field Description
sni string
SNI string for TLS connections.
validation_context ValidationContext
Validation context for backend TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

BackendTls

Field Description
sni string
Server Name Indication (SNI) string for TLS connections.
validation_context ValidationContext
Validation context for TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

ConnectionSessionAffinity

Field Description
source_ip bool
Specifies whether an IP address of the client is used to define a connection for session affinity.

RemoveBackend

Removes backends from the specified backend group.

rpc RemoveBackend (RemoveBackendRequest) returns (operation.Operation)

Metadata and response of Operation:

    Operation.metadata:RemoveBackendMetadata

    Operation.response:BackendGroup

RemoveBackendRequest

Field Description
backend_group_id string
Required. ID of the backend group to remove a backend from.
To get the backend group ID, make a BackendGroupService.List request.
backend_name string
Required. Name of the backend to remove.
To get the backend name, make a BackendGroupService.Get request.

Operation

Field Description
id string
ID of the operation.
description string
Description of the operation. 0-256 characters long.
created_at google.protobuf.Timestamp
Creation timestamp.
created_by string
ID of the user or service account who initiated the operation.
modified_at google.protobuf.Timestamp
The time when the Operation resource was last modified.
done bool
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 google.protobuf.Any<RemoveBackendMetadata>
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.
result oneof: error or response
The operation result. If done == false and there was no failure detected, neither error nor response is set. If done == false and there was a failure detected, error is set. If done == true, exactly one of error or response is set.
  error google.rpc.Status
The error result of the operation in case of failure or cancellation.
  response google.protobuf.Any<BackendGroup>
if operation finished successfully.

RemoveBackendMetadata

Field Description
backend_group_id string
ID of the backend group that the backend is being removed from.
backend_name string
Name of the backend that is being removed.

BackendGroup

Field Description
id string
ID of the backend group. Generated at creation time.
name string
Name of the backend group. The name is unique within the folder. The string length in characters is 3-63.
description string
Description of the backend group. The string is 0-256 characters long.
folder_id string
ID of the folder that the backend group belongs to.
labels map<string,string>
Backend group labels as key:value pairs. For details about the concept, see documentation. The maximum number of labels is 64.
backend oneof: http, grpc or stream
Backends that the backend group consists of.
  http HttpBackendGroup
List of HTTP backends that the backend group consists of.
  grpc GrpcBackendGroup
List of gRPC backends that the backend group consists of.
  stream StreamBackendGroup
List of stream (TCP) backends that the backend group consists of.
created_at google.protobuf.Timestamp
Creation timestamp.

HttpBackendGroup

Field Description
backends[] HttpBackend
List of HTTP backends.
session_affinity oneof: connection, header or cookie
Session affinity configuration for the backend group.
For details about the concept, see documentation.
If session affinity is configured, the backend group should contain exactly one active backend (i.e. with positive HttpBackend.backend_weight), its HttpBackend.backend_type should be TargetGroupsBackend, and its LoadBalancingConfig.load_balancing_mode should be MAGLEV_HASH. If any of these conditions are not met, session affinity will not work.
  connection ConnectionSessionAffinity
Connection-based session affinity configuration.
For now, a connection is defined only by an IP address of the client.
  header HeaderSessionAffinity
HTTP-header-field-based session affinity configuration.
  cookie CookieSessionAffinity
Cookie-based session affinity configuration.

HttpBackend

Field Description
name string
Required. Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9].
backend_weight google.protobuf.Int64Value
Backend weight. Traffic is distributed between backends of a backend group according to their weights.
Weights must be set either for all backends in a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends.
If the weight is non-positive, traffic is not sent to the backend.
load_balancing_config LoadBalancingConfig
Load balancing configuration for the backend.
port int64
Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive.
backend_type oneof: target_groups or storage_bucket
Reference to targets that belong to the backend.
A backend may be a set of target groups or an Object Storage bucket. For details about backend types, see documentation.
  target_groups TargetGroupsBackend
Target groups that belong to the backend. For details about target groups, see documentation.
  storage_bucket StorageBucketBackend
Object Storage bucket to use as the backend. For details about buckets, see documentation.
If a bucket is used as a backend, the list of bucket objects and the objects themselves must be publicly accessible. For instructions, see documentation.
healthchecks[] HealthCheck
Health checks to perform on targets from target groups. For details about health checking, see documentation.
If no health checks are specified, active health checking is not performed.
tls BackendTls
Settings for TLS connections between load balancer nodes and backend targets.
If specified, the load balancer establishes HTTPS (HTTP over TLS) connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted HTTP connections with targets.
use_http2 bool
Enables HTTP/2 usage in connections between load balancer nodes and backend targets.
Default value: false, HTTP/1.1 is used.

LoadBalancingConfig

Field Description
panic_threshold int64
Threshold for panic mode.
If percentage of healthy backends in the group drops below threshold, panic mode will be activated and traffic will be routed to all backends, regardless of their health check status. This helps to avoid overloading healthy backends. For details about panic mode, see documentation.
If the value is 0, panic mode will never be activated and traffic is routed only to healthy backends at all times.
Default value: 0. Acceptable values are 0 to 100, inclusive.
locality_aware_routing_percent int64
Percentage of traffic that a load balancer node sends to healthy backends in its availability zone. The rest is divided equally between other zones. For details about zone-aware routing, see documentation.
If there are no healthy backends in an availability zone, all the traffic is divided between other zones.
If strict_locality is true, the specified value is ignored. A load balancer node sends all the traffic within its availability zone, regardless of backends' health.
Default value: 0. Acceptable values are 0 to 100, inclusive.
strict_locality bool
Specifies whether a load balancer node should only send traffic to backends in its availability zone, regardless of their health, and ignore backends in other zones.
If set to true and there are no healthy backends in the zone, the node in this zone will respond to incoming traffic with errors. For details about strict locality, see documentation.
If strict_locality is true, the value specified in locality_aware_routing_percent is ignored.
Default value: false.
mode enum LoadBalancingMode
Load balancing mode for the backend.
For details about load balancing modes, see documentation.
  • ROUND_ROBIN: Round robin load balancing mode.
    All endpoints of the backend take their turns to receive requests attributed to the backend.
  • RANDOM: Random load balancing mode. Default value.
    For a request attributed to the backend, an endpoint that receives it is picked at random.
  • LEAST_REQUEST: Least request load balancing mode.
    To pick an endpoint that receives a request attributed to the backend, the power of two choices algorithm is used; that is, two endpoints are picked at random, and the request is sent to the one which has the fewest active requests.
  • MAGLEV_HASH: Maglev hashing load balancing mode.
    Each endpoint is hashed, and a hash table with 65537 rows is filled accordingly, so that every endpoint occupies the same amount of rows. An attribute of each request is also hashed by the same function (if session affinity is enabled for the backend group, the attribute to hash is specified in session affinity configuration). The row with the same number as the resulting value is looked up in the table to determine the endpoint that receives the request.
    If the backend group with session affinity enabled contains more than one backend with positive weight, endpoints for backends with MAGLEV_HASH load balancing mode are picked at RANDOM instead.

TargetGroupsBackend

Field Description
target_group_ids[] string
List of ID's of target groups that belong to the backend.
To get the ID's of all available target groups, make a TargetGroupService.List request. The number of elements must be greater than 0.

StorageBucketBackend

Field Description
bucket string
Required. Name of the bucket.

HealthCheck

Field Description
timeout google.protobuf.Duration
Required. Health check timeout.
The timeout is the time allowed for the target to respond to a check. If the target doesn't respond in time, the check is considered failed.
interval google.protobuf.Duration
Required. Base interval between consecutive health checks.
interval_jitter_percent double
healthy_threshold int64
Number of consecutive successful health checks required to mark an unhealthy target as healthy.
Both 0 and 1 values amount to one successful check required.
The value is ignored when a load balancer is initialized; a target is marked healthy after one successful check.
Default value: 0.
unhealthy_threshold int64
Number of consecutive failed health checks required to mark a healthy target as unhealthy.
Both 0 and 1 values amount to one unsuccessful check required.
The value is ignored if a health check is failed due to an HTTP 503 Service Unavailable response from the target (not applicable to TCP stream health checks). The target is immediately marked unhealthy.
Default value: 0.
healthcheck_port int64
Port used for health checks.
If not specified, the backend port (HttpBackend.port or GrpcBackend.port) is used for health checks. Acceptable values are 0 to 65535, inclusive.
healthcheck oneof: stream, http or grpc
Protocol-specific health check settings.
The protocols of the backend and of its health check may differ, e.g. a gRPC health check may be specified for an HTTP backend.
  stream StreamHealthCheck
TCP stream health check settings.
  http HttpHealthCheck
HTTP health check settings.
  grpc GrpcHealthCheck
gRPC health check settings.
transport_settings oneof: plaintext or tls
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  plaintext PlaintextTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  tls SecureTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.

StreamHealthCheck

Field Description
send Payload
Message sent to targets during TCP data transfer.
If not specified, no data is sent to the target.
receive Payload
Data that must be contained in the messages received from targets for a successful health check.
If not specified, no messages are expected from targets, and those that are received are not checked.

HttpHealthCheck

Field Description
host string
Value for the HTTP/1.1 Host header or the HTTP/2 :authority pseudo-header used in requests to targets.
path string
Required. HTTP path used in requests to targets: request URI for HTTP/1.1 request line or value for the HTTP/2 :path pseudo-header.
use_http2 bool
Enables HTTP/2 usage in health checks.
Default value: false, HTTP/1.1 is used.

GrpcHealthCheck

Field Description
service_name string
Name of the gRPC service to be checked.
If not specified, overall health is checked.
For details about the concept, see GRPC Health Checking Protocol.

PlaintextTransportSettings

SecureTransportSettings

Field Description
sni string
SNI string for TLS connections.
validation_context ValidationContext
Validation context for backend TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

BackendTls

Field Description
sni string
Server Name Indication (SNI) string for TLS connections.
validation_context ValidationContext
Validation context for TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

ConnectionSessionAffinity

Field Description
source_ip bool
Specifies whether an IP address of the client is used to define a connection for session affinity.

HeaderSessionAffinity

Field Description
header_name string
Name of the HTTP header field that is used for session affinity. The string length in characters must be 1-256.

CookieSessionAffinity

Field Description
name string
Name of the cookie that is used for session affinity. The string length in characters must be 1-256.
ttl google.protobuf.Duration
Maximum age of cookies that are generated for sessions.
If set to 0, session cookies are used, which are stored by clients in temporary memory and are deleted on client restarts.
If not set, the balancer does not generate cookies and only uses incoming ones for establishing session affinity.

GrpcBackendGroup

Field Description
backends[] GrpcBackend
List of gRPC backends.
session_affinity oneof: connection, header or cookie
Session affinity configuration for the backend group.
For details about the concept, see documentation.
If session affinity is configured, the backend group should contain exactly one active backend (i.e. with positive GrpcBackend.backend_weight), and its LoadBalancingConfig.load_balancing_mode should be MAGLEV_HASH. If any of these conditions are not met, session affinity will not work.
  connection ConnectionSessionAffinity
Connection-based session affinity configuration.
For now, a connection is defined only by an IP address of the client.
  header HeaderSessionAffinity
HTTP-header-field-based session affinity configuration.
  cookie CookieSessionAffinity
Cookie-based session affinity configuration.

GrpcBackend

Field Description
name string
Required. Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9].
backend_weight google.protobuf.Int64Value
Backend weight. Traffic is distributed between backends of a backend group according to their weights.
Weights must be set either for all backends of a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends.
If the weight is non-positive, traffic is not sent to the backend.
load_balancing_config LoadBalancingConfig
Load balancing configuration for the backend.
port int64
Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive.
backend_type oneof: target_groups
Reference to targets that belong to the backend. For now, targets are referenced via target groups.
  target_groups TargetGroupsBackend
Target groups that belong to the backend.
healthchecks[] HealthCheck
Health checks to perform on targets from target groups. For details about health checking, see documentation.
If no health checks are specified, active health checking is not performed.
tls BackendTls
Settings for TLS connections between load balancer nodes and backend targets.
If specified, the load balancer establishes HTTPS (HTTP over TLS) connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted HTTP connections with targets.

LoadBalancingConfig

Field Description
panic_threshold int64
Threshold for panic mode.
If percentage of healthy backends in the group drops below threshold, panic mode will be activated and traffic will be routed to all backends, regardless of their health check status. This helps to avoid overloading healthy backends. For details about panic mode, see documentation.
If the value is 0, panic mode will never be activated and traffic is routed only to healthy backends at all times.
Default value: 0. Acceptable values are 0 to 100, inclusive.
locality_aware_routing_percent int64
Percentage of traffic that a load balancer node sends to healthy backends in its availability zone. The rest is divided equally between other zones. For details about zone-aware routing, see documentation.
If there are no healthy backends in an availability zone, all the traffic is divided between other zones.
If strict_locality is true, the specified value is ignored. A load balancer node sends all the traffic within its availability zone, regardless of backends' health.
Default value: 0. Acceptable values are 0 to 100, inclusive.
strict_locality bool
Specifies whether a load balancer node should only send traffic to backends in its availability zone, regardless of their health, and ignore backends in other zones.
If set to true and there are no healthy backends in the zone, the node in this zone will respond to incoming traffic with errors. For details about strict locality, see documentation.
If strict_locality is true, the value specified in locality_aware_routing_percent is ignored.
Default value: false.
mode enum LoadBalancingMode
Load balancing mode for the backend.
For details about load balancing modes, see documentation.
  • ROUND_ROBIN: Round robin load balancing mode.
    All endpoints of the backend take their turns to receive requests attributed to the backend.
  • RANDOM: Random load balancing mode. Default value.
    For a request attributed to the backend, an endpoint that receives it is picked at random.
  • LEAST_REQUEST: Least request load balancing mode.
    To pick an endpoint that receives a request attributed to the backend, the power of two choices algorithm is used; that is, two endpoints are picked at random, and the request is sent to the one which has the fewest active requests.
  • MAGLEV_HASH: Maglev hashing load balancing mode.
    Each endpoint is hashed, and a hash table with 65537 rows is filled accordingly, so that every endpoint occupies the same amount of rows. An attribute of each request is also hashed by the same function (if session affinity is enabled for the backend group, the attribute to hash is specified in session affinity configuration). The row with the same number as the resulting value is looked up in the table to determine the endpoint that receives the request.
    If the backend group with session affinity enabled contains more than one backend with positive weight, endpoints for backends with MAGLEV_HASH load balancing mode are picked at RANDOM instead.

TargetGroupsBackend

Field Description
target_group_ids[] string
List of ID's of target groups that belong to the backend.
To get the ID's of all available target groups, make a TargetGroupService.List request. The number of elements must be greater than 0.

HealthCheck

Field Description
timeout google.protobuf.Duration
Required. Health check timeout.
The timeout is the time allowed for the target to respond to a check. If the target doesn't respond in time, the check is considered failed.
interval google.protobuf.Duration
Required. Base interval between consecutive health checks.
interval_jitter_percent double
healthy_threshold int64
Number of consecutive successful health checks required to mark an unhealthy target as healthy.
Both 0 and 1 values amount to one successful check required.
The value is ignored when a load balancer is initialized; a target is marked healthy after one successful check.
Default value: 0.
unhealthy_threshold int64
Number of consecutive failed health checks required to mark a healthy target as unhealthy.
Both 0 and 1 values amount to one unsuccessful check required.
The value is ignored if a health check is failed due to an HTTP 503 Service Unavailable response from the target (not applicable to TCP stream health checks). The target is immediately marked unhealthy.
Default value: 0.
healthcheck_port int64
Port used for health checks.
If not specified, the backend port (HttpBackend.port or GrpcBackend.port) is used for health checks. Acceptable values are 0 to 65535, inclusive.
healthcheck oneof: stream, http or grpc
Protocol-specific health check settings.
The protocols of the backend and of its health check may differ, e.g. a gRPC health check may be specified for an HTTP backend.
  stream StreamHealthCheck
TCP stream health check settings.
  http HttpHealthCheck
HTTP health check settings.
  grpc GrpcHealthCheck
gRPC health check settings.
transport_settings oneof: plaintext or tls
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  plaintext PlaintextTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  tls SecureTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.

StreamHealthCheck

Field Description
send Payload
Message sent to targets during TCP data transfer.
If not specified, no data is sent to the target.
receive Payload
Data that must be contained in the messages received from targets for a successful health check.
If not specified, no messages are expected from targets, and those that are received are not checked.

HttpHealthCheck

Field Description
host string
Value for the HTTP/1.1 Host header or the HTTP/2 :authority pseudo-header used in requests to targets.
path string
Required. HTTP path used in requests to targets: request URI for HTTP/1.1 request line or value for the HTTP/2 :path pseudo-header.
use_http2 bool
Enables HTTP/2 usage in health checks.
Default value: false, HTTP/1.1 is used.

GrpcHealthCheck

Field Description
service_name string
Name of the gRPC service to be checked.
If not specified, overall health is checked.
For details about the concept, see GRPC Health Checking Protocol.

PlaintextTransportSettings

SecureTransportSettings

Field Description
sni string
SNI string for TLS connections.
validation_context ValidationContext
Validation context for backend TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

BackendTls

Field Description
sni string
Server Name Indication (SNI) string for TLS connections.
validation_context ValidationContext
Validation context for TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

ConnectionSessionAffinity

Field Description
source_ip bool
Specifies whether an IP address of the client is used to define a connection for session affinity.

HeaderSessionAffinity

Field Description
header_name string
Name of the HTTP header field that is used for session affinity. The string length in characters must be 1-256.

CookieSessionAffinity

Field Description
name string
Name of the cookie that is used for session affinity. The string length in characters must be 1-256.
ttl google.protobuf.Duration
Maximum age of cookies that are generated for sessions.
If set to 0, session cookies are used, which are stored by clients in temporary memory and are deleted on client restarts.
If not set, the balancer does not generate cookies and only uses incoming ones for establishing session affinity.

StreamBackendGroup

Field Description
backends[] StreamBackend
List of stream (TCP) backends.
session_affinity oneof: connection
Session affinity configuration for the backend group.
For details about the concept, see documentation.
If session affinity is configured, the backend group should contain exactly one active backend (i.e. with positive HttpBackend.backend_weight), its HttpBackend.backend_type should be TargetGroupsBackend, and its LoadBalancingConfig.load_balancing_mode should be MAGLEV_HASH. If any of these conditions are not met, session affinity will not work.
  connection ConnectionSessionAffinity
Connection-based session affinity configuration.
For now, a connection is defined only by an IP address of the client.

StreamBackend

Field Description
name string
Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9].
backend_weight google.protobuf.Int64Value
Backend weight. Traffic is distributed between backends of a backend group according to their weights.
Weights must be set either for all backends in a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends.
If the weight is non-positive, traffic is not sent to the backend.
load_balancing_config LoadBalancingConfig
Load balancing configuration for the backend.
port int64
Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive.
backend_type oneof: target_groups
Reference to targets that belong to the backend.
  target_groups TargetGroupsBackend
Target groups that belong to the backend. For details about target groups, see documentation.
healthchecks[] HealthCheck
Health checks to perform on targets from target groups. For details about health checking, see documentation.
If no health checks are specified, active health checking is not performed.
tls BackendTls
Settings for TLS connections between load balancer nodes and backend targets.
If specified, the load balancer establishes TLS-encrypted TCP connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted TCP connections with targets.
enable_proxy_protocol bool
If set, proxy protocol will be enabled for this backend.

LoadBalancingConfig

Field Description
panic_threshold int64
Threshold for panic mode.
If percentage of healthy backends in the group drops below threshold, panic mode will be activated and traffic will be routed to all backends, regardless of their health check status. This helps to avoid overloading healthy backends. For details about panic mode, see documentation.
If the value is 0, panic mode will never be activated and traffic is routed only to healthy backends at all times.
Default value: 0. Acceptable values are 0 to 100, inclusive.
locality_aware_routing_percent int64
Percentage of traffic that a load balancer node sends to healthy backends in its availability zone. The rest is divided equally between other zones. For details about zone-aware routing, see documentation.
If there are no healthy backends in an availability zone, all the traffic is divided between other zones.
If strict_locality is true, the specified value is ignored. A load balancer node sends all the traffic within its availability zone, regardless of backends' health.
Default value: 0. Acceptable values are 0 to 100, inclusive.
strict_locality bool
Specifies whether a load balancer node should only send traffic to backends in its availability zone, regardless of their health, and ignore backends in other zones.
If set to true and there are no healthy backends in the zone, the node in this zone will respond to incoming traffic with errors. For details about strict locality, see documentation.
If strict_locality is true, the value specified in locality_aware_routing_percent is ignored.
Default value: false.
mode enum LoadBalancingMode
Load balancing mode for the backend.
For details about load balancing modes, see documentation.
  • ROUND_ROBIN: Round robin load balancing mode.
    All endpoints of the backend take their turns to receive requests attributed to the backend.
  • RANDOM: Random load balancing mode. Default value.
    For a request attributed to the backend, an endpoint that receives it is picked at random.
  • LEAST_REQUEST: Least request load balancing mode.
    To pick an endpoint that receives a request attributed to the backend, the power of two choices algorithm is used; that is, two endpoints are picked at random, and the request is sent to the one which has the fewest active requests.
  • MAGLEV_HASH: Maglev hashing load balancing mode.
    Each endpoint is hashed, and a hash table with 65537 rows is filled accordingly, so that every endpoint occupies the same amount of rows. An attribute of each request is also hashed by the same function (if session affinity is enabled for the backend group, the attribute to hash is specified in session affinity configuration). The row with the same number as the resulting value is looked up in the table to determine the endpoint that receives the request.
    If the backend group with session affinity enabled contains more than one backend with positive weight, endpoints for backends with MAGLEV_HASH load balancing mode are picked at RANDOM instead.

TargetGroupsBackend

Field Description
target_group_ids[] string
List of ID's of target groups that belong to the backend.
To get the ID's of all available target groups, make a TargetGroupService.List request. The number of elements must be greater than 0.

HealthCheck

Field Description
timeout google.protobuf.Duration
Required. Health check timeout.
The timeout is the time allowed for the target to respond to a check. If the target doesn't respond in time, the check is considered failed.
interval google.protobuf.Duration
Required. Base interval between consecutive health checks.
interval_jitter_percent double
healthy_threshold int64
Number of consecutive successful health checks required to mark an unhealthy target as healthy.
Both 0 and 1 values amount to one successful check required.
The value is ignored when a load balancer is initialized; a target is marked healthy after one successful check.
Default value: 0.
unhealthy_threshold int64
Number of consecutive failed health checks required to mark a healthy target as unhealthy.
Both 0 and 1 values amount to one unsuccessful check required.
The value is ignored if a health check is failed due to an HTTP 503 Service Unavailable response from the target (not applicable to TCP stream health checks). The target is immediately marked unhealthy.
Default value: 0.
healthcheck_port int64
Port used for health checks.
If not specified, the backend port (HttpBackend.port or GrpcBackend.port) is used for health checks. Acceptable values are 0 to 65535, inclusive.
healthcheck oneof: stream, http or grpc
Protocol-specific health check settings.
The protocols of the backend and of its health check may differ, e.g. a gRPC health check may be specified for an HTTP backend.
  stream StreamHealthCheck
TCP stream health check settings.
  http HttpHealthCheck
HTTP health check settings.
  grpc GrpcHealthCheck
gRPC health check settings.
transport_settings oneof: plaintext or tls
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  plaintext PlaintextTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  tls SecureTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.

StreamHealthCheck

Field Description
send Payload
Message sent to targets during TCP data transfer.
If not specified, no data is sent to the target.
receive Payload
Data that must be contained in the messages received from targets for a successful health check.
If not specified, no messages are expected from targets, and those that are received are not checked.

HttpHealthCheck

Field Description
host string
Value for the HTTP/1.1 Host header or the HTTP/2 :authority pseudo-header used in requests to targets.
path string
Required. HTTP path used in requests to targets: request URI for HTTP/1.1 request line or value for the HTTP/2 :path pseudo-header.
use_http2 bool
Enables HTTP/2 usage in health checks.
Default value: false, HTTP/1.1 is used.

GrpcHealthCheck

Field Description
service_name string
Name of the gRPC service to be checked.
If not specified, overall health is checked.
For details about the concept, see GRPC Health Checking Protocol.

PlaintextTransportSettings

SecureTransportSettings

Field Description
sni string
SNI string for TLS connections.
validation_context ValidationContext
Validation context for backend TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

BackendTls

Field Description
sni string
Server Name Indication (SNI) string for TLS connections.
validation_context ValidationContext
Validation context for TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

ConnectionSessionAffinity

Field Description
source_ip bool
Specifies whether an IP address of the client is used to define a connection for session affinity.

UpdateBackend

Updates the specified backend.

rpc UpdateBackend (UpdateBackendRequest) returns (operation.Operation)

Metadata and response of Operation:

    Operation.metadata:UpdateBackendMetadata

    Operation.response:BackendGroup

UpdateBackendRequest

Field Description
backend_group_id string
Required. ID of the backend group to update the backend in.
update_mask google.protobuf.FieldMask
Field mask that specifies which attributes of the backend should be updated.
backend oneof: http, grpc or stream
Name of the backend to update (required) and new settings for the backend.
  http HttpBackend
New settings for the HTTP backend.
  grpc GrpcBackend
New settings for the gRPC backend.
  stream StreamBackend
New settings for the stream (TCP) backend.

HttpBackend

Field Description
name string
Required. Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9].
backend_weight google.protobuf.Int64Value
Backend weight. Traffic is distributed between backends of a backend group according to their weights.
Weights must be set either for all backends in a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends.
If the weight is non-positive, traffic is not sent to the backend.
load_balancing_config LoadBalancingConfig
Load balancing configuration for the backend.
port int64
Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive.
backend_type oneof: target_groups or storage_bucket
Reference to targets that belong to the backend.
A backend may be a set of target groups or an Object Storage bucket. For details about backend types, see documentation.
  target_groups TargetGroupsBackend
Target groups that belong to the backend. For details about target groups, see documentation.
  storage_bucket StorageBucketBackend
Object Storage bucket to use as the backend. For details about buckets, see documentation.
If a bucket is used as a backend, the list of bucket objects and the objects themselves must be publicly accessible. For instructions, see documentation.
healthchecks[] HealthCheck
Health checks to perform on targets from target groups. For details about health checking, see documentation.
If no health checks are specified, active health checking is not performed.
tls BackendTls
Settings for TLS connections between load balancer nodes and backend targets.
If specified, the load balancer establishes HTTPS (HTTP over TLS) connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted HTTP connections with targets.
use_http2 bool
Enables HTTP/2 usage in connections between load balancer nodes and backend targets.
Default value: false, HTTP/1.1 is used.

LoadBalancingConfig

Field Description
panic_threshold int64
Threshold for panic mode.
If percentage of healthy backends in the group drops below threshold, panic mode will be activated and traffic will be routed to all backends, regardless of their health check status. This helps to avoid overloading healthy backends. For details about panic mode, see documentation.
If the value is 0, panic mode will never be activated and traffic is routed only to healthy backends at all times.
Default value: 0. Acceptable values are 0 to 100, inclusive.
locality_aware_routing_percent int64
Percentage of traffic that a load balancer node sends to healthy backends in its availability zone. The rest is divided equally between other zones. For details about zone-aware routing, see documentation.
If there are no healthy backends in an availability zone, all the traffic is divided between other zones.
If strict_locality is true, the specified value is ignored. A load balancer node sends all the traffic within its availability zone, regardless of backends' health.
Default value: 0. Acceptable values are 0 to 100, inclusive.
strict_locality bool
Specifies whether a load balancer node should only send traffic to backends in its availability zone, regardless of their health, and ignore backends in other zones.
If set to true and there are no healthy backends in the zone, the node in this zone will respond to incoming traffic with errors. For details about strict locality, see documentation.
If strict_locality is true, the value specified in locality_aware_routing_percent is ignored.
Default value: false.
mode enum LoadBalancingMode
Load balancing mode for the backend.
For details about load balancing modes, see documentation.
  • ROUND_ROBIN: Round robin load balancing mode.
    All endpoints of the backend take their turns to receive requests attributed to the backend.
  • RANDOM: Random load balancing mode. Default value.
    For a request attributed to the backend, an endpoint that receives it is picked at random.
  • LEAST_REQUEST: Least request load balancing mode.
    To pick an endpoint that receives a request attributed to the backend, the power of two choices algorithm is used; that is, two endpoints are picked at random, and the request is sent to the one which has the fewest active requests.
  • MAGLEV_HASH: Maglev hashing load balancing mode.
    Each endpoint is hashed, and a hash table with 65537 rows is filled accordingly, so that every endpoint occupies the same amount of rows. An attribute of each request is also hashed by the same function (if session affinity is enabled for the backend group, the attribute to hash is specified in session affinity configuration). The row with the same number as the resulting value is looked up in the table to determine the endpoint that receives the request.
    If the backend group with session affinity enabled contains more than one backend with positive weight, endpoints for backends with MAGLEV_HASH load balancing mode are picked at RANDOM instead.

TargetGroupsBackend

Field Description
target_group_ids[] string
List of ID's of target groups that belong to the backend.
To get the ID's of all available target groups, make a TargetGroupService.List request. The number of elements must be greater than 0.

StorageBucketBackend

Field Description
bucket string
Required. Name of the bucket.

HealthCheck

Field Description
timeout google.protobuf.Duration
Required. Health check timeout.
The timeout is the time allowed for the target to respond to a check. If the target doesn't respond in time, the check is considered failed.
interval google.protobuf.Duration
Required. Base interval between consecutive health checks.
interval_jitter_percent double
healthy_threshold int64
Number of consecutive successful health checks required to mark an unhealthy target as healthy.
Both 0 and 1 values amount to one successful check required.
The value is ignored when a load balancer is initialized; a target is marked healthy after one successful check.
Default value: 0.
unhealthy_threshold int64
Number of consecutive failed health checks required to mark a healthy target as unhealthy.
Both 0 and 1 values amount to one unsuccessful check required.
The value is ignored if a health check is failed due to an HTTP 503 Service Unavailable response from the target (not applicable to TCP stream health checks). The target is immediately marked unhealthy.
Default value: 0.
healthcheck_port int64
Port used for health checks.
If not specified, the backend port (HttpBackend.port or GrpcBackend.port) is used for health checks. Acceptable values are 0 to 65535, inclusive.
healthcheck oneof: stream, http or grpc
Protocol-specific health check settings.
The protocols of the backend and of its health check may differ, e.g. a gRPC health check may be specified for an HTTP backend.
  stream StreamHealthCheck
TCP stream health check settings.
  http HttpHealthCheck
HTTP health check settings.
  grpc GrpcHealthCheck
gRPC health check settings.
transport_settings oneof: plaintext or tls
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  plaintext PlaintextTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  tls SecureTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.

StreamHealthCheck

Field Description
send Payload
Message sent to targets during TCP data transfer.
If not specified, no data is sent to the target.
receive Payload
Data that must be contained in the messages received from targets for a successful health check.
If not specified, no messages are expected from targets, and those that are received are not checked.

HttpHealthCheck

Field Description
host string
Value for the HTTP/1.1 Host header or the HTTP/2 :authority pseudo-header used in requests to targets.
path string
Required. HTTP path used in requests to targets: request URI for HTTP/1.1 request line or value for the HTTP/2 :path pseudo-header.
use_http2 bool
Enables HTTP/2 usage in health checks.
Default value: false, HTTP/1.1 is used.

GrpcHealthCheck

Field Description
service_name string
Name of the gRPC service to be checked.
If not specified, overall health is checked.
For details about the concept, see GRPC Health Checking Protocol.

PlaintextTransportSettings

SecureTransportSettings

Field Description
sni string
SNI string for TLS connections.
validation_context ValidationContext
Validation context for backend TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

BackendTls

Field Description
sni string
Server Name Indication (SNI) string for TLS connections.
validation_context ValidationContext
Validation context for TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

GrpcBackend

Field Description
name string
Required. Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9].
backend_weight google.protobuf.Int64Value
Backend weight. Traffic is distributed between backends of a backend group according to their weights.
Weights must be set either for all backends of a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends.
If the weight is non-positive, traffic is not sent to the backend.
load_balancing_config LoadBalancingConfig
Load balancing configuration for the backend.
port int64
Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive.
backend_type oneof: target_groups
Reference to targets that belong to the backend. For now, targets are referenced via target groups.
  target_groups TargetGroupsBackend
Target groups that belong to the backend.
healthchecks[] HealthCheck
Health checks to perform on targets from target groups. For details about health checking, see documentation.
If no health checks are specified, active health checking is not performed.
tls BackendTls
Settings for TLS connections between load balancer nodes and backend targets.
If specified, the load balancer establishes HTTPS (HTTP over TLS) connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted HTTP connections with targets.

LoadBalancingConfig

Field Description
panic_threshold int64
Threshold for panic mode.
If percentage of healthy backends in the group drops below threshold, panic mode will be activated and traffic will be routed to all backends, regardless of their health check status. This helps to avoid overloading healthy backends. For details about panic mode, see documentation.
If the value is 0, panic mode will never be activated and traffic is routed only to healthy backends at all times.
Default value: 0. Acceptable values are 0 to 100, inclusive.
locality_aware_routing_percent int64
Percentage of traffic that a load balancer node sends to healthy backends in its availability zone. The rest is divided equally between other zones. For details about zone-aware routing, see documentation.
If there are no healthy backends in an availability zone, all the traffic is divided between other zones.
If strict_locality is true, the specified value is ignored. A load balancer node sends all the traffic within its availability zone, regardless of backends' health.
Default value: 0. Acceptable values are 0 to 100, inclusive.
strict_locality bool
Specifies whether a load balancer node should only send traffic to backends in its availability zone, regardless of their health, and ignore backends in other zones.
If set to true and there are no healthy backends in the zone, the node in this zone will respond to incoming traffic with errors. For details about strict locality, see documentation.
If strict_locality is true, the value specified in locality_aware_routing_percent is ignored.
Default value: false.
mode enum LoadBalancingMode
Load balancing mode for the backend.
For details about load balancing modes, see documentation.
  • ROUND_ROBIN: Round robin load balancing mode.
    All endpoints of the backend take their turns to receive requests attributed to the backend.
  • RANDOM: Random load balancing mode. Default value.
    For a request attributed to the backend, an endpoint that receives it is picked at random.
  • LEAST_REQUEST: Least request load balancing mode.
    To pick an endpoint that receives a request attributed to the backend, the power of two choices algorithm is used; that is, two endpoints are picked at random, and the request is sent to the one which has the fewest active requests.
  • MAGLEV_HASH: Maglev hashing load balancing mode.
    Each endpoint is hashed, and a hash table with 65537 rows is filled accordingly, so that every endpoint occupies the same amount of rows. An attribute of each request is also hashed by the same function (if session affinity is enabled for the backend group, the attribute to hash is specified in session affinity configuration). The row with the same number as the resulting value is looked up in the table to determine the endpoint that receives the request.
    If the backend group with session affinity enabled contains more than one backend with positive weight, endpoints for backends with MAGLEV_HASH load balancing mode are picked at RANDOM instead.

TargetGroupsBackend

Field Description
target_group_ids[] string
List of ID's of target groups that belong to the backend.
To get the ID's of all available target groups, make a TargetGroupService.List request. The number of elements must be greater than 0.

HealthCheck

Field Description
timeout google.protobuf.Duration
Required. Health check timeout.
The timeout is the time allowed for the target to respond to a check. If the target doesn't respond in time, the check is considered failed.
interval google.protobuf.Duration
Required. Base interval between consecutive health checks.
interval_jitter_percent double
healthy_threshold int64
Number of consecutive successful health checks required to mark an unhealthy target as healthy.
Both 0 and 1 values amount to one successful check required.
The value is ignored when a load balancer is initialized; a target is marked healthy after one successful check.
Default value: 0.
unhealthy_threshold int64
Number of consecutive failed health checks required to mark a healthy target as unhealthy.
Both 0 and 1 values amount to one unsuccessful check required.
The value is ignored if a health check is failed due to an HTTP 503 Service Unavailable response from the target (not applicable to TCP stream health checks). The target is immediately marked unhealthy.
Default value: 0.
healthcheck_port int64
Port used for health checks.
If not specified, the backend port (HttpBackend.port or GrpcBackend.port) is used for health checks. Acceptable values are 0 to 65535, inclusive.
healthcheck oneof: stream, http or grpc
Protocol-specific health check settings.
The protocols of the backend and of its health check may differ, e.g. a gRPC health check may be specified for an HTTP backend.
  stream StreamHealthCheck
TCP stream health check settings.
  http HttpHealthCheck
HTTP health check settings.
  grpc GrpcHealthCheck
gRPC health check settings.
transport_settings oneof: plaintext or tls
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  plaintext PlaintextTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  tls SecureTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.

StreamHealthCheck

Field Description
send Payload
Message sent to targets during TCP data transfer.
If not specified, no data is sent to the target.
receive Payload
Data that must be contained in the messages received from targets for a successful health check.
If not specified, no messages are expected from targets, and those that are received are not checked.

HttpHealthCheck

Field Description
host string
Value for the HTTP/1.1 Host header or the HTTP/2 :authority pseudo-header used in requests to targets.
path string
Required. HTTP path used in requests to targets: request URI for HTTP/1.1 request line or value for the HTTP/2 :path pseudo-header.
use_http2 bool
Enables HTTP/2 usage in health checks.
Default value: false, HTTP/1.1 is used.

GrpcHealthCheck

Field Description
service_name string
Name of the gRPC service to be checked.
If not specified, overall health is checked.
For details about the concept, see GRPC Health Checking Protocol.

PlaintextTransportSettings

SecureTransportSettings

Field Description
sni string
SNI string for TLS connections.
validation_context ValidationContext
Validation context for backend TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

BackendTls

Field Description
sni string
Server Name Indication (SNI) string for TLS connections.
validation_context ValidationContext
Validation context for TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

StreamBackend

Field Description
name string
Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9].
backend_weight google.protobuf.Int64Value
Backend weight. Traffic is distributed between backends of a backend group according to their weights.
Weights must be set either for all backends in a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends.
If the weight is non-positive, traffic is not sent to the backend.
load_balancing_config LoadBalancingConfig
Load balancing configuration for the backend.
port int64
Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive.
backend_type oneof: target_groups
Reference to targets that belong to the backend.
  target_groups TargetGroupsBackend
Target groups that belong to the backend. For details about target groups, see documentation.
healthchecks[] HealthCheck
Health checks to perform on targets from target groups. For details about health checking, see documentation.
If no health checks are specified, active health checking is not performed.
tls BackendTls
Settings for TLS connections between load balancer nodes and backend targets.
If specified, the load balancer establishes TLS-encrypted TCP connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted TCP connections with targets.
enable_proxy_protocol bool
If set, proxy protocol will be enabled for this backend.

LoadBalancingConfig

Field Description
panic_threshold int64
Threshold for panic mode.
If percentage of healthy backends in the group drops below threshold, panic mode will be activated and traffic will be routed to all backends, regardless of their health check status. This helps to avoid overloading healthy backends. For details about panic mode, see documentation.
If the value is 0, panic mode will never be activated and traffic is routed only to healthy backends at all times.
Default value: 0. Acceptable values are 0 to 100, inclusive.
locality_aware_routing_percent int64
Percentage of traffic that a load balancer node sends to healthy backends in its availability zone. The rest is divided equally between other zones. For details about zone-aware routing, see documentation.
If there are no healthy backends in an availability zone, all the traffic is divided between other zones.
If strict_locality is true, the specified value is ignored. A load balancer node sends all the traffic within its availability zone, regardless of backends' health.
Default value: 0. Acceptable values are 0 to 100, inclusive.
strict_locality bool
Specifies whether a load balancer node should only send traffic to backends in its availability zone, regardless of their health, and ignore backends in other zones.
If set to true and there are no healthy backends in the zone, the node in this zone will respond to incoming traffic with errors. For details about strict locality, see documentation.
If strict_locality is true, the value specified in locality_aware_routing_percent is ignored.
Default value: false.
mode enum LoadBalancingMode
Load balancing mode for the backend.
For details about load balancing modes, see documentation.
  • ROUND_ROBIN: Round robin load balancing mode.
    All endpoints of the backend take their turns to receive requests attributed to the backend.
  • RANDOM: Random load balancing mode. Default value.
    For a request attributed to the backend, an endpoint that receives it is picked at random.
  • LEAST_REQUEST: Least request load balancing mode.
    To pick an endpoint that receives a request attributed to the backend, the power of two choices algorithm is used; that is, two endpoints are picked at random, and the request is sent to the one which has the fewest active requests.
  • MAGLEV_HASH: Maglev hashing load balancing mode.
    Each endpoint is hashed, and a hash table with 65537 rows is filled accordingly, so that every endpoint occupies the same amount of rows. An attribute of each request is also hashed by the same function (if session affinity is enabled for the backend group, the attribute to hash is specified in session affinity configuration). The row with the same number as the resulting value is looked up in the table to determine the endpoint that receives the request.
    If the backend group with session affinity enabled contains more than one backend with positive weight, endpoints for backends with MAGLEV_HASH load balancing mode are picked at RANDOM instead.

TargetGroupsBackend

Field Description
target_group_ids[] string
List of ID's of target groups that belong to the backend.
To get the ID's of all available target groups, make a TargetGroupService.List request. The number of elements must be greater than 0.

HealthCheck

Field Description
timeout google.protobuf.Duration
Required. Health check timeout.
The timeout is the time allowed for the target to respond to a check. If the target doesn't respond in time, the check is considered failed.
interval google.protobuf.Duration
Required. Base interval between consecutive health checks.
interval_jitter_percent double
healthy_threshold int64
Number of consecutive successful health checks required to mark an unhealthy target as healthy.
Both 0 and 1 values amount to one successful check required.
The value is ignored when a load balancer is initialized; a target is marked healthy after one successful check.
Default value: 0.
unhealthy_threshold int64
Number of consecutive failed health checks required to mark a healthy target as unhealthy.
Both 0 and 1 values amount to one unsuccessful check required.
The value is ignored if a health check is failed due to an HTTP 503 Service Unavailable response from the target (not applicable to TCP stream health checks). The target is immediately marked unhealthy.
Default value: 0.
healthcheck_port int64
Port used for health checks.
If not specified, the backend port (HttpBackend.port or GrpcBackend.port) is used for health checks. Acceptable values are 0 to 65535, inclusive.
healthcheck oneof: stream, http or grpc
Protocol-specific health check settings.
The protocols of the backend and of its health check may differ, e.g. a gRPC health check may be specified for an HTTP backend.
  stream StreamHealthCheck
TCP stream health check settings.
  http HttpHealthCheck
HTTP health check settings.
  grpc GrpcHealthCheck
gRPC health check settings.
transport_settings oneof: plaintext or tls
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  plaintext PlaintextTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  tls SecureTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.

StreamHealthCheck

Field Description
send Payload
Message sent to targets during TCP data transfer.
If not specified, no data is sent to the target.
receive Payload
Data that must be contained in the messages received from targets for a successful health check.
If not specified, no messages are expected from targets, and those that are received are not checked.

HttpHealthCheck

Field Description
host string
Value for the HTTP/1.1 Host header or the HTTP/2 :authority pseudo-header used in requests to targets.
path string
Required. HTTP path used in requests to targets: request URI for HTTP/1.1 request line or value for the HTTP/2 :path pseudo-header.
use_http2 bool
Enables HTTP/2 usage in health checks.
Default value: false, HTTP/1.1 is used.

GrpcHealthCheck

Field Description
service_name string
Name of the gRPC service to be checked.
If not specified, overall health is checked.
For details about the concept, see GRPC Health Checking Protocol.

PlaintextTransportSettings

SecureTransportSettings

Field Description
sni string
SNI string for TLS connections.
validation_context ValidationContext
Validation context for backend TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

BackendTls

Field Description
sni string
Server Name Indication (SNI) string for TLS connections.
validation_context ValidationContext
Validation context for TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

Operation

Field Description
id string
ID of the operation.
description string
Description of the operation. 0-256 characters long.
created_at google.protobuf.Timestamp
Creation timestamp.
created_by string
ID of the user or service account who initiated the operation.
modified_at google.protobuf.Timestamp
The time when the Operation resource was last modified.
done bool
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 google.protobuf.Any<UpdateBackendMetadata>
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.
result oneof: error or response
The operation result. If done == false and there was no failure detected, neither error nor response is set. If done == false and there was a failure detected, error is set. If done == true, exactly one of error or response is set.
  error google.rpc.Status
The error result of the operation in case of failure or cancellation.
  response google.protobuf.Any<BackendGroup>
if operation finished successfully.

UpdateBackendMetadata

Field Description
backend_group_id string
ID of the backend group that the backend is being updated it.
backend_name string
Name of the backend that is being updated.

BackendGroup

Field Description
id string
ID of the backend group. Generated at creation time.
name string
Name of the backend group. The name is unique within the folder. The string length in characters is 3-63.
description string
Description of the backend group. The string is 0-256 characters long.
folder_id string
ID of the folder that the backend group belongs to.
labels map<string,string>
Backend group labels as key:value pairs. For details about the concept, see documentation. The maximum number of labels is 64.
backend oneof: http, grpc or stream
Backends that the backend group consists of.
  http HttpBackendGroup
List of HTTP backends that the backend group consists of.
  grpc GrpcBackendGroup
List of gRPC backends that the backend group consists of.
  stream StreamBackendGroup
List of stream (TCP) backends that the backend group consists of.
created_at google.protobuf.Timestamp
Creation timestamp.

HttpBackendGroup

Field Description
backends[] HttpBackend
List of HTTP backends.
session_affinity oneof: connection, header or cookie
Session affinity configuration for the backend group.
For details about the concept, see documentation.
If session affinity is configured, the backend group should contain exactly one active backend (i.e. with positive HttpBackend.backend_weight), its HttpBackend.backend_type should be TargetGroupsBackend, and its LoadBalancingConfig.load_balancing_mode should be MAGLEV_HASH. If any of these conditions are not met, session affinity will not work.
  connection ConnectionSessionAffinity
Connection-based session affinity configuration.
For now, a connection is defined only by an IP address of the client.
  header HeaderSessionAffinity
HTTP-header-field-based session affinity configuration.
  cookie CookieSessionAffinity
Cookie-based session affinity configuration.

HttpBackend

Field Description
name string
Required. Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9].
backend_weight google.protobuf.Int64Value
Backend weight. Traffic is distributed between backends of a backend group according to their weights.
Weights must be set either for all backends in a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends.
If the weight is non-positive, traffic is not sent to the backend.
load_balancing_config LoadBalancingConfig
Load balancing configuration for the backend.
port int64
Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive.
backend_type oneof: target_groups or storage_bucket
Reference to targets that belong to the backend.
A backend may be a set of target groups or an Object Storage bucket. For details about backend types, see documentation.
  target_groups TargetGroupsBackend
Target groups that belong to the backend. For details about target groups, see documentation.
  storage_bucket StorageBucketBackend
Object Storage bucket to use as the backend. For details about buckets, see documentation.
If a bucket is used as a backend, the list of bucket objects and the objects themselves must be publicly accessible. For instructions, see documentation.
healthchecks[] HealthCheck
Health checks to perform on targets from target groups. For details about health checking, see documentation.
If no health checks are specified, active health checking is not performed.
tls BackendTls
Settings for TLS connections between load balancer nodes and backend targets.
If specified, the load balancer establishes HTTPS (HTTP over TLS) connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted HTTP connections with targets.
use_http2 bool
Enables HTTP/2 usage in connections between load balancer nodes and backend targets.
Default value: false, HTTP/1.1 is used.

LoadBalancingConfig

Field Description
panic_threshold int64
Threshold for panic mode.
If percentage of healthy backends in the group drops below threshold, panic mode will be activated and traffic will be routed to all backends, regardless of their health check status. This helps to avoid overloading healthy backends. For details about panic mode, see documentation.
If the value is 0, panic mode will never be activated and traffic is routed only to healthy backends at all times.
Default value: 0. Acceptable values are 0 to 100, inclusive.
locality_aware_routing_percent int64
Percentage of traffic that a load balancer node sends to healthy backends in its availability zone. The rest is divided equally between other zones. For details about zone-aware routing, see documentation.
If there are no healthy backends in an availability zone, all the traffic is divided between other zones.
If strict_locality is true, the specified value is ignored. A load balancer node sends all the traffic within its availability zone, regardless of backends' health.
Default value: 0. Acceptable values are 0 to 100, inclusive.
strict_locality bool
Specifies whether a load balancer node should only send traffic to backends in its availability zone, regardless of their health, and ignore backends in other zones.
If set to true and there are no healthy backends in the zone, the node in this zone will respond to incoming traffic with errors. For details about strict locality, see documentation.
If strict_locality is true, the value specified in locality_aware_routing_percent is ignored.
Default value: false.
mode enum LoadBalancingMode
Load balancing mode for the backend.
For details about load balancing modes, see documentation.
  • ROUND_ROBIN: Round robin load balancing mode.
    All endpoints of the backend take their turns to receive requests attributed to the backend.
  • RANDOM: Random load balancing mode. Default value.
    For a request attributed to the backend, an endpoint that receives it is picked at random.
  • LEAST_REQUEST: Least request load balancing mode.
    To pick an endpoint that receives a request attributed to the backend, the power of two choices algorithm is used; that is, two endpoints are picked at random, and the request is sent to the one which has the fewest active requests.
  • MAGLEV_HASH: Maglev hashing load balancing mode.
    Each endpoint is hashed, and a hash table with 65537 rows is filled accordingly, so that every endpoint occupies the same amount of rows. An attribute of each request is also hashed by the same function (if session affinity is enabled for the backend group, the attribute to hash is specified in session affinity configuration). The row with the same number as the resulting value is looked up in the table to determine the endpoint that receives the request.
    If the backend group with session affinity enabled contains more than one backend with positive weight, endpoints for backends with MAGLEV_HASH load balancing mode are picked at RANDOM instead.

TargetGroupsBackend

Field Description
target_group_ids[] string
List of ID's of target groups that belong to the backend.
To get the ID's of all available target groups, make a TargetGroupService.List request. The number of elements must be greater than 0.

StorageBucketBackend

Field Description
bucket string
Required. Name of the bucket.

HealthCheck

Field Description
timeout google.protobuf.Duration
Required. Health check timeout.
The timeout is the time allowed for the target to respond to a check. If the target doesn't respond in time, the check is considered failed.
interval google.protobuf.Duration
Required. Base interval between consecutive health checks.
interval_jitter_percent double
healthy_threshold int64
Number of consecutive successful health checks required to mark an unhealthy target as healthy.
Both 0 and 1 values amount to one successful check required.
The value is ignored when a load balancer is initialized; a target is marked healthy after one successful check.
Default value: 0.
unhealthy_threshold int64
Number of consecutive failed health checks required to mark a healthy target as unhealthy.
Both 0 and 1 values amount to one unsuccessful check required.
The value is ignored if a health check is failed due to an HTTP 503 Service Unavailable response from the target (not applicable to TCP stream health checks). The target is immediately marked unhealthy.
Default value: 0.
healthcheck_port int64
Port used for health checks.
If not specified, the backend port (HttpBackend.port or GrpcBackend.port) is used for health checks. Acceptable values are 0 to 65535, inclusive.
healthcheck oneof: stream, http or grpc
Protocol-specific health check settings.
The protocols of the backend and of its health check may differ, e.g. a gRPC health check may be specified for an HTTP backend.
  stream StreamHealthCheck
TCP stream health check settings.
  http HttpHealthCheck
HTTP health check settings.
  grpc GrpcHealthCheck
gRPC health check settings.
transport_settings oneof: plaintext or tls
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  plaintext PlaintextTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  tls SecureTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.

StreamHealthCheck

Field Description
send Payload
Message sent to targets during TCP data transfer.
If not specified, no data is sent to the target.
receive Payload
Data that must be contained in the messages received from targets for a successful health check.
If not specified, no messages are expected from targets, and those that are received are not checked.

HttpHealthCheck

Field Description
host string
Value for the HTTP/1.1 Host header or the HTTP/2 :authority pseudo-header used in requests to targets.
path string
Required. HTTP path used in requests to targets: request URI for HTTP/1.1 request line or value for the HTTP/2 :path pseudo-header.
use_http2 bool
Enables HTTP/2 usage in health checks.
Default value: false, HTTP/1.1 is used.

GrpcHealthCheck

Field Description
service_name string
Name of the gRPC service to be checked.
If not specified, overall health is checked.
For details about the concept, see GRPC Health Checking Protocol.

PlaintextTransportSettings

SecureTransportSettings

Field Description
sni string
SNI string for TLS connections.
validation_context ValidationContext
Validation context for backend TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

BackendTls

Field Description
sni string
Server Name Indication (SNI) string for TLS connections.
validation_context ValidationContext
Validation context for TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

ConnectionSessionAffinity

Field Description
source_ip bool
Specifies whether an IP address of the client is used to define a connection for session affinity.

HeaderSessionAffinity

Field Description
header_name string
Name of the HTTP header field that is used for session affinity. The string length in characters must be 1-256.

CookieSessionAffinity

Field Description
name string
Name of the cookie that is used for session affinity. The string length in characters must be 1-256.
ttl google.protobuf.Duration
Maximum age of cookies that are generated for sessions.
If set to 0, session cookies are used, which are stored by clients in temporary memory and are deleted on client restarts.
If not set, the balancer does not generate cookies and only uses incoming ones for establishing session affinity.

GrpcBackendGroup

Field Description
backends[] GrpcBackend
List of gRPC backends.
session_affinity oneof: connection, header or cookie
Session affinity configuration for the backend group.
For details about the concept, see documentation.
If session affinity is configured, the backend group should contain exactly one active backend (i.e. with positive GrpcBackend.backend_weight), and its LoadBalancingConfig.load_balancing_mode should be MAGLEV_HASH. If any of these conditions are not met, session affinity will not work.
  connection ConnectionSessionAffinity
Connection-based session affinity configuration.
For now, a connection is defined only by an IP address of the client.
  header HeaderSessionAffinity
HTTP-header-field-based session affinity configuration.
  cookie CookieSessionAffinity
Cookie-based session affinity configuration.

GrpcBackend

Field Description
name string
Required. Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9].
backend_weight google.protobuf.Int64Value
Backend weight. Traffic is distributed between backends of a backend group according to their weights.
Weights must be set either for all backends of a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends.
If the weight is non-positive, traffic is not sent to the backend.
load_balancing_config LoadBalancingConfig
Load balancing configuration for the backend.
port int64
Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive.
backend_type oneof: target_groups
Reference to targets that belong to the backend. For now, targets are referenced via target groups.
  target_groups TargetGroupsBackend
Target groups that belong to the backend.
healthchecks[] HealthCheck
Health checks to perform on targets from target groups. For details about health checking, see documentation.
If no health checks are specified, active health checking is not performed.
tls BackendTls
Settings for TLS connections between load balancer nodes and backend targets.
If specified, the load balancer establishes HTTPS (HTTP over TLS) connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted HTTP connections with targets.

LoadBalancingConfig

Field Description
panic_threshold int64
Threshold for panic mode.
If percentage of healthy backends in the group drops below threshold, panic mode will be activated and traffic will be routed to all backends, regardless of their health check status. This helps to avoid overloading healthy backends. For details about panic mode, see documentation.
If the value is 0, panic mode will never be activated and traffic is routed only to healthy backends at all times.
Default value: 0. Acceptable values are 0 to 100, inclusive.
locality_aware_routing_percent int64
Percentage of traffic that a load balancer node sends to healthy backends in its availability zone. The rest is divided equally between other zones. For details about zone-aware routing, see documentation.
If there are no healthy backends in an availability zone, all the traffic is divided between other zones.
If strict_locality is true, the specified value is ignored. A load balancer node sends all the traffic within its availability zone, regardless of backends' health.
Default value: 0. Acceptable values are 0 to 100, inclusive.
strict_locality bool
Specifies whether a load balancer node should only send traffic to backends in its availability zone, regardless of their health, and ignore backends in other zones.
If set to true and there are no healthy backends in the zone, the node in this zone will respond to incoming traffic with errors. For details about strict locality, see documentation.
If strict_locality is true, the value specified in locality_aware_routing_percent is ignored.
Default value: false.
mode enum LoadBalancingMode
Load balancing mode for the backend.
For details about load balancing modes, see documentation.
  • ROUND_ROBIN: Round robin load balancing mode.
    All endpoints of the backend take their turns to receive requests attributed to the backend.
  • RANDOM: Random load balancing mode. Default value.
    For a request attributed to the backend, an endpoint that receives it is picked at random.
  • LEAST_REQUEST: Least request load balancing mode.
    To pick an endpoint that receives a request attributed to the backend, the power of two choices algorithm is used; that is, two endpoints are picked at random, and the request is sent to the one which has the fewest active requests.
  • MAGLEV_HASH: Maglev hashing load balancing mode.
    Each endpoint is hashed, and a hash table with 65537 rows is filled accordingly, so that every endpoint occupies the same amount of rows. An attribute of each request is also hashed by the same function (if session affinity is enabled for the backend group, the attribute to hash is specified in session affinity configuration). The row with the same number as the resulting value is looked up in the table to determine the endpoint that receives the request.
    If the backend group with session affinity enabled contains more than one backend with positive weight, endpoints for backends with MAGLEV_HASH load balancing mode are picked at RANDOM instead.

TargetGroupsBackend

Field Description
target_group_ids[] string
List of ID's of target groups that belong to the backend.
To get the ID's of all available target groups, make a TargetGroupService.List request. The number of elements must be greater than 0.

HealthCheck

Field Description
timeout google.protobuf.Duration
Required. Health check timeout.
The timeout is the time allowed for the target to respond to a check. If the target doesn't respond in time, the check is considered failed.
interval google.protobuf.Duration
Required. Base interval between consecutive health checks.
interval_jitter_percent double
healthy_threshold int64
Number of consecutive successful health checks required to mark an unhealthy target as healthy.
Both 0 and 1 values amount to one successful check required.
The value is ignored when a load balancer is initialized; a target is marked healthy after one successful check.
Default value: 0.
unhealthy_threshold int64
Number of consecutive failed health checks required to mark a healthy target as unhealthy.
Both 0 and 1 values amount to one unsuccessful check required.
The value is ignored if a health check is failed due to an HTTP 503 Service Unavailable response from the target (not applicable to TCP stream health checks). The target is immediately marked unhealthy.
Default value: 0.
healthcheck_port int64
Port used for health checks.
If not specified, the backend port (HttpBackend.port or GrpcBackend.port) is used for health checks. Acceptable values are 0 to 65535, inclusive.
healthcheck oneof: stream, http or grpc
Protocol-specific health check settings.
The protocols of the backend and of its health check may differ, e.g. a gRPC health check may be specified for an HTTP backend.
  stream StreamHealthCheck
TCP stream health check settings.
  http HttpHealthCheck
HTTP health check settings.
  grpc GrpcHealthCheck
gRPC health check settings.
transport_settings oneof: plaintext or tls
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  plaintext PlaintextTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  tls SecureTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.

StreamHealthCheck

Field Description
send Payload
Message sent to targets during TCP data transfer.
If not specified, no data is sent to the target.
receive Payload
Data that must be contained in the messages received from targets for a successful health check.
If not specified, no messages are expected from targets, and those that are received are not checked.

HttpHealthCheck

Field Description
host string
Value for the HTTP/1.1 Host header or the HTTP/2 :authority pseudo-header used in requests to targets.
path string
Required. HTTP path used in requests to targets: request URI for HTTP/1.1 request line or value for the HTTP/2 :path pseudo-header.
use_http2 bool
Enables HTTP/2 usage in health checks.
Default value: false, HTTP/1.1 is used.

GrpcHealthCheck

Field Description
service_name string
Name of the gRPC service to be checked.
If not specified, overall health is checked.
For details about the concept, see GRPC Health Checking Protocol.

PlaintextTransportSettings

SecureTransportSettings

Field Description
sni string
SNI string for TLS connections.
validation_context ValidationContext
Validation context for backend TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

BackendTls

Field Description
sni string
Server Name Indication (SNI) string for TLS connections.
validation_context ValidationContext
Validation context for TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

ConnectionSessionAffinity

Field Description
source_ip bool
Specifies whether an IP address of the client is used to define a connection for session affinity.

HeaderSessionAffinity

Field Description
header_name string
Name of the HTTP header field that is used for session affinity. The string length in characters must be 1-256.

CookieSessionAffinity

Field Description
name string
Name of the cookie that is used for session affinity. The string length in characters must be 1-256.
ttl google.protobuf.Duration
Maximum age of cookies that are generated for sessions.
If set to 0, session cookies are used, which are stored by clients in temporary memory and are deleted on client restarts.
If not set, the balancer does not generate cookies and only uses incoming ones for establishing session affinity.

StreamBackendGroup

Field Description
backends[] StreamBackend
List of stream (TCP) backends.
session_affinity oneof: connection
Session affinity configuration for the backend group.
For details about the concept, see documentation.
If session affinity is configured, the backend group should contain exactly one active backend (i.e. with positive HttpBackend.backend_weight), its HttpBackend.backend_type should be TargetGroupsBackend, and its LoadBalancingConfig.load_balancing_mode should be MAGLEV_HASH. If any of these conditions are not met, session affinity will not work.
  connection ConnectionSessionAffinity
Connection-based session affinity configuration.
For now, a connection is defined only by an IP address of the client.

StreamBackend

Field Description
name string
Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9].
backend_weight google.protobuf.Int64Value
Backend weight. Traffic is distributed between backends of a backend group according to their weights.
Weights must be set either for all backends in a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends.
If the weight is non-positive, traffic is not sent to the backend.
load_balancing_config LoadBalancingConfig
Load balancing configuration for the backend.
port int64
Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive.
backend_type oneof: target_groups
Reference to targets that belong to the backend.
  target_groups TargetGroupsBackend
Target groups that belong to the backend. For details about target groups, see documentation.
healthchecks[] HealthCheck
Health checks to perform on targets from target groups. For details about health checking, see documentation.
If no health checks are specified, active health checking is not performed.
tls BackendTls
Settings for TLS connections between load balancer nodes and backend targets.
If specified, the load balancer establishes TLS-encrypted TCP connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted TCP connections with targets.
enable_proxy_protocol bool
If set, proxy protocol will be enabled for this backend.

LoadBalancingConfig

Field Description
panic_threshold int64
Threshold for panic mode.
If percentage of healthy backends in the group drops below threshold, panic mode will be activated and traffic will be routed to all backends, regardless of their health check status. This helps to avoid overloading healthy backends. For details about panic mode, see documentation.
If the value is 0, panic mode will never be activated and traffic is routed only to healthy backends at all times.
Default value: 0. Acceptable values are 0 to 100, inclusive.
locality_aware_routing_percent int64
Percentage of traffic that a load balancer node sends to healthy backends in its availability zone. The rest is divided equally between other zones. For details about zone-aware routing, see documentation.
If there are no healthy backends in an availability zone, all the traffic is divided between other zones.
If strict_locality is true, the specified value is ignored. A load balancer node sends all the traffic within its availability zone, regardless of backends' health.
Default value: 0. Acceptable values are 0 to 100, inclusive.
strict_locality bool
Specifies whether a load balancer node should only send traffic to backends in its availability zone, regardless of their health, and ignore backends in other zones.
If set to true and there are no healthy backends in the zone, the node in this zone will respond to incoming traffic with errors. For details about strict locality, see documentation.
If strict_locality is true, the value specified in locality_aware_routing_percent is ignored.
Default value: false.
mode enum LoadBalancingMode
Load balancing mode for the backend.
For details about load balancing modes, see documentation.
  • ROUND_ROBIN: Round robin load balancing mode.
    All endpoints of the backend take their turns to receive requests attributed to the backend.
  • RANDOM: Random load balancing mode. Default value.
    For a request attributed to the backend, an endpoint that receives it is picked at random.
  • LEAST_REQUEST: Least request load balancing mode.
    To pick an endpoint that receives a request attributed to the backend, the power of two choices algorithm is used; that is, two endpoints are picked at random, and the request is sent to the one which has the fewest active requests.
  • MAGLEV_HASH: Maglev hashing load balancing mode.
    Each endpoint is hashed, and a hash table with 65537 rows is filled accordingly, so that every endpoint occupies the same amount of rows. An attribute of each request is also hashed by the same function (if session affinity is enabled for the backend group, the attribute to hash is specified in session affinity configuration). The row with the same number as the resulting value is looked up in the table to determine the endpoint that receives the request.
    If the backend group with session affinity enabled contains more than one backend with positive weight, endpoints for backends with MAGLEV_HASH load balancing mode are picked at RANDOM instead.

TargetGroupsBackend

Field Description
target_group_ids[] string
List of ID's of target groups that belong to the backend.
To get the ID's of all available target groups, make a TargetGroupService.List request. The number of elements must be greater than 0.

HealthCheck

Field Description
timeout google.protobuf.Duration
Required. Health check timeout.
The timeout is the time allowed for the target to respond to a check. If the target doesn't respond in time, the check is considered failed.
interval google.protobuf.Duration
Required. Base interval between consecutive health checks.
interval_jitter_percent double
healthy_threshold int64
Number of consecutive successful health checks required to mark an unhealthy target as healthy.
Both 0 and 1 values amount to one successful check required.
The value is ignored when a load balancer is initialized; a target is marked healthy after one successful check.
Default value: 0.
unhealthy_threshold int64
Number of consecutive failed health checks required to mark a healthy target as unhealthy.
Both 0 and 1 values amount to one unsuccessful check required.
The value is ignored if a health check is failed due to an HTTP 503 Service Unavailable response from the target (not applicable to TCP stream health checks). The target is immediately marked unhealthy.
Default value: 0.
healthcheck_port int64
Port used for health checks.
If not specified, the backend port (HttpBackend.port or GrpcBackend.port) is used for health checks. Acceptable values are 0 to 65535, inclusive.
healthcheck oneof: stream, http or grpc
Protocol-specific health check settings.
The protocols of the backend and of its health check may differ, e.g. a gRPC health check may be specified for an HTTP backend.
  stream StreamHealthCheck
TCP stream health check settings.
  http HttpHealthCheck
HTTP health check settings.
  grpc GrpcHealthCheck
gRPC health check settings.
transport_settings oneof: plaintext or tls
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  plaintext PlaintextTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.
  tls SecureTransportSettings
Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend.

StreamHealthCheck

Field Description
send Payload
Message sent to targets during TCP data transfer.
If not specified, no data is sent to the target.
receive Payload
Data that must be contained in the messages received from targets for a successful health check.
If not specified, no messages are expected from targets, and those that are received are not checked.

HttpHealthCheck

Field Description
host string
Value for the HTTP/1.1 Host header or the HTTP/2 :authority pseudo-header used in requests to targets.
path string
Required. HTTP path used in requests to targets: request URI for HTTP/1.1 request line or value for the HTTP/2 :path pseudo-header.
use_http2 bool
Enables HTTP/2 usage in health checks.
Default value: false, HTTP/1.1 is used.

GrpcHealthCheck

Field Description
service_name string
Name of the gRPC service to be checked.
If not specified, overall health is checked.
For details about the concept, see GRPC Health Checking Protocol.

PlaintextTransportSettings

SecureTransportSettings

Field Description
sni string
SNI string for TLS connections.
validation_context ValidationContext
Validation context for backend TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

BackendTls

Field Description
sni string
Server Name Indication (SNI) string for TLS connections.
validation_context ValidationContext
Validation context for TLS connections.

ValidationContext

Field Description
trusted_ca oneof: trusted_ca_id or trusted_ca_bytes
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_id string
TLS certificate issued by a trusted certificate authority (CA).
  trusted_ca_bytes string
X.509 certificate contents in PEM format.

ConnectionSessionAffinity

Field Description
source_ip bool
Specifies whether an IP address of the client is used to define a connection for session affinity.

ListOperations

Lists operations for the specified backend group.

rpc ListOperations (ListBackendGroupOperationsRequest) returns (ListBackendGroupOperationsResponse)

ListBackendGroupOperationsRequest

Field Description
backend_group_id string
Required. ID of the backend group to get operations for.
To get the backend group ID, use a BackendGroupService.List request. The maximum string length in characters is 50.
page_size int64
The maximum number of results per page that should be returned. If the number of available results is larger than page_size, the service returns a ListBackendGroupOperationsResponse.next_page_token that can be used to get the next page of results in subsequent list requests. Default value: 100. The maximum value is 1000.
page_token string
Page token. To get the next page of results, set page_token to the ListBackendGroupOperationsResponse.next_page_token returned by a previous list request. The maximum string length in characters is 100.

ListBackendGroupOperationsResponse

Field Description
operations[] operation.Operation
List of operations for the specified backend group.
next_page_token string
Token for getting the next page of the list. If the number of results is greater than the specified ListBackendGroupOperationsRequest.page_size, use next_page_token as the value for the ListBackendGroupOperationsRequest.page_token parameter in the next list request.
Each subsequent page will have its own next_page_token to continue paging through the results.

Operation

Field Description
id string
ID of the operation.
description string
Description of the operation. 0-256 characters long.
created_at google.protobuf.Timestamp
Creation timestamp.
created_by string
ID of the user or service account who initiated the operation.
modified_at google.protobuf.Timestamp
The time when the Operation resource was last modified.
done bool
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 google.protobuf.Any
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.
result oneof: error or response
The operation result. If done == false and there was no failure detected, neither error nor response is set. If done == false and there was a failure detected, error is set. If done == true, exactly one of error or response is set.
  error google.rpc.Status
The error result of the operation in case of failure or cancellation.
  response google.protobuf.Any
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
© 2022 Yandex.Cloud LLC
In this article:
  • Calls BackendGroupService
  • Get
  • GetBackendGroupRequest
  • BackendGroup
  • HttpBackendGroup
  • HttpBackend
  • LoadBalancingConfig
  • TargetGroupsBackend
  • StorageBucketBackend
  • HealthCheck
  • StreamHealthCheck
  • HttpHealthCheck
  • GrpcHealthCheck
  • PlaintextTransportSettings
  • SecureTransportSettings
  • ValidationContext
  • BackendTls
  • ValidationContext
  • ConnectionSessionAffinity
  • HeaderSessionAffinity
  • CookieSessionAffinity
  • GrpcBackendGroup
  • GrpcBackend
  • LoadBalancingConfig
  • TargetGroupsBackend
  • HealthCheck
  • StreamHealthCheck
  • HttpHealthCheck
  • GrpcHealthCheck
  • PlaintextTransportSettings
  • SecureTransportSettings
  • ValidationContext
  • BackendTls
  • ValidationContext
  • ConnectionSessionAffinity
  • HeaderSessionAffinity
  • CookieSessionAffinity
  • StreamBackendGroup
  • StreamBackend
  • LoadBalancingConfig
  • TargetGroupsBackend
  • HealthCheck
  • StreamHealthCheck
  • HttpHealthCheck
  • GrpcHealthCheck
  • PlaintextTransportSettings
  • SecureTransportSettings
  • ValidationContext
  • BackendTls
  • ValidationContext
  • ConnectionSessionAffinity
  • List
  • ListBackendGroupsRequest
  • ListBackendGroupsResponse
  • BackendGroup
  • HttpBackendGroup
  • HttpBackend
  • LoadBalancingConfig
  • TargetGroupsBackend
  • StorageBucketBackend
  • HealthCheck
  • StreamHealthCheck
  • HttpHealthCheck
  • GrpcHealthCheck
  • PlaintextTransportSettings
  • SecureTransportSettings
  • ValidationContext
  • BackendTls
  • ValidationContext
  • ConnectionSessionAffinity
  • HeaderSessionAffinity
  • CookieSessionAffinity
  • GrpcBackendGroup
  • GrpcBackend
  • LoadBalancingConfig
  • TargetGroupsBackend
  • HealthCheck
  • StreamHealthCheck
  • HttpHealthCheck
  • GrpcHealthCheck
  • PlaintextTransportSettings
  • SecureTransportSettings
  • ValidationContext
  • BackendTls
  • ValidationContext
  • ConnectionSessionAffinity
  • HeaderSessionAffinity
  • CookieSessionAffinity
  • StreamBackendGroup
  • StreamBackend
  • LoadBalancingConfig
  • TargetGroupsBackend
  • HealthCheck
  • StreamHealthCheck
  • HttpHealthCheck
  • GrpcHealthCheck
  • PlaintextTransportSettings
  • SecureTransportSettings
  • ValidationContext
  • BackendTls
  • ValidationContext
  • ConnectionSessionAffinity
  • Create
  • CreateBackendGroupRequest
  • HttpBackendGroup
  • HttpBackend
  • LoadBalancingConfig
  • TargetGroupsBackend
  • StorageBucketBackend
  • HealthCheck
  • StreamHealthCheck
  • HttpHealthCheck
  • GrpcHealthCheck
  • PlaintextTransportSettings
  • SecureTransportSettings
  • ValidationContext
  • BackendTls
  • ValidationContext
  • ConnectionSessionAffinity
  • HeaderSessionAffinity
  • CookieSessionAffinity
  • GrpcBackendGroup
  • GrpcBackend
  • LoadBalancingConfig
  • TargetGroupsBackend
  • HealthCheck
  • StreamHealthCheck
  • HttpHealthCheck
  • GrpcHealthCheck
  • PlaintextTransportSettings
  • SecureTransportSettings
  • ValidationContext
  • BackendTls
  • ValidationContext
  • ConnectionSessionAffinity
  • HeaderSessionAffinity
  • CookieSessionAffinity
  • StreamBackendGroup
  • StreamBackend
  • LoadBalancingConfig
  • TargetGroupsBackend
  • HealthCheck
  • StreamHealthCheck
  • HttpHealthCheck
  • GrpcHealthCheck
  • PlaintextTransportSettings
  • SecureTransportSettings
  • ValidationContext
  • BackendTls
  • ValidationContext
  • ConnectionSessionAffinity
  • Operation
  • CreateBackendGroupMetadata
  • BackendGroup
  • HttpBackendGroup
  • HttpBackend
  • LoadBalancingConfig
  • TargetGroupsBackend
  • StorageBucketBackend
  • HealthCheck
  • StreamHealthCheck
  • HttpHealthCheck
  • GrpcHealthCheck
  • PlaintextTransportSettings
  • SecureTransportSettings
  • ValidationContext
  • BackendTls
  • ValidationContext
  • ConnectionSessionAffinity
  • HeaderSessionAffinity
  • CookieSessionAffinity
  • GrpcBackendGroup
  • GrpcBackend
  • LoadBalancingConfig
  • TargetGroupsBackend
  • HealthCheck
  • StreamHealthCheck
  • HttpHealthCheck
  • GrpcHealthCheck
  • PlaintextTransportSettings
  • SecureTransportSettings
  • ValidationContext
  • BackendTls
  • ValidationContext
  • ConnectionSessionAffinity
  • HeaderSessionAffinity
  • CookieSessionAffinity
  • StreamBackendGroup
  • StreamBackend
  • LoadBalancingConfig
  • TargetGroupsBackend
  • HealthCheck
  • StreamHealthCheck
  • HttpHealthCheck
  • GrpcHealthCheck
  • PlaintextTransportSettings
  • SecureTransportSettings
  • ValidationContext
  • BackendTls
  • ValidationContext
  • ConnectionSessionAffinity
  • Update
  • UpdateBackendGroupRequest
  • HttpBackendGroup
  • HttpBackend
  • LoadBalancingConfig
  • TargetGroupsBackend
  • StorageBucketBackend
  • HealthCheck
  • StreamHealthCheck
  • HttpHealthCheck
  • GrpcHealthCheck
  • PlaintextTransportSettings
  • SecureTransportSettings
  • ValidationContext
  • BackendTls
  • ValidationContext
  • ConnectionSessionAffinity
  • HeaderSessionAffinity
  • CookieSessionAffinity
  • GrpcBackendGroup
  • GrpcBackend
  • LoadBalancingConfig
  • TargetGroupsBackend
  • HealthCheck
  • StreamHealthCheck
  • HttpHealthCheck
  • GrpcHealthCheck
  • PlaintextTransportSettings
  • SecureTransportSettings
  • ValidationContext
  • BackendTls
  • ValidationContext
  • ConnectionSessionAffinity
  • HeaderSessionAffinity
  • CookieSessionAffinity
  • StreamBackendGroup
  • StreamBackend
  • LoadBalancingConfig
  • TargetGroupsBackend
  • HealthCheck
  • StreamHealthCheck
  • HttpHealthCheck
  • GrpcHealthCheck
  • PlaintextTransportSettings
  • SecureTransportSettings
  • ValidationContext
  • BackendTls
  • ValidationContext
  • ConnectionSessionAffinity
  • Operation
  • UpdateBackendGroupMetadata
  • BackendGroup
  • HttpBackendGroup
  • HttpBackend
  • LoadBalancingConfig
  • TargetGroupsBackend
  • StorageBucketBackend
  • HealthCheck
  • StreamHealthCheck
  • HttpHealthCheck
  • GrpcHealthCheck
  • PlaintextTransportSettings
  • SecureTransportSettings
  • ValidationContext
  • BackendTls
  • ValidationContext
  • ConnectionSessionAffinity
  • HeaderSessionAffinity
  • CookieSessionAffinity
  • GrpcBackendGroup
  • GrpcBackend
  • LoadBalancingConfig
  • TargetGroupsBackend
  • HealthCheck
  • StreamHealthCheck
  • HttpHealthCheck
  • GrpcHealthCheck
  • PlaintextTransportSettings
  • SecureTransportSettings
  • ValidationContext
  • BackendTls
  • ValidationContext
  • ConnectionSessionAffinity
  • HeaderSessionAffinity
  • CookieSessionAffinity
  • StreamBackendGroup
  • StreamBackend
  • LoadBalancingConfig
  • TargetGroupsBackend
  • HealthCheck
  • StreamHealthCheck
  • HttpHealthCheck
  • GrpcHealthCheck
  • PlaintextTransportSettings
  • SecureTransportSettings
  • ValidationContext
  • BackendTls
  • ValidationContext
  • ConnectionSessionAffinity
  • Delete
  • DeleteBackendGroupRequest
  • Operation
  • DeleteBackendGroupMetadata
  • AddBackend
  • AddBackendRequest
  • HttpBackend
  • LoadBalancingConfig
  • TargetGroupsBackend
  • StorageBucketBackend
  • HealthCheck
  • StreamHealthCheck
  • HttpHealthCheck
  • GrpcHealthCheck
  • PlaintextTransportSettings
  • SecureTransportSettings
  • ValidationContext
  • BackendTls
  • ValidationContext
  • GrpcBackend
  • LoadBalancingConfig
  • TargetGroupsBackend
  • HealthCheck
  • StreamHealthCheck
  • HttpHealthCheck
  • GrpcHealthCheck
  • PlaintextTransportSettings
  • SecureTransportSettings
  • ValidationContext
  • BackendTls
  • ValidationContext
  • StreamBackend
  • LoadBalancingConfig
  • TargetGroupsBackend
  • HealthCheck
  • StreamHealthCheck
  • HttpHealthCheck
  • GrpcHealthCheck
  • PlaintextTransportSettings
  • SecureTransportSettings
  • ValidationContext
  • BackendTls
  • ValidationContext
  • Operation
  • AddBackendMetadata
  • BackendGroup
  • HttpBackendGroup
  • HttpBackend
  • LoadBalancingConfig
  • TargetGroupsBackend
  • StorageBucketBackend
  • HealthCheck
  • StreamHealthCheck
  • HttpHealthCheck
  • GrpcHealthCheck
  • PlaintextTransportSettings
  • SecureTransportSettings
  • ValidationContext
  • BackendTls
  • ValidationContext
  • ConnectionSessionAffinity
  • HeaderSessionAffinity
  • CookieSessionAffinity
  • GrpcBackendGroup
  • GrpcBackend
  • LoadBalancingConfig
  • TargetGroupsBackend
  • HealthCheck
  • StreamHealthCheck
  • HttpHealthCheck
  • GrpcHealthCheck
  • PlaintextTransportSettings
  • SecureTransportSettings
  • ValidationContext
  • BackendTls
  • ValidationContext
  • ConnectionSessionAffinity
  • HeaderSessionAffinity
  • CookieSessionAffinity
  • StreamBackendGroup
  • StreamBackend
  • LoadBalancingConfig
  • TargetGroupsBackend
  • HealthCheck
  • StreamHealthCheck
  • HttpHealthCheck
  • GrpcHealthCheck
  • PlaintextTransportSettings
  • SecureTransportSettings
  • ValidationContext
  • BackendTls
  • ValidationContext
  • ConnectionSessionAffinity
  • RemoveBackend
  • RemoveBackendRequest
  • Operation
  • RemoveBackendMetadata
  • BackendGroup
  • HttpBackendGroup
  • HttpBackend
  • LoadBalancingConfig
  • TargetGroupsBackend
  • StorageBucketBackend
  • HealthCheck
  • StreamHealthCheck
  • HttpHealthCheck
  • GrpcHealthCheck
  • PlaintextTransportSettings
  • SecureTransportSettings
  • ValidationContext
  • BackendTls
  • ValidationContext
  • ConnectionSessionAffinity
  • HeaderSessionAffinity
  • CookieSessionAffinity
  • GrpcBackendGroup
  • GrpcBackend
  • LoadBalancingConfig
  • TargetGroupsBackend
  • HealthCheck
  • StreamHealthCheck
  • HttpHealthCheck
  • GrpcHealthCheck
  • PlaintextTransportSettings
  • SecureTransportSettings
  • ValidationContext
  • BackendTls
  • ValidationContext
  • ConnectionSessionAffinity
  • HeaderSessionAffinity
  • CookieSessionAffinity
  • StreamBackendGroup
  • StreamBackend
  • LoadBalancingConfig
  • TargetGroupsBackend
  • HealthCheck
  • StreamHealthCheck
  • HttpHealthCheck
  • GrpcHealthCheck
  • PlaintextTransportSettings
  • SecureTransportSettings
  • ValidationContext
  • BackendTls
  • ValidationContext
  • ConnectionSessionAffinity
  • UpdateBackend
  • UpdateBackendRequest
  • HttpBackend
  • LoadBalancingConfig
  • TargetGroupsBackend
  • StorageBucketBackend
  • HealthCheck
  • StreamHealthCheck
  • HttpHealthCheck
  • GrpcHealthCheck
  • PlaintextTransportSettings
  • SecureTransportSettings
  • ValidationContext
  • BackendTls
  • ValidationContext
  • GrpcBackend
  • LoadBalancingConfig
  • TargetGroupsBackend
  • HealthCheck
  • StreamHealthCheck
  • HttpHealthCheck
  • GrpcHealthCheck
  • PlaintextTransportSettings
  • SecureTransportSettings
  • ValidationContext
  • BackendTls
  • ValidationContext
  • StreamBackend
  • LoadBalancingConfig
  • TargetGroupsBackend
  • HealthCheck
  • StreamHealthCheck
  • HttpHealthCheck
  • GrpcHealthCheck
  • PlaintextTransportSettings
  • SecureTransportSettings
  • ValidationContext
  • BackendTls
  • ValidationContext
  • Operation
  • UpdateBackendMetadata
  • BackendGroup
  • HttpBackendGroup
  • HttpBackend
  • LoadBalancingConfig
  • TargetGroupsBackend
  • StorageBucketBackend
  • HealthCheck
  • StreamHealthCheck
  • HttpHealthCheck
  • GrpcHealthCheck
  • PlaintextTransportSettings
  • SecureTransportSettings
  • ValidationContext
  • BackendTls
  • ValidationContext
  • ConnectionSessionAffinity
  • HeaderSessionAffinity
  • CookieSessionAffinity
  • GrpcBackendGroup
  • GrpcBackend
  • LoadBalancingConfig
  • TargetGroupsBackend
  • HealthCheck
  • StreamHealthCheck
  • HttpHealthCheck
  • GrpcHealthCheck
  • PlaintextTransportSettings
  • SecureTransportSettings
  • ValidationContext
  • BackendTls
  • ValidationContext
  • ConnectionSessionAffinity
  • HeaderSessionAffinity
  • CookieSessionAffinity
  • StreamBackendGroup
  • StreamBackend
  • LoadBalancingConfig
  • TargetGroupsBackend
  • HealthCheck
  • StreamHealthCheck
  • HttpHealthCheck
  • GrpcHealthCheck
  • PlaintextTransportSettings
  • SecureTransportSettings
  • ValidationContext
  • BackendTls
  • ValidationContext
  • ConnectionSessionAffinity
  • ListOperations
  • ListBackendGroupOperationsRequest
  • ListBackendGroupOperationsResponse
  • Operation