import _m0 from 'protobufjs/minimal'; import { HealthCheck } from '../../../../yandex/cloud/loadbalancer/v1/health_check'; export declare const protobufPackage = "yandex.cloud.loadbalancer.v1"; /** * IP version of the addresses that the load balancer works with. * Only IPv4 is currently available. */ export declare enum IpVersion { IP_VERSION_UNSPECIFIED = 0, /** IPV4 - IPv4 */ IPV4 = 1, /** IPV6 - IPv6 */ IPV6 = 2, UNRECOGNIZED = -1 } export declare function ipVersionFromJSON(object: any): IpVersion; export declare function ipVersionToJSON(object: IpVersion): string; /** A NetworkLoadBalancer resource. For more information, see [Network Load Balancer](/docs/network-load-balancer/concepts). */ export interface NetworkLoadBalancer { /** ID of the network load balancer. */ id: string; /** ID of the folder that the network load balancer belongs to. */ folderId: string; /** Creation timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format. */ createdAt?: Date; /** Name of the network load balancer. The name is unique within the folder. 3-63 characters long. */ name: string; /** Optional description of the network load balancer. 0-256 characters long. */ description: string; /** Resource labels as `` key:value `` pairs. Maximum of 64 per resource. */ labels: { [key: string]: string; }; /** ID of the region that the network load balancer belongs to. */ regionId: string; /** Status of the network load balancer. */ status: NetworkLoadBalancer_Status; /** Type of the network load balancer. Only external network load balancers are available now. */ type: NetworkLoadBalancer_Type; /** Type of the session affinity. Only 5-tuple affinity is available now. */ sessionAffinity: NetworkLoadBalancer_SessionAffinity; /** List of listeners for the network load balancer. */ listeners: Listener[]; /** List of target groups attached to the network load balancer. */ attachedTargetGroups: AttachedTargetGroup[]; /** Specifies if network load balancer protected from deletion. */ deletionProtection: boolean; /** Specifies if network load balancer available to zonal shift. */ allowZonalShift: boolean; } export declare enum NetworkLoadBalancer_Status { STATUS_UNSPECIFIED = 0, /** CREATING - Network load balancer is being created. */ CREATING = 1, /** STARTING - Network load balancer is being started. */ STARTING = 2, /** ACTIVE - Network load balancer is active and sends traffic to the targets. */ ACTIVE = 3, /** STOPPING - Network load balancer is being stopped. */ STOPPING = 4, /** STOPPED - Network load balancer is stopped and doesn't send traffic to the targets. */ STOPPED = 5, /** DELETING - Network load balancer is being deleted. */ DELETING = 6, /** * INACTIVE - The load balancer doesn't have any listeners or target groups, or * attached target groups are empty. The load balancer doesn't perform any health checks or * send traffic in this state. */ INACTIVE = 7, UNRECOGNIZED = -1 } export declare function networkLoadBalancer_StatusFromJSON(object: any): NetworkLoadBalancer_Status; export declare function networkLoadBalancer_StatusToJSON(object: NetworkLoadBalancer_Status): string; export declare enum NetworkLoadBalancer_Type { TYPE_UNSPECIFIED = 0, /** EXTERNAL - External network load balancer. */ EXTERNAL = 1, /** INTERNAL - Internal network load balancer. */ INTERNAL = 2, UNRECOGNIZED = -1 } export declare function networkLoadBalancer_TypeFromJSON(object: any): NetworkLoadBalancer_Type; export declare function networkLoadBalancer_TypeToJSON(object: NetworkLoadBalancer_Type): string; /** * Type of session affinity. Only 5-tuple affinity is currently available. * For more information, see [Load Balancer concepts](/docs/network-load-balancer/concepts/). */ export declare enum NetworkLoadBalancer_SessionAffinity { SESSION_AFFINITY_UNSPECIFIED = 0, /** CLIENT_IP_PORT_PROTO - 5-tuple affinity. */ CLIENT_IP_PORT_PROTO = 1, UNRECOGNIZED = -1 } export declare function networkLoadBalancer_SessionAffinityFromJSON(object: any): NetworkLoadBalancer_SessionAffinity; export declare function networkLoadBalancer_SessionAffinityToJSON(object: NetworkLoadBalancer_SessionAffinity): string; export interface NetworkLoadBalancer_LabelsEntry { key: string; value: string; } /** An AttachedTargetGroup resource. For more information, see [Targets and groups](/docs/network-load-balancer/concepts/target-resources). */ export interface AttachedTargetGroup { /** ID of the target group. */ targetGroupId: string; /** * A health check to perform on the target group. * For now we accept only one health check per AttachedTargetGroup. */ healthChecks: HealthCheck[]; } /** A Listener resource. For more information, see [Listener](/docs/network-load-balancer/concepts/listener) */ export interface Listener { /** Name of the listener. The name must be unique for each listener on a single load balancer. 3-63 characters long. */ name: string; /** IP address for the listener. */ address: string; /** Port. */ port: number; /** Network protocol for incoming traffic. */ protocol: Listener_Protocol; /** Port of a target. */ targetPort: number; /** ID of the subnet. */ subnetId: string; /** IP version of the external address. */ ipVersion: IpVersion; } /** Network protocol to use. */ export declare enum Listener_Protocol { PROTOCOL_UNSPECIFIED = 0, TCP = 1, UDP = 2, UNRECOGNIZED = -1 } export declare function listener_ProtocolFromJSON(object: any): Listener_Protocol; export declare function listener_ProtocolToJSON(object: Listener_Protocol): string; /** State of the target that was returned after the last health check. */ export interface TargetState { /** ID of the subnet that the target is connected to. */ subnetId: string; /** IP address of the target. */ address: string; /** Status of the target. */ status: TargetState_Status; } /** Status of the target. */ export declare enum TargetState_Status { STATUS_UNSPECIFIED = 0, /** INITIAL - The network load balancer is setting up health checks for this target. */ INITIAL = 1, /** HEALTHY - Health check passed and the target is ready to receive traffic. */ HEALTHY = 2, /** UNHEALTHY - Health check failed and the target is not receiving traffic. */ UNHEALTHY = 3, /** DRAINING - Target is being deleted and the network load balancer is no longer sending traffic to this target. */ DRAINING = 4, /** INACTIVE - The network load balancer is stopped and not performing health checks on this target. */ INACTIVE = 5, UNRECOGNIZED = -1 } export declare function targetState_StatusFromJSON(object: any): TargetState_Status; export declare function targetState_StatusToJSON(object: TargetState_Status): string; export declare const NetworkLoadBalancer: { encode(message: NetworkLoadBalancer, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): NetworkLoadBalancer; fromJSON(object: any): NetworkLoadBalancer; toJSON(message: NetworkLoadBalancer): unknown; fromPartial, never>) | undefined; regionId?: string | undefined; status?: NetworkLoadBalancer_Status | undefined; type?: NetworkLoadBalancer_Type | undefined; sessionAffinity?: NetworkLoadBalancer_SessionAffinity | undefined; listeners?: ({ name?: string | undefined; address?: string | undefined; port?: number | undefined; protocol?: Listener_Protocol | undefined; targetPort?: number | undefined; subnetId?: string | undefined; ipVersion?: IpVersion | undefined; }[] & ({ name?: string | undefined; address?: string | undefined; port?: number | undefined; protocol?: Listener_Protocol | undefined; targetPort?: number | undefined; subnetId?: string | undefined; ipVersion?: IpVersion | undefined; } & { name?: string | undefined; address?: string | undefined; port?: number | undefined; protocol?: Listener_Protocol | undefined; targetPort?: number | undefined; subnetId?: string | undefined; ipVersion?: IpVersion | undefined; } & Record, never>)[] & Record, never>) | undefined; attachedTargetGroups?: ({ targetGroupId?: string | undefined; healthChecks?: { name?: string | undefined; interval?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; timeout?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; unhealthyThreshold?: number | undefined; healthyThreshold?: number | undefined; tcpOptions?: { port?: number | undefined; } | undefined; httpOptions?: { port?: number | undefined; path?: string | undefined; } | undefined; }[] | undefined; }[] & ({ targetGroupId?: string | undefined; healthChecks?: { name?: string | undefined; interval?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; timeout?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; unhealthyThreshold?: number | undefined; healthyThreshold?: number | undefined; tcpOptions?: { port?: number | undefined; } | undefined; httpOptions?: { port?: number | undefined; path?: string | undefined; } | undefined; }[] | undefined; } & { targetGroupId?: string | undefined; healthChecks?: ({ name?: string | undefined; interval?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; timeout?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; unhealthyThreshold?: number | undefined; healthyThreshold?: number | undefined; tcpOptions?: { port?: number | undefined; } | undefined; httpOptions?: { port?: number | undefined; path?: string | undefined; } | undefined; }[] & ({ name?: string | undefined; interval?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; timeout?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; unhealthyThreshold?: number | undefined; healthyThreshold?: number | undefined; tcpOptions?: { port?: number | undefined; } | undefined; httpOptions?: { port?: number | undefined; path?: string | undefined; } | undefined; } & { name?: string | undefined; interval?: ({ seconds?: number | undefined; nanos?: number | undefined; } & { seconds?: number | undefined; nanos?: number | undefined; } & Record, never>) | undefined; timeout?: ({ seconds?: number | undefined; nanos?: number | undefined; } & { seconds?: number | undefined; nanos?: number | undefined; } & Record, never>) | undefined; unhealthyThreshold?: number | undefined; healthyThreshold?: number | undefined; tcpOptions?: ({ port?: number | undefined; } & { port?: number | undefined; } & Record, never>) | undefined; httpOptions?: ({ port?: number | undefined; path?: string | undefined; } & { port?: number | undefined; path?: string | undefined; } & Record, never>) | undefined; } & Record, never>)[] & Record, never>) | undefined; } & Record, never>)[] & Record, never>) | undefined; deletionProtection?: boolean | undefined; allowZonalShift?: boolean | undefined; } & Record, never>>(object: I): NetworkLoadBalancer; }; export declare const NetworkLoadBalancer_LabelsEntry: { encode(message: NetworkLoadBalancer_LabelsEntry, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): NetworkLoadBalancer_LabelsEntry; fromJSON(object: any): NetworkLoadBalancer_LabelsEntry; toJSON(message: NetworkLoadBalancer_LabelsEntry): unknown; fromPartial, never>>(object: I): NetworkLoadBalancer_LabelsEntry; }; export declare const AttachedTargetGroup: { encode(message: AttachedTargetGroup, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): AttachedTargetGroup; fromJSON(object: any): AttachedTargetGroup; toJSON(message: AttachedTargetGroup): unknown; fromPartial, never>) | undefined; timeout?: ({ seconds?: number | undefined; nanos?: number | undefined; } & { seconds?: number | undefined; nanos?: number | undefined; } & Record, never>) | undefined; unhealthyThreshold?: number | undefined; healthyThreshold?: number | undefined; tcpOptions?: ({ port?: number | undefined; } & { port?: number | undefined; } & Record, never>) | undefined; httpOptions?: ({ port?: number | undefined; path?: string | undefined; } & { port?: number | undefined; path?: string | undefined; } & Record, never>) | undefined; } & Record, never>)[] & Record, never>) | undefined; } & Record, never>>(object: I): AttachedTargetGroup; }; export declare const Listener: { encode(message: Listener, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): Listener; fromJSON(object: any): Listener; toJSON(message: Listener): unknown; fromPartial, never>>(object: I): Listener; }; export declare const TargetState: { encode(message: TargetState, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): TargetState; fromJSON(object: any): TargetState; toJSON(message: TargetState): unknown; fromPartial, never>>(object: I): TargetState; }; type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined; export type DeepPartial = T extends Builtin ? T : T extends Array ? Array> : T extends ReadonlyArray ? ReadonlyArray> : T extends {} ? { [K in keyof T]?: DeepPartial; } : Partial; type KeysOfUnion = T extends T ? keyof T : never; export type Exact = P extends Builtin ? P : P & { [K in keyof P]: Exact; } & Record>, never>; export {};