@yandex-cloud/nodejs-sdk
Version:
Yandex.Cloud NodeJS SDK
1,108 lines (1,107 loc) • 227 kB
TypeScript
import _m0 from "protobufjs/minimal";
import { Duration } from "../../../../google/protobuf/duration";
import { ValidationContext } from "../../../../yandex/cloud/apploadbalancer/v1/tls";
import { Payload } from "../../../../yandex/cloud/apploadbalancer/v1/payload";
export declare const protobufPackage = "yandex.cloud.apploadbalancer.v1";
/**
* A load balancing mode resource.
* For details about the concept, see
* [documentation](/docs/application-load-balancer/concepts/backend-group#balancing-mode).
*/
export declare enum LoadBalancingMode {
/**
* ROUND_ROBIN - Round robin load balancing mode.
*
* All endpoints of the backend take their turns to receive requests attributed to the backend.
*/
ROUND_ROBIN = 0,
/**
* RANDOM - Random load balancing mode. Default value.
*
* For a request attributed to the backend, an endpoint that receives it is picked at random.
*/
RANDOM = 1,
/**
* 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.
*/
LEAST_REQUEST = 2,
/**
* 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.
*/
MAGLEV_HASH = 3,
UNRECOGNIZED = -1
}
export declare function loadBalancingModeFromJSON(object: any): LoadBalancingMode;
export declare function loadBalancingModeToJSON(object: LoadBalancingMode): string;
/**
* A backend group resource.
* For details about the concept, see [documentation](/docs/application-load-balancer/concepts/backend-group).
*/
export interface BackendGroup {
$type: "yandex.cloud.apploadbalancer.v1.BackendGroup";
/** ID of the backend group. Generated at creation time. */
id: string;
/** Name of the backend group. The name is unique within the folder. The string length in characters is 3-63. */
name: string;
/** Description of the backend group. The string is 0-256 characters long. */
description: string;
/** ID of the folder that the backend group belongs to. */
folderId: string;
/**
* Backend group labels as `key:value` pairs.
* For details about the concept, see [documentation](/docs/overview/concepts/services#labels).
* The maximum number of labels is 64.
*/
labels: {
[key: string]: string;
};
/** List of HTTP backends that the backend group consists of. */
http?: HttpBackendGroup | undefined;
/** List of gRPC backends that the backend group consists of. */
grpc?: GrpcBackendGroup | undefined;
/** List of stream (TCP) backends that the backend group consists of. */
stream?: StreamBackendGroup | undefined;
/** Creation timestamp. */
createdAt?: Date;
}
export interface BackendGroup_LabelsEntry {
$type: "yandex.cloud.apploadbalancer.v1.BackendGroup.LabelsEntry";
key: string;
value: string;
}
/** A stream (TCP) backend group resource. */
export interface StreamBackendGroup {
$type: "yandex.cloud.apploadbalancer.v1.StreamBackendGroup";
/** List of stream (TCP) backends. */
backends: StreamBackend[];
/**
* Connection-based session affinity configuration.
*
* For now, a connection is defined only by an IP address of the client.
*/
connection?: ConnectionSessionAffinity | undefined;
}
/** An HTTP backend group resource. */
export interface HttpBackendGroup {
$type: "yandex.cloud.apploadbalancer.v1.HttpBackendGroup";
/** List of HTTP backends. */
backends: HttpBackend[];
/**
* Connection-based session affinity configuration.
*
* For now, a connection is defined only by an IP address of the client.
*/
connection?: ConnectionSessionAffinity | undefined;
/** HTTP-header-field-based session affinity configuration. */
header?: HeaderSessionAffinity | undefined;
/** Cookie-based session affinity configuration. */
cookie?: CookieSessionAffinity | undefined;
}
/** A gRPC backend group resource. */
export interface GrpcBackendGroup {
$type: "yandex.cloud.apploadbalancer.v1.GrpcBackendGroup";
/** List of gRPC backends. */
backends: GrpcBackend[];
/**
* Connection-based session affinity configuration.
*
* For now, a connection is defined only by an IP address of the client.
*/
connection?: ConnectionSessionAffinity | undefined;
/** HTTP-header-field-based session affinity configuration. */
header?: HeaderSessionAffinity | undefined;
/** Cookie-based session affinity configuration. */
cookie?: CookieSessionAffinity | undefined;
}
/** A resource for HTTP-header-field-based session affinity configuration. */
export interface HeaderSessionAffinity {
$type: "yandex.cloud.apploadbalancer.v1.HeaderSessionAffinity";
/** Name of the HTTP header field that is used for session affinity. */
headerName: string;
}
/** A resource for cookie-based session affinity configuration. */
export interface CookieSessionAffinity {
$type: "yandex.cloud.apploadbalancer.v1.CookieSessionAffinity";
/** Name of the cookie that is used for session affinity. */
name: string;
/**
* 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.
*/
ttl?: Duration;
}
/** A resource for connection-based session affinity configuration. */
export interface ConnectionSessionAffinity {
$type: "yandex.cloud.apploadbalancer.v1.ConnectionSessionAffinity";
/** Specifies whether an IP address of the client is used to define a connection for session affinity. */
sourceIp: boolean;
}
/** A load balancing configuration resource. */
export interface LoadBalancingConfig {
$type: "yandex.cloud.apploadbalancer.v1.LoadBalancingConfig";
/**
* 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](/docs/application-load-balancer/concepts/backend-group#panic-mode).
*
* 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`.
*/
panicThreshold: number;
/**
* 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](/docs/application-load-balancer/concepts/backend-group#locality).
*
* 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`.
*/
localityAwareRoutingPercent: number;
/**
* 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](/docs/application-load-balancer/concepts/backend-group#locality).
*
* If `strict_locality` is `true`, the value specified in [locality_aware_routing_percent] is ignored.
*
* Default value: `false`.
*/
strictLocality: boolean;
/**
* Load balancing mode for the backend.
*
* For details about load balancing modes, see
* [documentation](/docs/application-load-balancer/concepts/backend-group#balancing-mode).
*/
mode: LoadBalancingMode;
}
/** A stream (TCP) backend resource. */
export interface StreamBackend {
$type: "yandex.cloud.apploadbalancer.v1.StreamBackend";
/** Name of the backend. */
name: string;
/**
* 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.
*/
backendWeight?: number;
/** Load balancing configuration for the backend. */
loadBalancingConfig?: LoadBalancingConfig;
/** Port used by all targets to receive traffic. */
port: number;
/**
* Target groups that belong to the backend. For details about target groups, see
* [documentation](/docs/application-load-balancer/concepts/target-group).
*/
targetGroups?: TargetGroupsBackend | undefined;
/**
* Health checks to perform on targets from target groups.
* For details about health checking, see [documentation](/docs/application-load-balancer/concepts/backend-group#health-checks).
*
* If no health checks are specified, active health checking is not performed.
*/
healthchecks: HealthCheck[];
/**
* 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.
*/
tls?: BackendTls;
/** If set, proxy protocol will be enabled for this backend. */
enableProxyProtocol: boolean;
}
/** An HTTP backend resource. */
export interface HttpBackend {
$type: "yandex.cloud.apploadbalancer.v1.HttpBackend";
/** Name of the backend. */
name: string;
/**
* 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.
*/
backendWeight?: number;
/** Load balancing configuration for the backend. */
loadBalancingConfig?: LoadBalancingConfig;
/** Port used by all targets to receive traffic. */
port: number;
/**
* Target groups that belong to the backend. For details about target groups, see
* [documentation](/docs/application-load-balancer/concepts/target-group).
*/
targetGroups?: TargetGroupsBackend | undefined;
/**
* Object Storage bucket to use as the backend. For details about buckets, see
* [documentation](/docs/storage/concepts/bucket).
*
* 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](/docs/storage/operations/buckets/bucket-availability).
*/
storageBucket?: StorageBucketBackend | undefined;
/**
* Health checks to perform on targets from target groups.
* For details about health checking, see [documentation](/docs/application-load-balancer/concepts/backend-group#health-checks).
*
* If no health checks are specified, active health checking is not performed.
*/
healthchecks: HealthCheck[];
/**
* 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.
*/
tls?: BackendTls;
/**
* Enables HTTP/2 usage in connections between load balancer nodes and backend targets.
*
* Default value: `false`, HTTP/1.1 is used.
*/
useHttp2: boolean;
}
/** A gRPC backend resource. */
export interface GrpcBackend {
$type: "yandex.cloud.apploadbalancer.v1.GrpcBackend";
/** Name of the backend. */
name: string;
/**
* 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.
*/
backendWeight?: number;
/** Load balancing configuration for the backend. */
loadBalancingConfig?: LoadBalancingConfig;
/** Port used by all targets to receive traffic. */
port: number;
/** Target groups that belong to the backend. */
targetGroups?: TargetGroupsBackend | undefined;
/**
* Health checks to perform on targets from target groups.
* For details about health checking, see [documentation](/docs/application-load-balancer/concepts/backend-group#health-checks).
*
* If no health checks are specified, active health checking is not performed.
*/
healthchecks: HealthCheck[];
/**
* 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.
*/
tls?: BackendTls;
}
/** A resource for target groups that belong to the backend. */
export interface TargetGroupsBackend {
$type: "yandex.cloud.apploadbalancer.v1.TargetGroupsBackend";
/**
* 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.
*/
targetGroupIds: string[];
}
/** Transport settings to be used instead of the settings configured per-cluster */
export interface PlaintextTransportSettings {
$type: "yandex.cloud.apploadbalancer.v1.PlaintextTransportSettings";
}
/** Transport settings to be used instead of the settings configured per-cluster */
export interface SecureTransportSettings {
$type: "yandex.cloud.apploadbalancer.v1.SecureTransportSettings";
/** SNI string for TLS connections. */
sni: string;
/** Validation context for backend TLS connections. */
validationContext?: ValidationContext;
}
/** A resource for backend TLS settings. */
export interface BackendTls {
$type: "yandex.cloud.apploadbalancer.v1.BackendTls";
/** Server Name Indication (SNI) string for TLS connections. */
sni: string;
/** Validation context for TLS connections. */
validationContext?: ValidationContext;
}
/**
* A resource for Object Storage bucket used as a backend. For details about the concept,
* see [documentation](/docs/storage/concepts/bucket).
*/
export interface StorageBucketBackend {
$type: "yandex.cloud.apploadbalancer.v1.StorageBucketBackend";
/** Name of the bucket. */
bucket: string;
}
/**
* A health check resource.
* For details about the concept, see [documentation](/docs/application-load-balancer/concepts/backend-group#health-checks).
*/
export interface HealthCheck {
$type: "yandex.cloud.apploadbalancer.v1.HealthCheck";
/**
* 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.
*/
timeout?: Duration;
/** Base interval between consecutive health checks. */
interval?: Duration;
intervalJitterPercent: number;
/**
* 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`.
*/
healthyThreshold: number;
/**
* 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`.
*/
unhealthyThreshold: number;
/**
* Port used for health checks.
*
* If not specified, the backend port ([HttpBackend.port] or [GrpcBackend.port]) is used for health checks.
*/
healthcheckPort: number;
/** TCP stream health check settings. */
stream?: HealthCheck_StreamHealthCheck | undefined;
/** HTTP health check settings. */
http?: HealthCheck_HttpHealthCheck | undefined;
/** gRPC health check settings. */
grpc?: HealthCheck_GrpcHealthCheck | undefined;
plaintext?: PlaintextTransportSettings | undefined;
tls?: SecureTransportSettings | undefined;
}
/** A resource for TCP stream health check settings. */
export interface HealthCheck_StreamHealthCheck {
$type: "yandex.cloud.apploadbalancer.v1.HealthCheck.StreamHealthCheck";
/**
* Message sent to targets during TCP data transfer.
*
* If not specified, no data is sent to the target.
*/
send?: 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.
*/
receive?: Payload;
}
/** A resource for HTTP health check settings. */
export interface HealthCheck_HttpHealthCheck {
$type: "yandex.cloud.apploadbalancer.v1.HealthCheck.HttpHealthCheck";
/** Value for the HTTP/1.1 `Host` header or the HTTP/2 `:authority` pseudo-header used in requests to targets. */
host: string;
/**
* HTTP path used in requests to targets: request URI for HTTP/1.1 request line
* or value for the HTTP/2 `:path` pseudo-header.
*/
path: string;
/**
* Enables HTTP/2 usage in health checks.
*
* Default value: `false`, HTTP/1.1 is used.
*/
useHttp2: boolean;
}
/** A resource for gRPC health check settings. */
export interface HealthCheck_GrpcHealthCheck {
$type: "yandex.cloud.apploadbalancer.v1.HealthCheck.GrpcHealthCheck";
/**
* 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](https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
*/
serviceName: string;
}
export declare const BackendGroup: {
$type: "yandex.cloud.apploadbalancer.v1.BackendGroup";
encode(message: BackendGroup, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number | undefined): BackendGroup;
fromJSON(object: any): BackendGroup;
toJSON(message: BackendGroup): unknown;
fromPartial<I extends {
description?: string | undefined;
id?: string | undefined;
name?: string | undefined;
createdAt?: Date | undefined;
folderId?: string | undefined;
labels?: {
[x: string]: string | undefined;
[x: number]: string | undefined;
} | undefined;
http?: {
backends?: {
name?: string | undefined;
backendWeight?: number | undefined;
loadBalancingConfig?: {
panicThreshold?: number | undefined;
localityAwareRoutingPercent?: number | undefined;
strictLocality?: boolean | undefined;
mode?: LoadBalancingMode | undefined;
} | undefined;
port?: number | undefined;
targetGroups?: {
targetGroupIds?: string[] | undefined;
} | undefined;
storageBucket?: {
bucket?: string | undefined;
} | undefined;
healthchecks?: {
http?: {
useHttp2?: boolean | undefined;
host?: string | undefined;
path?: string | undefined;
} | undefined;
grpc?: {
serviceName?: string | undefined;
} | undefined;
stream?: {
send?: {
text?: string | undefined;
} | undefined;
receive?: {
text?: string | undefined;
} | undefined;
} | undefined;
tls?: {
sni?: string | undefined;
validationContext?: {
trustedCaId?: string | undefined;
trustedCaBytes?: string | undefined;
} | undefined;
} | undefined;
timeout?: {
seconds?: number | undefined;
nanos?: number | undefined;
} | undefined;
interval?: {
seconds?: number | undefined;
nanos?: number | undefined;
} | undefined;
intervalJitterPercent?: number | undefined;
healthyThreshold?: number | undefined;
unhealthyThreshold?: number | undefined;
healthcheckPort?: number | undefined;
plaintext?: {} | undefined;
}[] | undefined;
tls?: {
sni?: string | undefined;
validationContext?: {
trustedCaId?: string | undefined;
trustedCaBytes?: string | undefined;
} | undefined;
} | undefined;
useHttp2?: boolean | undefined;
}[] | undefined;
connection?: {
sourceIp?: boolean | undefined;
} | undefined;
header?: {
headerName?: string | undefined;
} | undefined;
cookie?: {
name?: string | undefined;
ttl?: {
seconds?: number | undefined;
nanos?: number | undefined;
} | undefined;
} | undefined;
} | undefined;
grpc?: {
backends?: {
name?: string | undefined;
backendWeight?: number | undefined;
loadBalancingConfig?: {
panicThreshold?: number | undefined;
localityAwareRoutingPercent?: number | undefined;
strictLocality?: boolean | undefined;
mode?: LoadBalancingMode | undefined;
} | undefined;
port?: number | undefined;
targetGroups?: {
targetGroupIds?: string[] | undefined;
} | undefined;
healthchecks?: {
http?: {
useHttp2?: boolean | undefined;
host?: string | undefined;
path?: string | undefined;
} | undefined;
grpc?: {
serviceName?: string | undefined;
} | undefined;
stream?: {
send?: {
text?: string | undefined;
} | undefined;
receive?: {
text?: string | undefined;
} | undefined;
} | undefined;
tls?: {
sni?: string | undefined;
validationContext?: {
trustedCaId?: string | undefined;
trustedCaBytes?: string | undefined;
} | undefined;
} | undefined;
timeout?: {
seconds?: number | undefined;
nanos?: number | undefined;
} | undefined;
interval?: {
seconds?: number | undefined;
nanos?: number | undefined;
} | undefined;
intervalJitterPercent?: number | undefined;
healthyThreshold?: number | undefined;
unhealthyThreshold?: number | undefined;
healthcheckPort?: number | undefined;
plaintext?: {} | undefined;
}[] | undefined;
tls?: {
sni?: string | undefined;
validationContext?: {
trustedCaId?: string | undefined;
trustedCaBytes?: string | undefined;
} | undefined;
} | undefined;
}[] | undefined;
connection?: {
sourceIp?: boolean | undefined;
} | undefined;
header?: {
headerName?: string | undefined;
} | undefined;
cookie?: {
name?: string | undefined;
ttl?: {
seconds?: number | undefined;
nanos?: number | undefined;
} | undefined;
} | undefined;
} | undefined;
stream?: {
backends?: {
name?: string | undefined;
backendWeight?: number | undefined;
loadBalancingConfig?: {
panicThreshold?: number | undefined;
localityAwareRoutingPercent?: number | undefined;
strictLocality?: boolean | undefined;
mode?: LoadBalancingMode | undefined;
} | undefined;
port?: number | undefined;
targetGroups?: {
targetGroupIds?: string[] | undefined;
} | undefined;
healthchecks?: {
http?: {
useHttp2?: boolean | undefined;
host?: string | undefined;
path?: string | undefined;
} | undefined;
grpc?: {
serviceName?: string | undefined;
} | undefined;
stream?: {
send?: {
text?: string | undefined;
} | undefined;
receive?: {
text?: string | undefined;
} | undefined;
} | undefined;
tls?: {
sni?: string | undefined;
validationContext?: {
trustedCaId?: string | undefined;
trustedCaBytes?: string | undefined;
} | undefined;
} | undefined;
timeout?: {
seconds?: number | undefined;
nanos?: number | undefined;
} | undefined;
interval?: {
seconds?: number | undefined;
nanos?: number | undefined;
} | undefined;
intervalJitterPercent?: number | undefined;
healthyThreshold?: number | undefined;
unhealthyThreshold?: number | undefined;
healthcheckPort?: number | undefined;
plaintext?: {} | undefined;
}[] | undefined;
tls?: {
sni?: string | undefined;
validationContext?: {
trustedCaId?: string | undefined;
trustedCaBytes?: string | undefined;
} | undefined;
} | undefined;
enableProxyProtocol?: boolean | undefined;
}[] | undefined;
connection?: {
sourceIp?: boolean | undefined;
} | undefined;
} | undefined;
} & {
description?: string | undefined;
id?: string | undefined;
name?: string | undefined;
createdAt?: Date | undefined;
folderId?: string | undefined;
labels?: ({
[x: string]: string | undefined;
[x: number]: string | undefined;
} & {
[x: string]: string | undefined;
[x: number]: string | undefined;
} & Record<Exclude<keyof I["labels"], string | number>, never>) | undefined;
http?: ({
backends?: {
name?: string | undefined;
backendWeight?: number | undefined;
loadBalancingConfig?: {
panicThreshold?: number | undefined;
localityAwareRoutingPercent?: number | undefined;
strictLocality?: boolean | undefined;
mode?: LoadBalancingMode | undefined;
} | undefined;
port?: number | undefined;
targetGroups?: {
targetGroupIds?: string[] | undefined;
} | undefined;
storageBucket?: {
bucket?: string | undefined;
} | undefined;
healthchecks?: {
http?: {
useHttp2?: boolean | undefined;
host?: string | undefined;
path?: string | undefined;
} | undefined;
grpc?: {
serviceName?: string | undefined;
} | undefined;
stream?: {
send?: {
text?: string | undefined;
} | undefined;
receive?: {
text?: string | undefined;
} | undefined;
} | undefined;
tls?: {
sni?: string | undefined;
validationContext?: {
trustedCaId?: string | undefined;
trustedCaBytes?: string | undefined;
} | undefined;
} | undefined;
timeout?: {
seconds?: number | undefined;
nanos?: number | undefined;
} | undefined;
interval?: {
seconds?: number | undefined;
nanos?: number | undefined;
} | undefined;
intervalJitterPercent?: number | undefined;
healthyThreshold?: number | undefined;
unhealthyThreshold?: number | undefined;
healthcheckPort?: number | undefined;
plaintext?: {} | undefined;
}[] | undefined;
tls?: {
sni?: string | undefined;
validationContext?: {
trustedCaId?: string | undefined;
trustedCaBytes?: string | undefined;
} | undefined;
} | undefined;
useHttp2?: boolean | undefined;
}[] | undefined;
connection?: {
sourceIp?: boolean | undefined;
} | undefined;
header?: {
headerName?: string | undefined;
} | undefined;
cookie?: {
name?: string | undefined;
ttl?: {
seconds?: number | undefined;
nanos?: number | undefined;
} | undefined;
} | undefined;
} & {
backends?: ({
name?: string | undefined;
backendWeight?: number | undefined;
loadBalancingConfig?: {
panicThreshold?: number | undefined;
localityAwareRoutingPercent?: number | undefined;
strictLocality?: boolean | undefined;
mode?: LoadBalancingMode | undefined;
} | undefined;
port?: number | undefined;
targetGroups?: {
targetGroupIds?: string[] | undefined;
} | undefined;
storageBucket?: {
bucket?: string | undefined;
} | undefined;
healthchecks?: {
http?: {
useHttp2?: boolean | undefined;
host?: string | undefined;
path?: string | undefined;
} | undefined;
grpc?: {
serviceName?: string | undefined;
} | undefined;
stream?: {
send?: {
text?: string | undefined;
} | undefined;
receive?: {
text?: string | undefined;
} | undefined;
} | undefined;
tls?: {
sni?: string | undefined;
validationContext?: {
trustedCaId?: string | undefined;
trustedCaBytes?: string | undefined;
} | undefined;
} | undefined;
timeout?: {
seconds?: number | undefined;
nanos?: number | undefined;
} | undefined;
interval?: {
seconds?: number | undefined;
nanos?: number | undefined;
} | undefined;
intervalJitterPercent?: number | undefined;
healthyThreshold?: number | undefined;
unhealthyThreshold?: number | undefined;
healthcheckPort?: number | undefined;
plaintext?: {} | undefined;
}[] | undefined;
tls?: {
sni?: string | undefined;
validationContext?: {
trustedCaId?: string | undefined;
trustedCaBytes?: string | undefined;
} | undefined;
} | undefined;
useHttp2?: boolean | undefined;
}[] & ({
name?: string | undefined;
backendWeight?: number | undefined;
loadBalancingConfig?: {
panicThreshold?: number | undefined;
localityAwareRoutingPercent?: number | undefined;
strictLocality?: boolean | undefined;
mode?: LoadBalancingMode | undefined;
} | undefined;
port?: number | undefined;
targetGroups?: {
targetGroupIds?: string[] | undefined;
} | undefined;
storageBucket?: {
bucket?: string | undefined;
} | undefined;
healthchecks?: {
http?: {
useHttp2?: boolean | undefined;
host?: string | undefined;
path?: string | undefined;
} | undefined;
grpc?: {
serviceName?: string | undefined;
} | undefined;
stream?: {
send?: {
text?: string | undefined;
} | undefined;
receive?: {
text?: string | undefined;
} | undefined;
} | undefined;
tls?: {
sni?: string | undefined;
validationContext?: {
trustedCaId?: string | undefined;
trustedCaBytes?: string | undefined;
} | undefined;
} | undefined;
timeout?: {
seconds?: number | undefined;
nanos?: number | undefined;
} | undefined;
interval?: {
seconds?: number | undefined;
nanos?: number | undefined;
} | undefined;
intervalJitterPercent?: number | undefined;
healthyThreshold?: number | undefined;
unhealthyThreshold?: number | undefined;
healthcheckPort?: number | undefined;
plaintext?: {} | undefined;
}[] | undefined;
tls?: {
sni?: string | undefined;
validationContext?: {
trustedCaId?: string | undefined;
trustedCaBytes?: string | undefined;
} | undefined;
} | undefined;
useHttp2?: boolean | undefined;
} & {
name?: string | undefined;
backendWeight?: number | undefined;
loadBalancingConfig?: ({
panicThreshold?: number | undefined;
localityAwareRoutingPercent?: number | undefined;
strictLocality?: boolean | undefined;
mode?: LoadBalancingMode | undefined;
} & {
panicThreshold?: number | undefined;
localityAwareRoutingPercent?: number | undefined;
strictLocality?: boolean | undefined;
mode?: LoadBalancingMode | undefined;
} & Record<Exclude<keyof I["http"]["backends"][number]["loadBalancingConfig"], "$type" | "panicThreshold" | "localityAwareRoutingPercent" | "strictLocality" | "mode">, never>) | undefined;
port?: number | undefined;
targetGroups?: ({
targetGroupIds?: string[] | undefined;
} & {
targetGroupIds?: (string[] & string[] & Record<Exclude<keyof I["http"]["backends"][number]["targetGroups"]["targetGroupIds"], "$type" | keyof string[]>, never>) | undefined;
} & Record<Exclude<keyof I["http"]["backends"][number]["targetGroups"], "$type" | "targetGroupIds">, never>) | undefined;
storageBucket?: ({
bucket?: string | undefined;
} & {
bucket?: string | undefined;
} & Record<Exclude<keyof I["http"]["backends"][number]["storageBucket"], "$type" | "bucket">, never>) | undefined;
healthchecks?: ({
http?: {
useHttp2?: boolean | undefined;
host?: string | undefined;
path?: string | undefined;
} | undefined;
grpc?: {
serviceName?: string | undefined;
} | undefined;
stream?: {
send?: {
text?: string | undefined;
} | undefined;
receive?: {
text?: string | undefined;
} | undefined;
} | undefined;
tls?: {
sni?: string | undefined;
validationContext?: {
trustedCaId?: string | undefined;
trustedCaBytes?: string | undefined;
} | undefined;
} | undefined;
timeout?: {
seconds?: number | undefined;
nanos?: number | undefined;
} | undefined;
interval?: {
seconds?: number | undefined;
nanos?: number | undefined;
} | undefined;
intervalJitterPercent?: number | undefined;
healthyThreshold?: number | undefined;
unhealthyThreshold?: number | undefined;
healthcheckPort?: number | undefined;
plaintext?: {} | undefined;
}[] & ({
http?: {
useHttp2?: boolean | undefined;
host?: string | undefined;
path?: string | undefined;
} | undefined;
grpc?: {
serviceName?: string | undefined;
} | undefined;
stream?: {
send?: {
text?: string | undefined;
} | undefined;
receive?: {
text?: string | undefined;
} | undefined;
} | undefined;
tls?: {
sni?: string | undefined;
validationContext?: {
trustedCaId?: string | undefined;
trustedCaBytes?: string | undefined;
} | undefined;
} | undefined;
timeout?: {
seconds?: number | undefined;
nanos?: number | undefined;
} | undefined;
interval?: {
seconds?: number | undefined;
nanos?: number | undefined;
} | undefined;
intervalJitterPercent?: number | undefined;
healthyThreshold?: number | undefined;
unhealthyThreshold?: number | undefined;
healthcheckPort?: number | undefined;
plaintext?: {} | undefined;
} & {
http?: ({
useHttp2?: boolean | undefined;
host?: string | undefined;
path?: string | undefined;
} & {
useHttp2?: boolean | undefined;
host?: string | undefined;
path?: string | undefined;
} & Record<Exclude<keyof I["http"]["backends"][number]["healthchecks"][number]["http"], "$type" | "useHttp2" | "host" | "path">, never>) | undefined;
grpc?: ({
serviceName?: string | undefined;
} & {
serviceName?: string | undefined;
} & Record<Exclude<keyof I["http"]["backends"][number]["healthchecks"][number]["grpc"], "$type" | "serviceName">, never>) | undefined;
stream?: ({
send?: {
text?: string | undefined;
} | undefined;
receive?: {
text?: string | undefined;
} | undefined;
} & {
send?: ({
text?: string | undefined;
} & {
text?: string | undefined;
} & Record<Exclude<keyof I["http"]["backends"][number]["healthchecks"][number]["stream"]["send"], "$type" | "text">, never>) | undefined;
receive?: ({
text?: string | undefined;
} & {
text?: string | undefined;
} & Record<Exclude<keyof I["http"]["backends"][number]["healthchecks"][number]["stream"]["receive"], "$type" | "text">, never>) | undefined;
} & Record<Exclude<keyof I["http"]["backends"][number]["healthchecks"][number]["stream"], "$type" | "send" | "receive">, never>) | undefined;
tls?: ({
sni?: string | undefined;
validationContext?: {
trustedCaId?: string | undefined;
trustedCaBytes?: string | undefined;
} | undefined;
} & {
sni?: string | undefined;
validationContext?: ({
trustedCaId?: string | undefined;
trustedCaBytes?: string | undefined;
} & {
trustedCaId?: string | undefined;
trustedCaBytes?: string | undefined;
} & Record<Exclude<keyof I["http"]["backends"][number]["healthchecks"][number]["tls"]["validationContext"], "$type" | "trustedCaId" | "trustedCaBytes">, never>) | undefined;
} & Record<Exclude<keyof I["http"]["backends"][number]["healthchecks"][number]["tls"], "$type" | "sni" | "validationContext">, never>) | undefined;
timeout?: ({
seconds?: number | undefined;
nanos?: number | undefined;
} & {
seconds?: number | undefined;
nanos?: number | undefined;
} & Record<Exclude<keyof I["http"]["backends"][number]["healthchecks"][number]["timeout"], "$type" | "seconds" | "nanos">, never>) | undefined;
interval?: ({
seconds?: number | undefined;
nanos?: number | undefined;
} & {
seconds?: number | undefined;
nanos?: number | undefined;
} & Record<Exclude<keyof I["http"]["backends"][number]["healthchecks"][number]["interval"], "$type" | "seconds" | "nanos">, never>) | undefined;
intervalJitterPercent?: number | undefined;
healthyThreshold?: number | undefined;
unhealthyThreshold?: number | undefined;
healthcheckPort?: number | undefined;
plaintext?: ({} & {} & Record<Exclude<keyof I["http"]["backends"][number]["healthchecks"][number]["plaintext"], "$type">, never>) | undefined;
} & Record<Exclude<keyof I["http"]["backends"][number]["healthchecks"][number], "$type" | "http" | "grpc" | "stream" | "tls" | "timeout" | "interval" | "intervalJitterPercent" | "healthyThreshold" | "unhealthyThreshold" | "healthcheckPort" | "plaintext">, never>)[] & Record<Exclude<keyof I["http"]["backends"][number]["healthchecks"], "$type" | keyof {
http?: {
useHttp2?: boolean | undefined;
host?: string | undefined;
path?: string | undefined;
} | undefined;
grpc?: {
serviceName?: string | undefined;
} | undefined;
stream?: {
send?: {
text?: string | undefined;
} | undefined;
receive?: {
text?: string | undefined;
} | undefined;
} | undefined;
tls?: {
sni?: string | undefined;
validationContext?: {