@yandex-cloud/nodejs-sdk
Version:
Yandex.Cloud NodeJS SDK
1,070 lines (1,069 loc) • 109 kB
TypeScript
import _m0 from "protobufjs/minimal";
import { LogOptions } from "../../../../yandex/cloud/apploadbalancer/v1/logging";
import { Target } from "../../../../yandex/cloud/apploadbalancer/v1/target_group";
export declare const protobufPackage = "yandex.cloud.apploadbalancer.v1";
/**
* An application load balancer resource.
* For details about the concept, see [documentation](/docs/application-load-balancer/concepts/application-load-balancer).
*/
export interface LoadBalancer {
$type: "yandex.cloud.apploadbalancer.v1.LoadBalancer";
/** ID of the application load balancer. Generated at creation time. */
id: string;
/** Name of the application load balancer. The name is unique within the folder. */
name: string;
/** Description of the application load balancer. */
description: string;
/** ID of the folder that the application load balancer belongs to. */
folderId: string;
/**
* Application load balancer labels as `key:value` pairs.
* For details about the concept, see [documentation](/docs/overview/concepts/services#labels).
*/
labels: {
[key: string]: string;
};
/** Status of the application load balancer. */
status: LoadBalancer_Status;
/** ID of the region that the application load balancer is located at. */
regionId: string;
/** ID of the network that the application load balancer belongs to. */
networkId: string;
/**
* Listeners that belong to the application load balancer.
*
* For details about the concept, see [documentation](/docs/application-load-balancer/concepts/application-load-balancer#listener).
*/
listeners: Listener[];
/**
* Locality settings of the application load balancer.
*
* For details about the concept, see [documentation](/docs/application-load-balancer/concepts/application-load-balancer#lb-location).
*/
allocationPolicy?: AllocationPolicy;
/**
* ID of the log group that stores access logs of the application load balancer.
*
* The logs can be accessed using a Cloud Functions [trigger for Cloud Logs](/docs/functions/operations/trigger/cloudlogs-trigger-create).
*/
logGroupId: string;
/**
* ID's of the security groups attributed to the application load balancer.
*
* For details about the concept,
* see [documentation](/docs/application-load-balancer/concepts/application-load-balancer#security-groups).
*/
securityGroupIds: string[];
/** Creation timestamp. */
createdAt?: Date;
/**
* Scaling settings of the application load balancer.
*
* The scaling settings relate to a special internal instance group which facilitates the balancer's work.
* Instances in this group are called _resource units_. The group is scaled automatically based on incoming load
* and within limitations specified in these settings.
*
* For details about the concept,
* see [documentation](/docs/application-load-balancer/concepts/application-load-balancer#lcu-scaling).
*/
autoScalePolicy?: AutoScalePolicy;
/** Cloud logging settings of the application load balancer. */
logOptions?: LogOptions;
}
export declare enum LoadBalancer_Status {
STATUS_UNSPECIFIED = 0,
/** CREATING - The application load balancer is being created. */
CREATING = 1,
/** STARTING - The application load balancer is being started. */
STARTING = 2,
/** ACTIVE - The application load balancer is active and sends traffic to the targets. */
ACTIVE = 3,
/** STOPPING - The application load balancer is being stopped. */
STOPPING = 4,
/** STOPPED - The application load balancer is stopped and doesn't send traffic to the targets. */
STOPPED = 5,
/** DELETING - The application load balancer is being deleted. */
DELETING = 6,
UNRECOGNIZED = -1
}
export declare function loadBalancer_StatusFromJSON(object: any): LoadBalancer_Status;
export declare function loadBalancer_StatusToJSON(object: LoadBalancer_Status): string;
export interface LoadBalancer_LabelsEntry {
$type: "yandex.cloud.apploadbalancer.v1.LoadBalancer.LabelsEntry";
key: string;
value: string;
}
/** An endpoint address resource. */
export interface Address {
$type: "yandex.cloud.apploadbalancer.v1.Address";
/** Public IPv4 endpoint address. */
externalIpv4Address?: ExternalIpv4Address | undefined;
/**
* Internal IPv4 endpoint address.
*
* To enable the use of listeners with internal addresses, [contact support](https://console.cloud.yandex.ru/support).
*/
internalIpv4Address?: InternalIpv4Address | undefined;
/** Public IPv6 endpoint address. */
externalIpv6Address?: ExternalIpv6Address | undefined;
}
/** A public (external) IPv4 endpoint address resource. */
export interface ExternalIpv4Address {
$type: "yandex.cloud.apploadbalancer.v1.ExternalIpv4Address";
/** IPv4 address. */
address: string;
}
/** An internal IPv4 endpoint address resource. */
export interface InternalIpv4Address {
$type: "yandex.cloud.apploadbalancer.v1.InternalIpv4Address";
/** IPv4 address. */
address: string;
/** ID of the subnet that the address belongs to. */
subnetId: string;
}
/** A public (external) IPv4 endpoint address resource. */
export interface ExternalIpv6Address {
$type: "yandex.cloud.apploadbalancer.v1.ExternalIpv6Address";
/** IPv6 address. */
address: string;
}
/**
* An application load balancer location resource.
*
* For details about the concept, see [documentation](/docs/application-load-balancer/concepts/application-load-balancer#lb-location).
*/
export interface Location {
$type: "yandex.cloud.apploadbalancer.v1.Location";
/**
* ID of the availability zone where the application load balancer resides.
*
* Each availability zone can only be specified once.
*/
zoneId: string;
/** ID of the subnet that the application load balancer belongs to. */
subnetId: string;
/**
* Disables the load balancer node in the specified availability zone.
*
* Backends in the availability zone are not directly affected by this setting.
* They still may receive traffic from the load balancer nodes in other availability zones,
* subject to [LoadBalancingConfig.locality_aware_routing_percent] and [LoadBalancingConfig.strict_locality] settings.
*/
disableTraffic: boolean;
}
/** A locality settings (allocation policy) resource. */
export interface AllocationPolicy {
$type: "yandex.cloud.apploadbalancer.v1.AllocationPolicy";
/** Availability zones and subnets that the application load balancer resides. */
locations: Location[];
}
/**
* A listener resource.
*
* For details about the concept, see [documentation](/docs/application-load-balancer/concepts/application-load-balancer#listener).
*/
export interface Listener {
$type: "yandex.cloud.apploadbalancer.v1.Listener";
/**
* Name of the listener. The name is unique within the application load balancer.
* The string length in characters is 3-63.
*/
name: string;
/**
* Endpoints of the listener.
*
* Endpoints are defined by their IP addresses and ports.
*/
endpoints: Endpoint[];
/** Unencrypted HTTP listener settings. */
http?: HttpListener | undefined;
/**
* TLS-encrypted HTTP or TCP stream listener settings.
*
* All handlers within a listener ([TlsListener.default_handler] and [TlsListener.sni_handlers]) must be of one
* type, [HttpHandler] or [StreamHandler]. Mixing HTTP and TCP stream traffic in a TLS-encrypted listener is not
* supported.
*/
tls?: TlsListener | undefined;
/** Unencrypted stream (TCP) listener settings. */
stream?: StreamListener | undefined;
}
/** An endpoint resource. */
export interface Endpoint {
$type: "yandex.cloud.apploadbalancer.v1.Endpoint";
/** Endpoint public (external) and internal addresses. */
addresses: Address[];
/** Endpoint ports. */
ports: number[];
}
/** An HTTP listener resource. */
export interface HttpListener {
$type: "yandex.cloud.apploadbalancer.v1.HttpListener";
/**
* Settings for handling HTTP requests.
*
* Only one of `handler` and [redirects] can be specified.
*/
handler?: HttpHandler;
/**
* Redirects settings.
*
* Only one of `redirects` and [handler] can be specified.
*/
redirects?: Redirects;
}
/** TLS-encrypted (HTTP or TCP stream) listener resource. */
export interface TlsListener {
$type: "yandex.cloud.apploadbalancer.v1.TlsListener";
/**
* Settings for handling requests by default, with Server Name
* Indication (SNI) not matching any of the [sni_handlers].
*/
defaultHandler?: TlsHandler;
/**
* Settings for handling requests with Server Name Indication (SNI)
* matching one of [SniMatch.server_names] values.
*/
sniHandlers: SniMatch[];
}
/** A stream (TCP) listener resource. */
export interface StreamListener {
$type: "yandex.cloud.apploadbalancer.v1.StreamListener";
/** Settings for handling stream (TCP) requests. */
handler?: StreamHandler;
}
/** An HTTP/2 options resource. */
export interface Http2Options {
$type: "yandex.cloud.apploadbalancer.v1.Http2Options";
/** Maximum number of concurrent HTTP/2 streams in a connection. */
maxConcurrentStreams: number;
}
/** A stream (TCP) handler resource. */
export interface StreamHandler {
$type: "yandex.cloud.apploadbalancer.v1.StreamHandler";
/**
* ID of the backend group processing requests. For details about the concept, see
* [documentation](/docs/application-load-balancer/concepts/backend-group).
*
* The backend group type, specified via [BackendGroup.backend], must be `stream`.
*
* To get the list of all available backend groups, make a [BackendGroupService.List] request.
*/
backendGroupId: string;
}
/** An HTTP handler resource. */
export interface HttpHandler {
$type: "yandex.cloud.apploadbalancer.v1.HttpHandler";
/**
* ID of the HTTP router processing requests. For details about the concept, see
* [documentation](/docs/application-load-balancer/concepts/http-router).
*
* To get the list of all available HTTP routers, make a [HttpRouterService.List] request.
*/
httpRouterId: string;
/**
* HTTP/2 settings.
*
* If specified, incoming HTTP/2 requests are supported by the listener.
*/
http2Options?: Http2Options | undefined;
/** Enables support for incoming HTTP/1.0 and HTTP/1.1 requests and disables it for HTTP/2 requests. */
allowHttp10: boolean | undefined;
/** When unset, will preserve the incoming x-request-id header, otherwise would rewrite it with a new value. */
rewriteRequestId: boolean;
}
/** A listener redirects resource. */
export interface Redirects {
$type: "yandex.cloud.apploadbalancer.v1.Redirects";
/**
* Redirects all unencrypted HTTP requests to the same URI with scheme changed to `https`.
*
* The setting has the same effect as a single, catch-all [HttpRoute]
* with [RedirectAction.replace_scheme] set to `https`.
*/
httpToHttps: boolean;
}
/** A SNI handler resource. */
export interface SniMatch {
$type: "yandex.cloud.apploadbalancer.v1.SniMatch";
/** Name of the SNI handler. */
name: string;
/** Server names that are matched by the SNI handler. */
serverNames: string[];
/** Settings for handling requests with Server Name Indication (SNI) matching one of [server_names] values. */
handler?: TlsHandler;
}
/** A TLS-encrypted (HTTP or TCP stream) handler resource. */
export interface TlsHandler {
$type: "yandex.cloud.apploadbalancer.v1.TlsHandler";
/** HTTP handler. */
httpHandler?: HttpHandler | undefined;
/** Stream (TCP) handler. */
streamHandler?: StreamHandler | undefined;
/**
* ID's of the TLS server certificates from [Certificate Manager](/docs/certificate-manager/).
*
* RSA and ECDSA certificates are supported, and only the first certificate of each type is used.
*/
certificateIds: string[];
}
/** A target state resource. */
export interface TargetState {
$type: "yandex.cloud.apploadbalancer.v1.TargetState";
/** Health of the target, i.e. its statuses in all availability zones. */
status?: TargetState_HealthcheckStatus;
/** Target. */
target?: Target;
}
/** Supported target statuses. */
export declare enum TargetState_Status {
STATUS_UNSPECIFIED = 0,
/**
* HEALTHY - All of the health checks specified in [HttpBackend.healthchecks] or [GrpcBackend.healthchecks] are passed
* (the number depends on the [HealthCheck.healthy_threshold] setting) and the target is ready to receive traffic.
*/
HEALTHY = 1,
/**
* PARTIALLY_HEALTHY - Some of the health checks specified in [HttpBackend.healthchecks] or [GrpcBackend.healthchecks] failed
* (the number depends on the [HealthCheck.unhealthy_threshold] setting).
* The target is ready to receive traffic from the load balancer nodes which, based on their health checks,
* consider the target healthy.
*/
PARTIALLY_HEALTHY = 2,
/**
* UNHEALTHY - All of the health checks specified in [HttpBackend.healthchecks] or [GrpcBackend.healthchecks] failed
* (the number depends on the [HealthCheck.unhealthy_threshold] setting) and the target is not receiving traffic.
*/
UNHEALTHY = 3,
/** DRAINING - Target is being deleted and the application load balancer is no longer sending traffic to this target. */
DRAINING = 4,
TIMEOUT = 5,
UNRECOGNIZED = -1
}
export declare function targetState_StatusFromJSON(object: any): TargetState_Status;
export declare function targetState_StatusToJSON(object: TargetState_Status): string;
/** Health of the target. */
export interface TargetState_HealthcheckStatus {
$type: "yandex.cloud.apploadbalancer.v1.TargetState.HealthcheckStatus";
/** Statuses of the target in its availability zones. */
zoneStatuses: TargetState_ZoneHealthcheckStatus[];
}
/** Health of the target in the availability zone. */
export interface TargetState_ZoneHealthcheckStatus {
$type: "yandex.cloud.apploadbalancer.v1.TargetState.ZoneHealthcheckStatus";
/** ID of the availability zone. */
zoneId: string;
/** Status of the target in the availability zone. */
status: TargetState_Status;
/**
* Indicates whether the target has been marked `UNHEALTHY` due to failing active health checks,
* which determine target statuses as configured in [HttpBackend.healthchecks] or [GrpcBackend.healthchecks].
*
* Currently the only type of health checks is active, as described above.
* Passive health checks, which determine the health of a target based on its responses to production requests
* (HTTP 5xx status codes, connection errors etc.), are not implemented yet.
*/
failedActiveHc: boolean;
}
/** A resource for scaling settings of an application load balancer. */
export interface AutoScalePolicy {
$type: "yandex.cloud.apploadbalancer.v1.AutoScalePolicy";
/**
* Lower limit for the number of resource units in each availability zone.
*
* If not specified previously (using other instruments such as management console), the default value is 2.
* To revert to it, specify it explicitly.
*
* The minimum value is 2.
*/
minZoneSize: number;
/**
* Upper limit for the total number of resource units across all availability zones.
*
* If a positive value is specified, it must be at least [min_zone_size] multiplied by the size of
* [AllocationPolicy.locations].
*
* If the value is 0, there is no upper limit.
*/
maxSize: number;
}
export declare const LoadBalancer: {
$type: "yandex.cloud.apploadbalancer.v1.LoadBalancer";
encode(message: LoadBalancer, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number | undefined): LoadBalancer;
fromJSON(object: any): LoadBalancer;
toJSON(message: LoadBalancer): unknown;
fromPartial<I extends {
description?: string | undefined;
id?: string | undefined;
name?: string | undefined;
createdAt?: Date | undefined;
status?: LoadBalancer_Status | undefined;
folderId?: string | undefined;
labels?: {
[x: string]: string | undefined;
[x: number]: string | undefined;
} | undefined;
logGroupId?: string | undefined;
regionId?: string | undefined;
networkId?: string | undefined;
securityGroupIds?: string[] | undefined;
listeners?: {
name?: string | undefined;
http?: {
handler?: {
httpRouterId?: string | undefined;
http2Options?: {
maxConcurrentStreams?: number | undefined;
} | undefined;
allowHttp10?: boolean | undefined;
rewriteRequestId?: boolean | undefined;
} | undefined;
redirects?: {
httpToHttps?: boolean | undefined;
} | undefined;
} | undefined;
stream?: {
handler?: {
backendGroupId?: string | undefined;
} | undefined;
} | undefined;
tls?: {
defaultHandler?: {
httpHandler?: {
httpRouterId?: string | undefined;
http2Options?: {
maxConcurrentStreams?: number | undefined;
} | undefined;
allowHttp10?: boolean | undefined;
rewriteRequestId?: boolean | undefined;
} | undefined;
streamHandler?: {
backendGroupId?: string | undefined;
} | undefined;
certificateIds?: string[] | undefined;
} | undefined;
sniHandlers?: {
name?: string | undefined;
handler?: {
httpHandler?: {
httpRouterId?: string | undefined;
http2Options?: {
maxConcurrentStreams?: number | undefined;
} | undefined;
allowHttp10?: boolean | undefined;
rewriteRequestId?: boolean | undefined;
} | undefined;
streamHandler?: {
backendGroupId?: string | undefined;
} | undefined;
certificateIds?: string[] | undefined;
} | undefined;
serverNames?: string[] | undefined;
}[] | undefined;
} | undefined;
endpoints?: {
addresses?: {
externalIpv4Address?: {
address?: string | undefined;
} | undefined;
internalIpv4Address?: {
subnetId?: string | undefined;
address?: string | undefined;
} | undefined;
externalIpv6Address?: {
address?: string | undefined;
} | undefined;
}[] | undefined;
ports?: number[] | undefined;
}[] | undefined;
}[] | undefined;
allocationPolicy?: {
locations?: {
subnetId?: string | undefined;
zoneId?: string | undefined;
disableTraffic?: boolean | undefined;
}[] | undefined;
} | undefined;
autoScalePolicy?: {
minZoneSize?: number | undefined;
maxSize?: number | undefined;
} | undefined;
logOptions?: {
logGroupId?: string | undefined;
disable?: boolean | undefined;
discardRules?: {
httpCodes?: number[] | undefined;
httpCodeIntervals?: import("../../../../yandex/cloud/apploadbalancer/v1/logging").HttpCodeInterval[] | undefined;
grpcCodes?: import("../../../../google/rpc/code").Code[] | undefined;
discardPercent?: number | undefined;
}[] | undefined;
} | undefined;
} & {
description?: string | undefined;
id?: string | undefined;
name?: string | undefined;
createdAt?: Date | undefined;
status?: LoadBalancer_Status | 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;
logGroupId?: string | undefined;
regionId?: string | undefined;
networkId?: string | undefined;
securityGroupIds?: (string[] & string[] & Record<Exclude<keyof I["securityGroupIds"], "$type" | keyof string[]>, never>) | undefined;
listeners?: ({
name?: string | undefined;
http?: {
handler?: {
httpRouterId?: string | undefined;
http2Options?: {
maxConcurrentStreams?: number | undefined;
} | undefined;
allowHttp10?: boolean | undefined;
rewriteRequestId?: boolean | undefined;
} | undefined;
redirects?: {
httpToHttps?: boolean | undefined;
} | undefined;
} | undefined;
stream?: {
handler?: {
backendGroupId?: string | undefined;
} | undefined;
} | undefined;
tls?: {
defaultHandler?: {
httpHandler?: {
httpRouterId?: string | undefined;
http2Options?: {
maxConcurrentStreams?: number | undefined;
} | undefined;
allowHttp10?: boolean | undefined;
rewriteRequestId?: boolean | undefined;
} | undefined;
streamHandler?: {
backendGroupId?: string | undefined;
} | undefined;
certificateIds?: string[] | undefined;
} | undefined;
sniHandlers?: {
name?: string | undefined;
handler?: {
httpHandler?: {
httpRouterId?: string | undefined;
http2Options?: {
maxConcurrentStreams?: number | undefined;
} | undefined;
allowHttp10?: boolean | undefined;
rewriteRequestId?: boolean | undefined;
} | undefined;
streamHandler?: {
backendGroupId?: string | undefined;
} | undefined;
certificateIds?: string[] | undefined;
} | undefined;
serverNames?: string[] | undefined;
}[] | undefined;
} | undefined;
endpoints?: {
addresses?: {
externalIpv4Address?: {
address?: string | undefined;
} | undefined;
internalIpv4Address?: {
subnetId?: string | undefined;
address?: string | undefined;
} | undefined;
externalIpv6Address?: {
address?: string | undefined;
} | undefined;
}[] | undefined;
ports?: number[] | undefined;
}[] | undefined;
}[] & ({
name?: string | undefined;
http?: {
handler?: {
httpRouterId?: string | undefined;
http2Options?: {
maxConcurrentStreams?: number | undefined;
} | undefined;
allowHttp10?: boolean | undefined;
rewriteRequestId?: boolean | undefined;
} | undefined;
redirects?: {
httpToHttps?: boolean | undefined;
} | undefined;
} | undefined;
stream?: {
handler?: {
backendGroupId?: string | undefined;
} | undefined;
} | undefined;
tls?: {
defaultHandler?: {
httpHandler?: {
httpRouterId?: string | undefined;
http2Options?: {
maxConcurrentStreams?: number | undefined;
} | undefined;
allowHttp10?: boolean | undefined;
rewriteRequestId?: boolean | undefined;
} | undefined;
streamHandler?: {
backendGroupId?: string | undefined;
} | undefined;
certificateIds?: string[] | undefined;
} | undefined;
sniHandlers?: {
name?: string | undefined;
handler?: {
httpHandler?: {
httpRouterId?: string | undefined;
http2Options?: {
maxConcurrentStreams?: number | undefined;
} | undefined;
allowHttp10?: boolean | undefined;
rewriteRequestId?: boolean | undefined;
} | undefined;
streamHandler?: {
backendGroupId?: string | undefined;
} | undefined;
certificateIds?: string[] | undefined;
} | undefined;
serverNames?: string[] | undefined;
}[] | undefined;
} | undefined;
endpoints?: {
addresses?: {
externalIpv4Address?: {
address?: string | undefined;
} | undefined;
internalIpv4Address?: {
subnetId?: string | undefined;
address?: string | undefined;
} | undefined;
externalIpv6Address?: {
address?: string | undefined;
} | undefined;
}[] | undefined;
ports?: number[] | undefined;
}[] | undefined;
} & {
name?: string | undefined;
http?: ({
handler?: {
httpRouterId?: string | undefined;
http2Options?: {
maxConcurrentStreams?: number | undefined;
} | undefined;
allowHttp10?: boolean | undefined;
rewriteRequestId?: boolean | undefined;
} | undefined;
redirects?: {
httpToHttps?: boolean | undefined;
} | undefined;
} & {
handler?: ({
httpRouterId?: string | undefined;
http2Options?: {
maxConcurrentStreams?: number | undefined;
} | undefined;
allowHttp10?: boolean | undefined;
rewriteRequestId?: boolean | undefined;
} & {
httpRouterId?: string | undefined;
http2Options?: ({
maxConcurrentStreams?: number | undefined;
} & {
maxConcurrentStreams?: number | undefined;
} & Record<Exclude<keyof I["listeners"][number]["http"]["handler"]["http2Options"], "$type" | "maxConcurrentStreams">, never>) | undefined;
allowHttp10?: boolean | undefined;
rewriteRequestId?: boolean | undefined;
} & Record<Exclude<keyof I["listeners"][number]["http"]["handler"], "$type" | "httpRouterId" | "http2Options" | "allowHttp10" | "rewriteRequestId">, never>) | undefined;
redirects?: ({
httpToHttps?: boolean | undefined;
} & {
httpToHttps?: boolean | undefined;
} & Record<Exclude<keyof I["listeners"][number]["http"]["redirects"], "$type" | "httpToHttps">, never>) | undefined;
} & Record<Exclude<keyof I["listeners"][number]["http"], "$type" | "handler" | "redirects">, never>) | undefined;
stream?: ({
handler?: {
backendGroupId?: string | undefined;
} | undefined;
} & {
handler?: ({
backendGroupId?: string | undefined;
} & {
backendGroupId?: string | undefined;
} & Record<Exclude<keyof I["listeners"][number]["stream"]["handler"], "$type" | "backendGroupId">, never>) | undefined;
} & Record<Exclude<keyof I["listeners"][number]["stream"], "$type" | "handler">, never>) | undefined;
tls?: ({
defaultHandler?: {
httpHandler?: {
httpRouterId?: string | undefined;
http2Options?: {
maxConcurrentStreams?: number | undefined;
} | undefined;
allowHttp10?: boolean | undefined;
rewriteRequestId?: boolean | undefined;
} | undefined;
streamHandler?: {
backendGroupId?: string | undefined;
} | undefined;
certificateIds?: string[] | undefined;
} | undefined;
sniHandlers?: {
name?: string | undefined;
handler?: {
httpHandler?: {
httpRouterId?: string | undefined;
http2Options?: {
maxConcurrentStreams?: number | undefined;
} | undefined;
allowHttp10?: boolean | undefined;
rewriteRequestId?: boolean | undefined;
} | undefined;
streamHandler?: {
backendGroupId?: string | undefined;
} | undefined;
certificateIds?: string[] | undefined;
} | undefined;
serverNames?: string[] | undefined;
}[] | undefined;
} & {
defaultHandler?: ({
httpHandler?: {
httpRouterId?: string | undefined;
http2Options?: {
maxConcurrentStreams?: number | undefined;
} | undefined;
allowHttp10?: boolean | undefined;
rewriteRequestId?: boolean | undefined;
} | undefined;
streamHandler?: {
backendGroupId?: string | undefined;
} | undefined;
certificateIds?: string[] | undefined;
} & {
httpHandler?: ({
httpRouterId?: string | undefined;
http2Options?: {
maxConcurrentStreams?: number | undefined;
} | undefined;
allowHttp10?: boolean | undefined;
rewriteRequestId?: boolean | undefined;
} & {
httpRouterId?: string | undefined;
http2Options?: ({
maxConcurrentStreams?: number | undefined;
} & {
maxConcurrentStreams?: number | undefined;
} & Record<Exclude<keyof I["listeners"][number]["tls"]["defaultHandler"]["httpHandler"]["http2Options"], "$type" | "maxConcurrentStreams">, never>) | undefined;
allowHttp10?: boolean | undefined;
rewriteRequestId?: boolean | undefined;
} & Record<Exclude<keyof I["listeners"][number]["tls"]["defaultHandler"]["httpHandler"], "$type" | "httpRouterId" | "http2Options" | "allowHttp10" | "rewriteRequestId">, never>) | undefined;
streamHandler?: ({
backendGroupId?: string | undefined;
} & {
backendGroupId?: string | undefined;
} & Record<Exclude<keyof I["listeners"][number]["tls"]["defaultHandler"]["streamHandler"], "$type" | "backendGroupId">, never>) | undefined;
certificateIds?: (string[] & string[] & Record<Exclude<keyof I["listeners"][number]["tls"]["defaultHandler"]["certificateIds"], "$type" | keyof string[]>, never>) | undefined;
} & Record<Exclude<keyof I["listeners"][number]["tls"]["defaultHandler"], "$type" | "httpHandler" | "streamHandler" | "certificateIds">, never>) | undefined;
sniHandlers?: ({
name?: string | undefined;
handler?: {
httpHandler?: {
httpRouterId?: string | undefined;
http2Options?: {
maxConcurrentStreams?: number | undefined;
} | undefined;
allowHttp10?: boolean | undefined;
rewriteRequestId?: boolean | undefined;
} | undefined;
streamHandler?: {
backendGroupId?: string | undefined;
} | undefined;
certificateIds?: string[] | undefined;
} | undefined;
serverNames?: string[] | undefined;
}[] & ({
name?: string | undefined;
handler?: {
httpHandler?: {
httpRouterId?: string | undefined;
http2Options?: {
maxConcurrentStreams?: number | undefined;
} | undefined;
allowHttp10?: boolean | undefined;
rewriteRequestId?: boolean | undefined;
} | undefined;
streamHandler?: {
backendGroupId?: string | undefined;
} | undefined;
certificateIds?: string[] | undefined;
} | undefined;
serverNames?: string[] | undefined;
} & {
name?: string | undefined;
handler?: ({
httpHandler?: {
httpRouterId?: string | undefined;
http2Options?: {
maxConcurrentStreams?: number | undefined;
} | undefined;
allowHttp10?: boolean | undefined;
rewriteRequestId?: boolean | undefined;
} | undefined;
streamHandler?: {
backendGroupId?: string | undefined;
} | undefined;
certificateIds?: string[] | undefined;
} & {
httpHandler?: ({
httpRouterId?: string | undefined;
http2Options?: {
maxConcurrentStreams?: number | undefined;
} | undefined;
allowHttp10?: boolean | undefined;
rewriteRequestId?: boolean | undefined;
} & {
httpRouterId?: string | undefined;
http2Options?: ({
maxConcurrentStreams?: number | undefined;
} & {
maxConcurrentStreams?: number | undefined;
} & Record<Exclude<keyof I["listeners"][number]["tls"]["sniHandlers"][number]["handler"]["httpHandler"]["http2Options"], "$type" | "maxConcurrentStreams">, never>) | undefined;
allowHttp10?: boolean | undefined;
rewriteRequestId?: boolean | undefined;
} & Record<Exclude<keyof I["listeners"][number]["tls"]["sniHandlers"][number]["handler"]["httpHandler"], "$type" | "httpRouterId" | "http2Options" | "allowHttp10" | "rewriteRequestId">, never>) | undefined;
streamHandler?: ({
backendGroupId?: string | undefined;
} & {
backendGroupId?: string | undefined;
} & Record<Exclude<keyof I["listeners"][number]["tls"]["sniHandlers"][number]["handler"]["streamHandler"], "$type" | "backendGroupId">, never>) | undefined;
certificateIds?: (string[] & string[] & Record<Exclude<keyof I["listeners"][number]["tls"]["sniHandlers"][number]["handler"]["certificateIds"], "$type" | keyof string[]>, never>) | undefined;
} & Record<Exclude<keyof I["listeners"][number]["tls"]["sniHandlers"][number]["handler"], "$type" | "httpHandler" | "streamHandler" | "certificateIds">, never>) | undefined;
serverNames?: (string[] & string[] & Record<Exclude<keyof I["listeners"][number]["tls"]["sniHandlers"][number]["serverNames"], "$type" | keyof string[]>, never>) | undefined;
} & Record<Exclude<keyof I["listeners"][number]["tls"]["sniHandlers"][number], "$type" | "name" | "handler" | "serverNames">, never>)[] & Record<Exclude<keyof I["listeners"][number]["tls"]["sniHandlers"], "$type" | keyof {
name?: string | undefined;
handler?: {
httpHandler?: {
httpRouterId?: string | undefined;
http2Options?: {
maxConcurrentStreams?: number | undefined;
} | undefined;
allowHttp10?: boolean | undefined;
rewriteRequestId?: boolean | undefined;
} | undefined;
streamHandler?: {
backendGroupId?: string | undefined;
} | undefined;
certificateIds?: string[] | undefined;
} | undefined;
serverNames?: string[] | undefined;
}[]>, never>) | undefined;
} & Record<Exclude<keyof I["listeners"][number]["tls"], "$type" | "defaultHandler" | "sniHandlers">, never>) | undefined;
endpoints?: ({
addresses?: {
externalIpv4Address?: {
address?: string | undefined;
} | undefined;
internalIpv4Address?: {
subnetId?: string | undefined;
address?: string | undefined;
} | undefined;
externalIpv6Address?: {
address?: string | undefined;
} | undefined;
}[] | undefined;
ports?: number[] | undefined;
}[] & ({
addresses?: {
externalIpv4Address?: {
address?: string | undefined;
} | undefined;
internalIpv4Address?: {
subnetId?: string | undefined;
address?: string | undefined;
} | undefined;
externalIpv6Address?: {
address?: string | undefined;
} | undefined;
}[] | undefined;
ports?: number[] | undefined;
} & {
addresses?: ({
externalIpv4Address?: {
address?: string | undefined;
} | undefined;
internalIpv4Address?: {
subnetId?: string | undefined;
address?: string | undefined;
} | undefined;
externalIpv6Address?: {
address?: string | undefined;
} | undefined;
}[] & ({
externalIpv4Address?: {
address?: string | undefined;
} | undefined;
internalIpv4Address?: {
subnetId?: string | undefined;
address?: string | undefined;
} | undefined;
externalIpv6Address?: {
address?: string | undefined;
} | undefined;
} & {
externalIpv4Address?: ({
address?: string | undefined;
} & {
address?: string | undefined;
} & Record<Exclude<keyof I["listeners"][number]["endpoints"][number]["addresses"][number]["externalIpv4Address"], "$type" | "address">, never>) | undefined;
internalIpv4Address?: ({
subnetId?: string | undefined;
address?: string | undefined;
} & {
subnetId?: string | undefined;
address?: string | undefined;
} & Record<Exclude<keyof I["listeners"][number]["endpoints"][number]["addresses"][number]["internalIpv4Address"], "$type" | "subnetId" | "address">, never>) | undefined;
externalIpv6Address?: ({
address?: string | undefined;
} & {
address?: string | undefined;
} & Record<Exclude<keyof I["listeners"][number]["endpoints"][number]["addresses"][number]["externalIpv6Address"], "$type" | "address">, never>) | undefined;
} & Record<Exclude<keyof I["listeners"][number]["endpoints"][number]["addresses"][number], "$type" | "externalIpv4Address" | "internalIpv4Address" | "externalIpv6Address">, never>)[] & Record<Exclude<keyof I["listeners"][number]["endpoints"][number]["addresses"], "$type" | keyof {
externalIpv4Address?: {
address?: string | undefined;
} | undefined;
internalIpv4Address?: {
subnetId?: string | undefined;
address?: string | undefined;
} | undefined;
externalIpv6Address?: {
address?: string | undefined;
} | undefined;
}[]>, never>) | undefined;
ports?: (number[] & number[] & Record<Exclude<keyof I["listeners"][number]["endpoints"][number]["ports"], "$type" | keyof number[]>, never>) | undefined;
} & Record<Exclude<keyof I["listeners"][number]["endpoints"][number], "$type" | "addresses" | "ports">, never>)[] & Record<Exclude<keyof I["listeners"][number]["endpoints"], "$type" | keyof {
addresses?: {
externalIpv4Address?: {
address?: string | undefined;
} | undefined;
internalIpv4Address?: {
subnetId?: string | undefined;
address?: string | undefined;
} | undefined;
externalIpv6Address?: {
address?: string | undefined;
} | undefined;
}[] | undefined;
ports?: number[] | undefined;
}[]>, never>) | undefined;
} & Record<Exclude<keyof I["listeners"][number], "$type" | "name" | "http" | "stream" | "tls" | "endpoints">, never>)[] & Record<Exclude<keyof I["listeners"], "$type" | keyof {
name?: string | undefined;
http?: {
handler?: {
httpRouterId?: string | undefined;
http2Options?: {
maxConcurrentStreams?: number | undefined;
} | undefined;
allowHttp10?: boolean | undefined;
rewriteRequestId?: boolean | undefined;
} | undefined;
redirects?: {
httpToHttps?: boolean | undefined;
} | undefined;
} | undefined;
stream?: {
handler?: {
backendGroupId?: string | undefined;
} | undefined;
} | undefined;
tls?: {
defaultHandler?: {
httpHandler?: {
httpRouterId?: string | undefined;
http2Options?: {
maxConcurrentStreams?: number | undefined;
} | undefined;
allowHttp10?: boolean | undefined;
rewriteRequestId?: boolean | undefined;
} | undefined;
streamHandler?: {
backendGroupId?: string | undefined;
} | undefined;
certificateIds?: string[] | undefined;
} | undefined;
sniHandlers?: {
name?: string | undefined;
handler?: {
httpHandler?: {
httpRouterId?: string | undefined;
http2Options?: {
maxConcurrentStreams?: number | undefined;
} | undefined;
allowHttp10?: boolean | undefined;
rewriteRequestId?: boolean | undefined;
} | undefined;
streamHandler?: {
backendGroupId?: string | undefined;
} | undefined;
certificateIds?: string[] | undefined;
} | undefined;
serverNames?: string[] | undefined;
}[] | undefined;
} | undefined;
endpoints?: {
addresses?: {
externalIpv4Address?: {
address?: string | undefined;
} | undefined;
internalIpv4Address?: {
subnetId?: string | undefined;
address?: string | undefined;
} | undefined;
externalIpv6Address?: {
address?: string | undefined;
} | undefined;
}[] | undefined;
ports?: number[] | undefined;
}[] | undefined;
}[]>, never>) | undefined;
allocationPolicy?: ({
locations?: {
subnetId?: string | undefined;
zoneId?: string | undefined;
disableTraffic?: boolean | undefined;
}[] | undefined;
} & {
locations?: ({
subnetId?: string | undefined;
zoneId?: string | undefined;
disableTraffic?: boolean | undefined;
}[] & ({
subnetId?: string | undefined;
zoneId?: string | undefined;
disableTraffic?: boolean | undefined;
} & {
subnetId?: string | undefined;
zoneId?: string | undefined;
disableTraffic?: boolean | undefined;
} & Record<Exclude<keyof I["allocationPolicy"]["locations"][number], "$type" | "subnetId" | "zoneId" | "disableTraffic">, never>)[] & Record<Exclude<keyof I["allocationPolicy"]["locations"], "$type" | keyof {
subnetId?: string | undefined;
zoneId?: string | undefined;
disableTraffic?: boolean | undefined;
}[]>, never>) | undefined;
} & Record<Exclude<keyof I["allocationPolicy"], "$type" | "locations">, never>) | undefined;
autoScalePolicy?: ({
minZoneSize?: number | undefined;
maxSize?: number | undefined;
} & {
minZoneSize?: number | undefined;