UNPKG

@yandex-cloud/nodejs-sdk

Version:
1,083 lines (1,082 loc) 287 kB
/// <reference types="node" /> import { ChannelCredentials, ChannelOptions, UntypedServiceImplementation, handleUnaryCall, Client, ClientUnaryCall, Metadata, CallOptions, ServiceError } from "@grpc/grpc-js"; import _m0 from "protobufjs/minimal"; import { FieldMask } from "../../../../google/protobuf/field_mask"; import { AllocationPolicy, AutoScalePolicy, TlsHandler, LoadBalancer, HttpListener, TlsListener, StreamListener, TargetState } from "../../../../yandex/cloud/apploadbalancer/v1/load_balancer"; import { LogOptions } from "../../../../yandex/cloud/apploadbalancer/v1/logging"; import { Operation } from "../../../../yandex/cloud/operation/operation"; export declare const protobufPackage = "yandex.cloud.apploadbalancer.v1"; export interface GetLoadBalancerRequest { $type: "yandex.cloud.apploadbalancer.v1.GetLoadBalancerRequest"; /** * ID of the application load balancer to return. * * To get the application load balancer ID, make a [LoadBalancerService.List] request. */ loadBalancerId: string; } export interface ListLoadBalancersRequest { $type: "yandex.cloud.apploadbalancer.v1.ListLoadBalancersRequest"; /** * ID of the folder to list application load balancers in. * * To get the folder ID, make a [yandex.cloud.resourcemanager.v1.FolderService.List] request. */ folderId: string; /** * The maximum number of results per page to return. If the number of available * results is larger than `page_size`, the service returns a [ListLoadBalancersResponse.next_page_token] * that can be used to get the next page of results in subsequent list requests. * Default value: 100. */ pageSize: number; /** * Page token. To get the next page of results, set `page_token` to the * [ListLoadBalancersResponse.next_page_token] returned by a previous list request. */ pageToken: string; /** * A filter expression that filters application load balancers listed in the response. * * The expression must specify: * 1. The field name. Currently you can use filtering only on [LoadBalancer.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-load-balancer`. */ filter: string; } export interface ListLoadBalancersResponse { $type: "yandex.cloud.apploadbalancer.v1.ListLoadBalancersResponse"; /** List of application load balancers in the specified folder. */ loadBalancers: LoadBalancer[]; /** * Token for getting the next page of the list. If the number of results is greater than * the specified [ListLoadBalancersRequest.page_size], use `next_page_token` as the value * for the [ListLoadBalancersRequest.page_token] parameter in the next list request. * * Each subsequent page will have its own `next_page_token` to continue paging through the results. */ nextPageToken: string; } export interface DeleteLoadBalancerRequest { $type: "yandex.cloud.apploadbalancer.v1.DeleteLoadBalancerRequest"; /** * ID of the application load balancer to delete. * * To get the application load balancer ID, make a [LoadBalancerService.List] request. */ loadBalancerId: string; } export interface DeleteLoadBalancerMetadata { $type: "yandex.cloud.apploadbalancer.v1.DeleteLoadBalancerMetadata"; /** ID of the application load balancer that is being deleted. */ loadBalancerId: string; } export interface UpdateLoadBalancerRequest { $type: "yandex.cloud.apploadbalancer.v1.UpdateLoadBalancerRequest"; /** * ID of the application load balancer to update. * * To get the application load balancer ID, make a [LoadBalancerService.List] request. */ loadBalancerId: string; /** Field mask that specifies which attributes of the application load balancer should be updated. */ updateMask?: FieldMask; /** * New name for the application load balancer. * The name must be unique within the folder. */ name: string; /** New description of the application load balancer. */ description: string; /** * New application load balancer labels as `key:value` pairs. * For details about the concept, see [documentation](/docs/overview/concepts/services#labels). * * 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 [LoadBalancerService.Get] request. * 2. Add or remove a label in this set. * 3. Send the new set in this field. */ labels: { [key: string]: string; }; /** * New listeners for the application load balancer. * * For details about the concept, * see [documentation](/docs/application-load-balancer/concepts/application-load-balancer#listener). * * Existing list of listeners is completely replaced by the specified list, so if you just want to add, update, * or remove a listener, make a [LoadBalancerService.AddListener] request, * a [LoadBalancerService.UpdateListener] request, or a [LoadBalancerService.RemoveListener] request. */ listenerSpecs: ListenerSpec[]; /** * New locality settings of the application load balancer. * * For details about the concept, * see [documentation](/docs/application-load-balancer/concepts/application-load-balancer#lb-location). * * Existing locality settings are completely replaced by the specified settings, * so if you just want to add or remove an allocation policy: * 1. Get the current settings with a [LoadBalancerService.Get] request. * 2. Add or remove a policy in this set. * 3. Send the new set in this field. */ allocationPolicy?: AllocationPolicy; /** * ID's of new 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). * * Existing list of security groups is completely replaced by the specified list, * so if you just want to add or remove an allocation policy: * 1. Get the current set of security groups with a [LoadBalancerService.Get] request. * 2. Add or remove a group in this set. * 3. Send the new set in this field. */ securityGroupIds: string[]; /** * New 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 interface UpdateLoadBalancerRequest_LabelsEntry { $type: "yandex.cloud.apploadbalancer.v1.UpdateLoadBalancerRequest.LabelsEntry"; key: string; value: string; } export interface UpdateLoadBalancerMetadata { $type: "yandex.cloud.apploadbalancer.v1.UpdateLoadBalancerMetadata"; /** ID of the application load balancer that is being updated. */ loadBalancerId: string; } export interface CreateLoadBalancerRequest { $type: "yandex.cloud.apploadbalancer.v1.CreateLoadBalancerRequest"; /** * ID of the folder to create an application load balancer in. * * To get the folder ID, make a [yandex.cloud.resourcemanager.v1.FolderService.List] request. */ folderId: string; /** * Name of the application load balancer. * The name must be unique within the folder. */ name: string; /** Description of the application load balancer. */ description: 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; }; /** * ID of the region that the application load balancer is located at. * * The only supported value is `ru-central1`. */ 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). */ listenerSpecs: ListenerSpec[]; /** * 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'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[]; /** * 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 interface CreateLoadBalancerRequest_LabelsEntry { $type: "yandex.cloud.apploadbalancer.v1.CreateLoadBalancerRequest.LabelsEntry"; key: string; value: string; } export interface CreateLoadBalancerMetadata { $type: "yandex.cloud.apploadbalancer.v1.CreateLoadBalancerMetadata"; /** ID of the application load balancer that is being created. */ loadBalancerId: string; } export interface StartLoadBalancerRequest { $type: "yandex.cloud.apploadbalancer.v1.StartLoadBalancerRequest"; /** * ID of the application load balancer to start. * * The application load balancer must have a `STOPPED` status ([LoadBalancer.status]). * * To get the application load balancer ID, make a [LoadBalancerService.List] request. */ loadBalancerId: string; } export interface StartLoadBalancerMetadata { $type: "yandex.cloud.apploadbalancer.v1.StartLoadBalancerMetadata"; /** ID of the application load balancer that is being started. */ loadBalancerId: string; } export interface StopLoadBalancerRequest { $type: "yandex.cloud.apploadbalancer.v1.StopLoadBalancerRequest"; /** * ID of the application load balancer to stop. * * The application load balancer must have an `ACTIVE` status ([LoadBalancer.status]). * * To get the application load balancer ID, make a [LoadBalancerService.List] request. */ loadBalancerId: string; } export interface StopLoadBalancerMetadata { $type: "yandex.cloud.apploadbalancer.v1.StopLoadBalancerMetadata"; /** ID of the application load balancer that is being stopped. */ loadBalancerId: string; } export interface AddListenerRequest { $type: "yandex.cloud.apploadbalancer.v1.AddListenerRequest"; /** ID of the application load balancer to add a listener to. */ loadBalancerId: string; /** Listener to add to the application load balancer. */ listenerSpec?: ListenerSpec; } export interface AddListenerMetadata { $type: "yandex.cloud.apploadbalancer.v1.AddListenerMetadata"; /** ID of the application load balancer that the listener is being added to. */ loadBalancerId: string; /** Name of the listener that is being added to the application load balancer. */ listenerName: string; } export interface RemoveListenerRequest { $type: "yandex.cloud.apploadbalancer.v1.RemoveListenerRequest"; /** ID of the application load balancer to remove the listener from. */ loadBalancerId: string; /** Name of the listener to remove from the application load balancer. */ name: string; } export interface RemoveListenerMetadata { $type: "yandex.cloud.apploadbalancer.v1.RemoveListenerMetadata"; /** ID of the application load balancer that the listener is being removed from. */ loadBalancerId: string; /** Name of the listener that is being removed from the application load balancer. */ listenerName: string; } export interface UpdateListenerRequest { $type: "yandex.cloud.apploadbalancer.v1.UpdateListenerRequest"; /** ID of the application load balancer to update the listener in. */ loadBalancerId: string; /** Field mask that specifies which attributes of the listener should be updated. */ updateMask?: FieldMask; /** New attributes of the listener. */ listenerSpec?: ListenerSpec; } export interface UpdateListenerMetadata { $type: "yandex.cloud.apploadbalancer.v1.UpdateListenerMetadata"; /** ID of the application load balancer that the listener is being updated in. */ loadBalancerId: string; /** Name of the listener that is being updated. */ listenerName: string; } export interface AddressSpec { $type: "yandex.cloud.apploadbalancer.v1.AddressSpec"; /** Public IPv4 endpoint address. */ externalIpv4AddressSpec?: ExternalIpv4AddressSpec | undefined; /** * Internal IPv4 endpoint address. * * To enable the use of listeners with internal addresses, [contact support](https://console.cloud.yandex.ru/support). */ internalIpv4AddressSpec?: InternalIpv4AddressSpec | undefined; /** Public IPv6 endpoint address. */ externalIpv6AddressSpec?: ExternalIpv6AddressSpec | undefined; } export interface ExternalIpv4AddressSpec { $type: "yandex.cloud.apploadbalancer.v1.ExternalIpv4AddressSpec"; /** IPv4 address. */ address: string; } export interface InternalIpv4AddressSpec { $type: "yandex.cloud.apploadbalancer.v1.InternalIpv4AddressSpec"; /** IPv4 address. */ address: string; /** ID of the subnet that the address belongs to. */ subnetId: string; } export interface ExternalIpv6AddressSpec { $type: "yandex.cloud.apploadbalancer.v1.ExternalIpv6AddressSpec"; /** IPv6 address. */ address: string; } export interface EndpointSpec { $type: "yandex.cloud.apploadbalancer.v1.EndpointSpec"; /** Endpoint public (external) and internal addresses. */ addressSpecs: AddressSpec[]; /** Endpoint ports. */ ports: number[]; } export interface ListenerSpec { $type: "yandex.cloud.apploadbalancer.v1.ListenerSpec"; /** Name of the listener. The name is unique within the application load balancer. */ name: string; /** * Endpoints of the listener. * * Endpoints are defined by their IP addresses and ports. */ endpointSpecs: EndpointSpec[]; /** 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; } export interface GetTargetStatesRequest { $type: "yandex.cloud.apploadbalancer.v1.GetTargetStatesRequest"; /** ID of the application load balancer that the backend group is attributed to. */ loadBalancerId: string; /** ID of the backend group that the target group is attributed to. */ backendGroupId: string; /** ID of the target group to get target states of. */ targetGroupId: string; } export interface GetTargetStatesResponse { $type: "yandex.cloud.apploadbalancer.v1.GetTargetStatesResponse"; /** Target states of the specified target group. */ targetStates: TargetState[]; } export interface AddSniMatchRequest { $type: "yandex.cloud.apploadbalancer.v1.AddSniMatchRequest"; /** ID of the application load balancer to add a SNI handler to. */ loadBalancerId: string; /** Name of the listener to add a SNI handler to. */ listenerName: string; /** Name of the SNI handler to add. */ 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; } export interface AddSniMatchMetadata { $type: "yandex.cloud.apploadbalancer.v1.AddSniMatchMetadata"; /** ID of the application load balancer that the SNI handler is being added to. */ loadBalancerId: string; /** Name of the listener that the SNI handler is being added to. */ listenerName: string; /** Name of the SNI handler that is being added to the listener. */ sniMatchName: string; } export interface RemoveSniMatchRequest { $type: "yandex.cloud.apploadbalancer.v1.RemoveSniMatchRequest"; /** ID of the application load balancer to remove the SNI handler from. */ loadBalancerId: string; /** Name of the listener te remove the SNI handler from. */ listenerName: string; /** Name of the SNI handler to remove. */ sniMatchName: string; } export interface RemoveSniMatchMetadata { $type: "yandex.cloud.apploadbalancer.v1.RemoveSniMatchMetadata"; /** ID of the application load balancer that the SNI handler is being removed from. */ loadBalancerId: string; /** Name of the listener that the SNI handler is being removed from. */ listenerName: string; /** Name of the SNI handler that is being removed. */ sniMatchName: string; } export interface UpdateSniMatchRequest { $type: "yandex.cloud.apploadbalancer.v1.UpdateSniMatchRequest"; /** ID of the application load balancer to update the SNI handler in. */ loadBalancerId: string; /** Name of the listener to update the SNI handler in. */ listenerName: string; /** Name of the SNI handler to update. */ name: string; /** Field mask that specifies which attributes of the SNI handler should be updated. */ updateMask?: FieldMask; /** * New server names that are matched by the SNI handler. * * Existing set of server names is completely replaced by the provided set, so if you just want * to add or remove a server name: * 1. Get the current set of server names with a [LoadBalancerService.Get] request. * 2. Add or remove a server name in this set. * 3. Send the new set in this field. */ serverNames: string[]; /** New settings for handling requests with Server Name Indication (SNI) matching one of [server_names] values. */ handler?: TlsHandler; } export interface UpdateSniMatchMetadata { $type: "yandex.cloud.apploadbalancer.v1.UpdateSniMatchMetadata"; /** ID of the application load balancer that the SNI handler is being updated in. */ loadBalancerId: string; /** Name of the listener that the SNI handler is being updated in. */ listenerName: string; /** Name of the SNI handler that is being updated. */ sniMatchName: string; } export interface ListLoadBalancerOperationsRequest { $type: "yandex.cloud.apploadbalancer.v1.ListLoadBalancerOperationsRequest"; /** * ID of the application load balancer to get operations for. * * To get the application load balancer ID, use a [LoadBalancerService.List] request. */ loadBalancerId: string; /** * 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 [ListLoadBalancerOperationsResponse.next_page_token] * that can be used to get the next page of results in subsequent list requests. * Default value: 100. */ pageSize: number; /** * Page token. To get the next page of results, set [page_token] to the * [ListLoadBalancerOperationsResponse.next_page_token] returned by a previous list request. */ pageToken: string; } export interface ListLoadBalancerOperationsResponse { $type: "yandex.cloud.apploadbalancer.v1.ListLoadBalancerOperationsResponse"; /** List of operations for the specified application load balancer. */ operations: Operation[]; /** * Token for getting the next page of the list. If the number of results is greater than * the specified [ListLoadBalancerOperationsRequest.page_size], use `next_page_token` as the value * for the [ListLoadBalancerOperationsRequest.page_token] parameter in the next list request. * * Each subsequent page will have its own `next_page_token` to continue paging through the results. */ nextPageToken: string; } export declare const GetLoadBalancerRequest: { $type: "yandex.cloud.apploadbalancer.v1.GetLoadBalancerRequest"; encode(message: GetLoadBalancerRequest, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number | undefined): GetLoadBalancerRequest; fromJSON(object: any): GetLoadBalancerRequest; toJSON(message: GetLoadBalancerRequest): unknown; fromPartial<I extends { loadBalancerId?: string | undefined; } & { loadBalancerId?: string | undefined; } & Record<Exclude<keyof I, "$type" | "loadBalancerId">, never>>(object: I): GetLoadBalancerRequest; }; export declare const ListLoadBalancersRequest: { $type: "yandex.cloud.apploadbalancer.v1.ListLoadBalancersRequest"; encode(message: ListLoadBalancersRequest, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number | undefined): ListLoadBalancersRequest; fromJSON(object: any): ListLoadBalancersRequest; toJSON(message: ListLoadBalancersRequest): unknown; fromPartial<I extends { pageSize?: number | undefined; pageToken?: string | undefined; filter?: string | undefined; folderId?: string | undefined; } & { pageSize?: number | undefined; pageToken?: string | undefined; filter?: string | undefined; folderId?: string | undefined; } & Record<Exclude<keyof I, "$type" | "pageSize" | "pageToken" | "filter" | "folderId">, never>>(object: I): ListLoadBalancersRequest; }; export declare const ListLoadBalancersResponse: { $type: "yandex.cloud.apploadbalancer.v1.ListLoadBalancersResponse"; encode(message: ListLoadBalancersResponse, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number | undefined): ListLoadBalancersResponse; fromJSON(object: any): ListLoadBalancersResponse; toJSON(message: ListLoadBalancersResponse): unknown; fromPartial<I extends { nextPageToken?: string | undefined; loadBalancers?: { description?: string | undefined; id?: string | undefined; name?: string | undefined; createdAt?: Date | undefined; status?: import("../../../../yandex/cloud/apploadbalancer/v1/load_balancer").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; }[] | undefined; } & { nextPageToken?: string | undefined; loadBalancers?: ({ description?: string | undefined; id?: string | undefined; name?: string | undefined; createdAt?: Date | undefined; status?: import("../../../../yandex/cloud/apploadbalancer/v1/load_balancer").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?: import("../../../../yandex/cloud/apploadbalancer/v1/load_balancer").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?: import("../../../../yandex/cloud/apploadbalancer/v1/load_balancer").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["loadBalancers"][number]["labels"], string | number>, never>) | undefined; logGroupId?: string | undefined; regionId?: string | undefined; networkId?: string | undefined; securityGroupIds?: (string[] & string[] & Record<Exclude<keyof I["loadBalancers"][number]["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["loadBalancers"][number]["listeners"][number]["http"]["handler"]["http2Options"], "$type" | "maxConcurrentStreams">, never>) | undefined; allowHttp10?: boolean | undefined; rewriteRequestId?: boolean | undefined; } & Record<Exclude<keyof I["loadBalancers"][number]["listeners"][number]["http"]["handler"], "$type" | "httpRouterId" | "http2Options" | "allowHttp10" | "rewriteRequestId">, never>) | undefined; redirects?: ({ httpToHttps?: boolean | undefined; } & { httpToHttps?: boolean | undefined; } & Record<Exclude<keyof I["loadBalancers"][number]["listeners"][number]["http"]["redirects"], "$type" | "httpToHttps">, never>) | undefined; } & Record<Exclude<keyof I["loadBalancers"][number]["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["loadBalancers"][number]["listeners"][number]["stream"]["handler"], "$type" | "backendGroupId">, never>) | undefined; } & Record<Exclude<keyof I["loadBalancers"][number]["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?: {