UNPKG

@yandex-cloud/nodejs-sdk

Version:
1,038 lines (1,037 loc) 406 kB
/// <reference types="node" /> import { ChannelCredentials, ChannelOptions, UntypedServiceImplementation, handleUnaryCall, Client, ClientUnaryCall, Metadata, CallOptions, ServiceError } from "@grpc/grpc-js"; import _m0 from "protobufjs/minimal"; import { InstanceTemplate, ScalePolicy, DeployPolicy, AllocationPolicy, LoadBalancerSpec, HealthChecksSpec, ApplicationLoadBalancerSpec, Variable, InstanceGroup, ManagedInstance, LogRecord } from "../../../../../yandex/cloud/compute/v1/instancegroup/instance_group"; import { FieldMask } from "../../../../../google/protobuf/field_mask"; import { Operation } from "../../../../../yandex/cloud/operation/operation"; import { ListAccessBindingsRequest, ListAccessBindingsResponse, SetAccessBindingsRequest, UpdateAccessBindingsRequest } from "../../../../../yandex/cloud/access/access"; export declare const protobufPackage = "yandex.cloud.compute.v1.instancegroup"; export declare enum InstanceGroupView { /** BASIC - Doesn't include the metadata of the instance template in the server response. */ BASIC = 0, /** FULL - Returns the metadata of the instance template in the server response. */ FULL = 1, UNRECOGNIZED = -1 } export declare function instanceGroupViewFromJSON(object: any): InstanceGroupView; export declare function instanceGroupViewToJSON(object: InstanceGroupView): string; export interface ResumeInstanceGroupProcessesRequest { $type: "yandex.cloud.compute.v1.instancegroup.ResumeInstanceGroupProcessesRequest"; /** * ID of the instance group to resume processes in. * * The instance group must have a `PAUSED` status ([InstanceGroup.status]). * * To get the instance group ID, make a [InstanceGroupService.List] request. */ instanceGroupId: string; } export interface ResumeInstanceGroupProcessMetadata { $type: "yandex.cloud.compute.v1.instancegroup.ResumeInstanceGroupProcessMetadata"; /** ID of the instance group that processes are being resumed in. */ instanceGroupId: string; } export interface PauseInstanceGroupProcessesRequest { $type: "yandex.cloud.compute.v1.instancegroup.PauseInstanceGroupProcessesRequest"; /** * ID of the instance group to pause processes in. * * The instance group must have an `ACTIVE` status ([InstanceGroup.status]). * * To get the instance group ID, make a [InstanceGroupService.List] request. */ instanceGroupId: string; } export interface PauseInstanceGroupProcessMetadata { $type: "yandex.cloud.compute.v1.instancegroup.PauseInstanceGroupProcessMetadata"; /** ID of the instance group that processes are being paused in. */ instanceGroupId: string; } export interface GetInstanceGroupRequest { $type: "yandex.cloud.compute.v1.instancegroup.GetInstanceGroupRequest"; /** * ID of the InstanceGroup resource to return. * To get the instance group ID, use a [InstanceGroupService.List] request. */ instanceGroupId: string; /** Defines which information about the Instance template should be returned in the server response. */ view: InstanceGroupView; } export interface CreateInstanceGroupRequest { $type: "yandex.cloud.compute.v1.instancegroup.CreateInstanceGroupRequest"; /** * ID of the folder to create an instance group in. * To get the folder ID, use a [yandex.cloud.resourcemanager.v1.FolderService.List] request. */ folderId: string; /** Name of the instance group. */ name: string; /** Description of the instance group. */ description: string; /** Resource labels as `key:value` pairs. */ labels: { [key: string]: string; }; /** Instance template that the instance group belongs to. */ instanceTemplate?: InstanceTemplate; /** [Scaling policy](/docs/compute/concepts/instance-groups/scale) of the instance group. */ scalePolicy?: ScalePolicy; /** Deployment policy of the instance group. */ deployPolicy?: DeployPolicy; /** Allocation policy of the instance group by zones and regions. */ allocationPolicy?: AllocationPolicy; /** * Settings for balancing load between instances via [Network Load Balancer](/docs/network-load-balancer/concepts) * (OSI model layer 3). * * If specified, a Network Load Balancer target group containing all instances from the instance group will be created * and attributed to the instance group. */ loadBalancerSpec?: LoadBalancerSpec; /** Health checking specification. For more information, see [Health check](/docs/network-load-balancer/concepts/health-check). */ healthChecksSpec?: HealthChecksSpec; /** * ID of the service account. The service account will be used for all API calls * made by the Instance Groups component on behalf of the user (for example, creating instances, adding them to load balancer target group, etc.). For more information, see [Service accounts](/docs/iam/concepts/users/service-accounts). * To get the service account ID, use a [yandex.cloud.iam.v1.ServiceAccountService.List] request. */ serviceAccountId: string; variables: Variable[]; /** * Flag prohibiting deletion of the instance group. * * Allowed values:</br>- `false`: The instance group can be deleted.</br>- `true`: The instance group cannot be deleted. * * The default is `false`. */ deletionProtection: boolean; /** * Settings for balancing load between instances via [Application Load Balancer](/docs/application-load-balancer/concepts) * (OSI model layer 7). * * If specified, an Application Load Balancer target group containing all instances from the instance group will be created * and attributed to the instance group. */ applicationLoadBalancerSpec?: ApplicationLoadBalancerSpec; } export interface CreateInstanceGroupRequest_LabelsEntry { $type: "yandex.cloud.compute.v1.instancegroup.CreateInstanceGroupRequest.LabelsEntry"; key: string; value: string; } export interface CreateInstanceGroupFromYamlRequest { $type: "yandex.cloud.compute.v1.instancegroup.CreateInstanceGroupFromYamlRequest"; /** * ID of the folder to create an instance group in. * To get the folder ID, use a [yandex.cloud.resourcemanager.v1.FolderService.List] request. */ folderId: string; /** [InstanceGroupService.Create] request in YAML format. */ instanceGroupYaml: string; } export interface CreateInstanceGroupMetadata { $type: "yandex.cloud.compute.v1.instancegroup.CreateInstanceGroupMetadata"; /** ID of the instance group that is being created. */ instanceGroupId: string; } export interface UpdateInstanceGroupRequest { $type: "yandex.cloud.compute.v1.instancegroup.UpdateInstanceGroupRequest"; /** * ID of the instance group to update. * To get the instance group ID, use a [InstanceGroupService.List] request. */ instanceGroupId: string; /** Field mask that specifies which fields of the InstanceGroup resource are going to be updated. */ updateMask?: FieldMask; /** Name of the instance group. */ name: string; /** Description of the instance group. */ description: string; /** * Resource labels as `key:value` pairs. * * The existing set of `labels` is completely replaced by the provided set. */ labels: { [key: string]: string; }; /** Instance template that the instance group belongs to. */ instanceTemplate?: InstanceTemplate; /** [Scaling policy](/docs/compute/concepts/instance-groups/scale) of the instance group. */ scalePolicy?: ScalePolicy; /** Deployment policy of the instance group. */ deployPolicy?: DeployPolicy; /** Allocation policy of the instance group by zones and regions. */ allocationPolicy?: AllocationPolicy; /** Health checking specification. For more information, see [Health check](/docs/network-load-balancer/concepts/health-check). */ healthChecksSpec?: HealthChecksSpec; /** * ID of the service account. The service account will be used for all API calls * made by the Instance Groups component on behalf of the user (for example, creating instances, adding them to load balancer target group, etc.). For more information, see [Service accounts](/docs/iam/concepts/users/service-accounts). * To get the service account ID, use a [yandex.cloud.iam.v1.ServiceAccountService.List] request. */ serviceAccountId: string; /** * Settings for balancing load between instances via [Network Load Balancer](/docs/network-load-balancer/concepts) * (OSI model layer 3). */ loadBalancerSpec?: LoadBalancerSpec; variables: Variable[]; /** Flag that inhibits deletion of the instance group */ deletionProtection: boolean; /** * Settings for balancing load between instances via [Application Load Balancer](/docs/application-load-balancer/concepts) * (OSI model layer 7). */ applicationLoadBalancerSpec?: ApplicationLoadBalancerSpec; } export interface UpdateInstanceGroupRequest_LabelsEntry { $type: "yandex.cloud.compute.v1.instancegroup.UpdateInstanceGroupRequest.LabelsEntry"; key: string; value: string; } export interface UpdateInstanceGroupFromYamlRequest { $type: "yandex.cloud.compute.v1.instancegroup.UpdateInstanceGroupFromYamlRequest"; /** * ID of the instance group to update. * To get the instance group ID, use a [InstanceGroupService.List] request. */ instanceGroupId: string; /** [InstanceGroupService.Update] request in YAML format. */ instanceGroupYaml: string; } export interface UpdateInstanceGroupMetadata { $type: "yandex.cloud.compute.v1.instancegroup.UpdateInstanceGroupMetadata"; /** * ID of the InstanceGroup resource that is being updated. * To get the instance group ID, use a [InstanceGroupService.List] request. */ instanceGroupId: string; } export interface StartInstanceGroupRequest { $type: "yandex.cloud.compute.v1.instancegroup.StartInstanceGroupRequest"; /** * ID of the instance group to start. * To get the instance group ID, use a [InstanceGroupService.List] request. */ instanceGroupId: string; } export interface StartInstanceGroupMetadata { $type: "yandex.cloud.compute.v1.instancegroup.StartInstanceGroupMetadata"; /** ID of the InstanceGroup resource that is being started. */ instanceGroupId: string; } export interface StopInstanceGroupRequest { $type: "yandex.cloud.compute.v1.instancegroup.StopInstanceGroupRequest"; /** * ID of the instance group to stop. * To get the instance group ID, use a [InstanceGroupService.List] request. */ instanceGroupId: string; } export interface StopInstanceGroupMetadata { $type: "yandex.cloud.compute.v1.instancegroup.StopInstanceGroupMetadata"; /** ID of the InstanceGroup resource that is being stopped. */ instanceGroupId: string; } export interface RollingRestartRequest { $type: "yandex.cloud.compute.v1.instancegroup.RollingRestartRequest"; /** * ID of the instance group to restart instances in. * To get the instance group ID, use a [InstanceGroupService.List] request. */ instanceGroupId: string; /** * IDs of managed instances in the group to restart * To get instance IDs, use a [InstanceGroupService.ListInstances] request. */ managedInstanceIds: string[]; } export interface RollingRestartMetadata { $type: "yandex.cloud.compute.v1.instancegroup.RollingRestartMetadata"; /** ID of the InstanceGroup resource that is being rolling restarted. */ instanceGroupId: string; } export interface RollingRecreateRequest { $type: "yandex.cloud.compute.v1.instancegroup.RollingRecreateRequest"; /** * ID of the instance group to recreate instances in. * To get the instance group ID, use a [InstanceGroupService.List] request. */ instanceGroupId: string; /** * IDs of managed instances in the group to recreate * To get instance IDs, use a [InstanceGroupService.ListInstances] request. */ managedInstanceIds: string[]; } export interface RollingRecreateMetadata { $type: "yandex.cloud.compute.v1.instancegroup.RollingRecreateMetadata"; /** ID of the InstanceGroup resource that is being rolling recreated. */ instanceGroupId: string; } export interface DeleteInstanceGroupRequest { $type: "yandex.cloud.compute.v1.instancegroup.DeleteInstanceGroupRequest"; /** * ID of the instance group to delete. * To get the instance group ID, use a [InstanceGroupService.List] request. */ instanceGroupId: string; } export interface DeleteInstanceGroupMetadata { $type: "yandex.cloud.compute.v1.instancegroup.DeleteInstanceGroupMetadata"; /** * ID of the instance group that is being deleted. * To get the instance group ID, use a [InstanceGroupService.List] request. */ instanceGroupId: string; } export interface DeleteInstancesMetadata { $type: "yandex.cloud.compute.v1.instancegroup.DeleteInstancesMetadata"; /** ID of the instance group that the instances are being deleted from. */ instanceGroupId: string; } export interface StopInstancesMetadata { $type: "yandex.cloud.compute.v1.instancegroup.StopInstancesMetadata"; /** ID of the instance group that the instances are being stopped from. */ instanceGroupId: string; } export interface ListInstanceGroupsRequest { $type: "yandex.cloud.compute.v1.instancegroup.ListInstanceGroupsRequest"; /** * ID of the folder to list instance groups in. * To get the folder ID, use 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 [ListInstanceGroupsResponse.next_page_token] * that can be used to get the next page of results in subsequent list requests. */ pageSize: number; /** * Page token. To get the next page of results, * set [page_token] to the [ListInstanceGroupsResponse.next_page_token] * returned by a previous list request. */ pageToken: string; /** * A filter expression that filters resources listed in the response. * Currently you can use filtering only on the [InstanceGroup.name] field. */ filter: string; /** Defines which information about the Instance template should be returned in the server response. */ view: InstanceGroupView; } export interface ListInstanceGroupsResponse { $type: "yandex.cloud.compute.v1.instancegroup.ListInstanceGroupsResponse"; /** Lists instance groups for the specified folder. */ instanceGroups: InstanceGroup[]; /** * This token allows you to get the next page of results for list requests. If the number of results * is larger than [ListInstanceGroupsRequest.page_size], use * [next_page_token] as the value * for the [ListInstanceGroupsRequest.page_token] query parameter * in the next list request. Each subsequent list request will have its own * [next_page_token] to continue paging through the results. */ nextPageToken: string; } export interface ListInstanceGroupInstancesRequest { $type: "yandex.cloud.compute.v1.instancegroup.ListInstanceGroupInstancesRequest"; /** * ID of the InstanceGroup resource to list instances for. * To get the instance group ID, use a [InstanceGroupService.List] request. */ instanceGroupId: 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 [ListInstanceGroupInstancesResponse.next_page_token] * that can be used to get the next page of results in subsequent list requests. */ pageSize: number; /** * Page token. To get the next page of results, * set [page_token] to the [ListInstanceGroupInstancesResponse.next_page_token] * returned by a previous list request. */ pageToken: string; /** * A filter expression that filters resources listed in the response. * Currently you can use filtering only on the [ManagedInstance.name] field. */ filter: string; } export interface ListInstanceGroupInstancesResponse { $type: "yandex.cloud.compute.v1.instancegroup.ListInstanceGroupInstancesResponse"; /** Lists instances for the specified instance group. */ instances: ManagedInstance[]; /** * This token allows you to get the next page of results for list requests. If the number of results * is more than [ListInstanceGroupInstancesRequest.page_size], use * [next_page_token] as the value * for the [ListInstanceGroupInstancesRequest.page_token] query parameter * in the next list request. Each subsequent list request will have its own * [next_page_token] to continue paging through the results. */ nextPageToken: string; } export interface DeleteInstancesRequest { $type: "yandex.cloud.compute.v1.instancegroup.DeleteInstancesRequest"; /** * ID of the instance group that the instances are being deleted from. * To get the ID of the instance group, use the [InstanceGroupService.List] request. */ instanceGroupId: string; /** * IDs of the instances to delete. Instances will be deleted along with all dependent resources. * Only IDs from the ManagedInstance.id field are allowed, not ManagedInstance.instance_id. */ managedInstanceIds: string[]; /** * If set to true, the target size of instance group will not be reduced and * a new instance will be created instead of the deleted one. By default, the target size of instance group * will be reduced by the specified number of instance IDs. */ createAnother: boolean; } export interface StopInstancesRequest { $type: "yandex.cloud.compute.v1.instancegroup.StopInstancesRequest"; /** * ID of the instance group that the instances are being stopped from. * To get the ID of the instance group, use the [InstanceGroupService.List] request. */ instanceGroupId: string; /** * IDs of the instances to stop. After stopping, the instance can be updated, started, or deleted * according to scale and deploy policies. * Only IDs from the ManagedInstance.id field are allowed, not ManagedInstance.instance_id. */ managedInstanceIds: string[]; } export interface ListInstanceGroupOperationsRequest { $type: "yandex.cloud.compute.v1.instancegroup.ListInstanceGroupOperationsRequest"; /** * ID of the InstanceGroup resource to list operations for. * To get the instance group ID, use a [InstanceGroupService.List] request. */ instanceGroupId: string; /** * The maximum number of results per page to return. If the number of available * results is more than [page_size], the service returns a [ListInstanceGroupOperationsResponse.next_page_token] * that can be used to get the next page of results in subsequent list requests. */ pageSize: number; /** * Page token. To get the next page of results, set [page_token] to the * [ListInstanceGroupOperationsResponse.next_page_token] returned by a previous list request. */ pageToken: string; /** * A filter expression that filters resources listed in the response. * Currently you can use filtering only on the [InstanceGroup.name] field. */ filter: string; } export interface ListInstanceGroupOperationsResponse { $type: "yandex.cloud.compute.v1.instancegroup.ListInstanceGroupOperationsResponse"; /** Lists operations for the specified instance group. */ operations: Operation[]; /** * This token allows you to get the next page of results for list requests. If the number of results * is more than [ListInstanceGroupOperationsRequest.page_size], use the [next_page_token] as the value * for the [ListInstanceGroupOperationsRequest.page_token] query parameter in the next list request. * Each subsequent list request will have its own [next_page_token] to continue paging through the results. */ nextPageToken: string; } export interface ListInstanceGroupLogRecordsRequest { $type: "yandex.cloud.compute.v1.instancegroup.ListInstanceGroupLogRecordsRequest"; /** * ID of the InstanceGroup resource to list logs for. * To get the instance group ID, use a [InstanceGroupService.List] request. */ instanceGroupId: 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 [ListInstanceGroupLogRecordsResponse.next_page_token] * that can be used to get the next page of results in subsequent list requests. */ pageSize: number; /** * Page token. To get the next page of results, * set [page_token] to the [ListInstanceGroupLogRecordsResponse.next_page_token] * returned by a previous list request. */ pageToken: string; /** * A filter expression that filters resources listed in the response. * Currently you can use filtering only on the [InstanceGroup.name] field. */ filter: string; } export interface ListInstanceGroupLogRecordsResponse { $type: "yandex.cloud.compute.v1.instancegroup.ListInstanceGroupLogRecordsResponse"; /** Lists logs for the specified instance group. */ logRecords: LogRecord[]; /** * This token allows you to get the next page of results for list requests. If the number of results * is larger than [ListInstanceGroupLogRecordsRequest.page_size], use * [next_page_token] as the value * for the [ListInstanceGroupLogRecordsRequest.page_token] query parameter * in the next list request. Each subsequent list request will have its own * [next_page_token] to continue paging through the results. */ nextPageToken: string; } export declare const ResumeInstanceGroupProcessesRequest: { $type: "yandex.cloud.compute.v1.instancegroup.ResumeInstanceGroupProcessesRequest"; encode(message: ResumeInstanceGroupProcessesRequest, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number | undefined): ResumeInstanceGroupProcessesRequest; fromJSON(object: any): ResumeInstanceGroupProcessesRequest; toJSON(message: ResumeInstanceGroupProcessesRequest): unknown; fromPartial<I extends { instanceGroupId?: string | undefined; } & { instanceGroupId?: string | undefined; } & Record<Exclude<keyof I, "$type" | "instanceGroupId">, never>>(object: I): ResumeInstanceGroupProcessesRequest; }; export declare const ResumeInstanceGroupProcessMetadata: { $type: "yandex.cloud.compute.v1.instancegroup.ResumeInstanceGroupProcessMetadata"; encode(message: ResumeInstanceGroupProcessMetadata, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number | undefined): ResumeInstanceGroupProcessMetadata; fromJSON(object: any): ResumeInstanceGroupProcessMetadata; toJSON(message: ResumeInstanceGroupProcessMetadata): unknown; fromPartial<I extends { instanceGroupId?: string | undefined; } & { instanceGroupId?: string | undefined; } & Record<Exclude<keyof I, "$type" | "instanceGroupId">, never>>(object: I): ResumeInstanceGroupProcessMetadata; }; export declare const PauseInstanceGroupProcessesRequest: { $type: "yandex.cloud.compute.v1.instancegroup.PauseInstanceGroupProcessesRequest"; encode(message: PauseInstanceGroupProcessesRequest, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number | undefined): PauseInstanceGroupProcessesRequest; fromJSON(object: any): PauseInstanceGroupProcessesRequest; toJSON(message: PauseInstanceGroupProcessesRequest): unknown; fromPartial<I extends { instanceGroupId?: string | undefined; } & { instanceGroupId?: string | undefined; } & Record<Exclude<keyof I, "$type" | "instanceGroupId">, never>>(object: I): PauseInstanceGroupProcessesRequest; }; export declare const PauseInstanceGroupProcessMetadata: { $type: "yandex.cloud.compute.v1.instancegroup.PauseInstanceGroupProcessMetadata"; encode(message: PauseInstanceGroupProcessMetadata, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number | undefined): PauseInstanceGroupProcessMetadata; fromJSON(object: any): PauseInstanceGroupProcessMetadata; toJSON(message: PauseInstanceGroupProcessMetadata): unknown; fromPartial<I extends { instanceGroupId?: string | undefined; } & { instanceGroupId?: string | undefined; } & Record<Exclude<keyof I, "$type" | "instanceGroupId">, never>>(object: I): PauseInstanceGroupProcessMetadata; }; export declare const GetInstanceGroupRequest: { $type: "yandex.cloud.compute.v1.instancegroup.GetInstanceGroupRequest"; encode(message: GetInstanceGroupRequest, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number | undefined): GetInstanceGroupRequest; fromJSON(object: any): GetInstanceGroupRequest; toJSON(message: GetInstanceGroupRequest): unknown; fromPartial<I extends { view?: InstanceGroupView | undefined; instanceGroupId?: string | undefined; } & { view?: InstanceGroupView | undefined; instanceGroupId?: string | undefined; } & Record<Exclude<keyof I, "$type" | "view" | "instanceGroupId">, never>>(object: I): GetInstanceGroupRequest; }; export declare const CreateInstanceGroupRequest: { $type: "yandex.cloud.compute.v1.instancegroup.CreateInstanceGroupRequest"; encode(message: CreateInstanceGroupRequest, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number | undefined): CreateInstanceGroupRequest; fromJSON(object: any): CreateInstanceGroupRequest; toJSON(message: CreateInstanceGroupRequest): unknown; fromPartial<I extends { description?: string | undefined; name?: string | undefined; folderId?: string | undefined; variables?: { value?: string | undefined; key?: string | undefined; }[] | undefined; labels?: { [x: string]: string | undefined; [x: number]: string | undefined; } | undefined; allocationPolicy?: { zones?: { zoneId?: string | undefined; instanceTagsPool?: string[] | undefined; }[] | undefined; } | undefined; deletionProtection?: boolean | undefined; serviceAccountId?: string | undefined; scalePolicy?: { fixedScale?: { size?: number | undefined; } | undefined; autoScale?: { minZoneSize?: number | undefined; maxSize?: number | undefined; measurementDuration?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; warmupDuration?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; stabilizationDuration?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; initialSize?: number | undefined; cpuUtilizationRule?: { utilizationTarget?: number | undefined; } | undefined; customRules?: { folderId?: string | undefined; labels?: { [x: string]: string | undefined; [x: number]: string | undefined; } | undefined; target?: number | undefined; ruleType?: import("../../../../../yandex/cloud/compute/v1/instancegroup/instance_group").ScalePolicy_CustomRule_RuleType | undefined; metricType?: import("../../../../../yandex/cloud/compute/v1/instancegroup/instance_group").ScalePolicy_CustomRule_MetricType | undefined; metricName?: string | undefined; service?: string | undefined; }[] | undefined; autoScaleType?: import("../../../../../yandex/cloud/compute/v1/instancegroup/instance_group").ScalePolicy_AutoScale_AutoScaleType | undefined; } | undefined; testAutoScale?: { minZoneSize?: number | undefined; maxSize?: number | undefined; measurementDuration?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; warmupDuration?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; stabilizationDuration?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; initialSize?: number | undefined; cpuUtilizationRule?: { utilizationTarget?: number | undefined; } | undefined; customRules?: { folderId?: string | undefined; labels?: { [x: string]: string | undefined; [x: number]: string | undefined; } | undefined; target?: number | undefined; ruleType?: import("../../../../../yandex/cloud/compute/v1/instancegroup/instance_group").ScalePolicy_CustomRule_RuleType | undefined; metricType?: import("../../../../../yandex/cloud/compute/v1/instancegroup/instance_group").ScalePolicy_CustomRule_MetricType | undefined; metricName?: string | undefined; service?: string | undefined; }[] | undefined; autoScaleType?: import("../../../../../yandex/cloud/compute/v1/instancegroup/instance_group").ScalePolicy_AutoScale_AutoScaleType | undefined; } | undefined; } | undefined; instanceTemplate?: { description?: string | undefined; name?: string | undefined; metadata?: { [x: string]: string | undefined; [x: number]: string | undefined; } | undefined; labels?: { [x: string]: string | undefined; [x: number]: string | undefined; } | undefined; platformId?: string | undefined; serviceAccountId?: string | undefined; schedulingPolicy?: { preemptible?: boolean | undefined; } | undefined; networkSettings?: { type?: import("../../../../../yandex/cloud/compute/v1/instancegroup/instance_group").NetworkSettings_Type | undefined; } | undefined; placementPolicy?: { placementGroupId?: string | undefined; hostAffinityRules?: { values?: string[] | undefined; key?: string | undefined; op?: import("../../../../../yandex/cloud/compute/v1/instancegroup/instance_group").PlacementPolicy_HostAffinityRule_Operator | undefined; }[] | undefined; } | undefined; hostname?: string | undefined; resourcesSpec?: { memory?: number | undefined; cores?: number | undefined; coreFraction?: number | undefined; gpus?: number | undefined; } | undefined; bootDiskSpec?: { name?: string | undefined; mode?: import("../../../../../yandex/cloud/compute/v1/instancegroup/instance_group").AttachedDiskSpec_Mode | undefined; diskId?: string | undefined; deviceName?: string | undefined; diskSpec?: { description?: string | undefined; size?: number | undefined; typeId?: string | undefined; imageId?: string | undefined; snapshotId?: string | undefined; preserveAfterInstanceDelete?: boolean | undefined; } | undefined; } | undefined; secondaryDiskSpecs?: { name?: string | undefined; mode?: import("../../../../../yandex/cloud/compute/v1/instancegroup/instance_group").AttachedDiskSpec_Mode | undefined; diskId?: string | undefined; deviceName?: string | undefined; diskSpec?: { description?: string | undefined; size?: number | undefined; typeId?: string | undefined; imageId?: string | undefined; snapshotId?: string | undefined; preserveAfterInstanceDelete?: boolean | undefined; } | undefined; }[] | undefined; filesystemSpecs?: { mode?: import("../../../../../yandex/cloud/compute/v1/instancegroup/instance_group").AttachedFilesystemSpec_Mode | undefined; filesystemId?: string | undefined; deviceName?: string | undefined; }[] | undefined; networkInterfaceSpecs?: { networkId?: string | undefined; securityGroupIds?: string[] | undefined; primaryV4AddressSpec?: { address?: string | undefined; oneToOneNatSpec?: { address?: string | undefined; ipVersion?: import("../../../../../yandex/cloud/compute/v1/instancegroup/instance_group").IpVersion | undefined; dnsRecordSpecs?: { ttl?: number | undefined; fqdn?: string | undefined; dnsZoneId?: string | undefined; ptr?: boolean | undefined; }[] | undefined; } | undefined; dnsRecordSpecs?: { ttl?: number | undefined; fqdn?: string | undefined; dnsZoneId?: string | undefined; ptr?: boolean | undefined; }[] | undefined; } | undefined; primaryV6AddressSpec?: { address?: string | undefined; oneToOneNatSpec?: { address?: string | undefined; ipVersion?: import("../../../../../yandex/cloud/compute/v1/instancegroup/instance_group").IpVersion | undefined; dnsRecordSpecs?: { ttl?: number | undefined; fqdn?: string | undefined; dnsZoneId?: string | undefined; ptr?: boolean | undefined; }[] | undefined; } | undefined; dnsRecordSpecs?: { ttl?: number | undefined; fqdn?: string | undefined; dnsZoneId?: string | undefined; ptr?: boolean | undefined; }[] | undefined; } | undefined; subnetIds?: string[] | undefined; }[] | undefined; } | undefined; deployPolicy?: { maxUnavailable?: number | undefined; maxDeleting?: number | undefined; maxCreating?: number | undefined; maxExpansion?: number | undefined; startupDuration?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; strategy?: import("../../../../../yandex/cloud/compute/v1/instancegroup/instance_group").DeployPolicy_Strategy | undefined; } | undefined; loadBalancerSpec?: { targetGroupSpec?: { description?: string | undefined; name?: string | undefined; labels?: { [x: string]: string | undefined; [x: number]: string | undefined; } | undefined; } | undefined; maxOpeningTrafficDuration?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; ignoreHealthChecks?: boolean | undefined; } | undefined; healthChecksSpec?: { healthCheckSpecs?: { timeout?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; interval?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; healthyThreshold?: number | undefined; unhealthyThreshold?: number | undefined; tcpOptions?: { port?: number | undefined; } | undefined; httpOptions?: { port?: number | undefined; path?: string | undefined; } | undefined; }[] | undefined; maxCheckingHealthDuration?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; } | undefined; applicationLoadBalancerSpec?: { targetGroupSpec?: { description?: string | undefined; name?: string | undefined; labels?: { [x: string]: string | undefined; [x: number]: string | undefined; } | undefined; } | undefined; maxOpeningTrafficDuration?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; ignoreHealthChecks?: boolean | undefined; } | undefined; } & { description?: string | undefined; name?: string | undefined; folderId?: string | undefined; variables?: ({ value?: string | undefined; key?: string | undefined; }[] & ({ value?: string | undefined; key?: string | undefined; } & { value?: string | undefined; key?: string | undefined; } & Record<Exclude<keyof I["variables"][number], "$type" | "value" | "key">, never>)[] & Record<Exclude<keyof I["variables"], "$type" | keyof { value?: string | undefined; key?: string | undefined; }[]>, never>) | 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; allocationPolicy?: ({ zones?: { zoneId?: string | undefined; instanceTagsPool?: string[] | undefined; }[] | undefined; } & { zones?: ({ zoneId?: string | undefined; instanceTagsPool?: string[] | undefined; }[] & ({ zoneId?: string | undefined; instanceTagsPool?: string[] | undefined; } & { zoneId?: string | undefined; instanceTagsPool?: (string[] & string[] & Record<Exclude<keyof I["allocationPolicy"]["zones"][number]["instanceTagsPool"], "$type" | keyof string[]>, never>) | undefined; } & Record<Exclude<keyof I["allocationPolicy"]["zones"][number], "$type" | "zoneId" | "instanceTagsPool">, never>)[] & Record<Exclude<keyof I["allocationPolicy"]["zones"], "$type" | keyof { zoneId?: string | undefined; instanceTagsPool?: string[] | undefined; }[]>, never>) | undefined; } & Record<Exclude<keyof I["allocationPolicy"], "$type" | "zones">, never>) | undefined; deletionProtection?: boolean | undefined; serviceAccountId?: string | undefined; scalePolicy?: ({ fixedScale?: { size?: number | undefined; } | undefined; autoScale?: { minZoneSize?: number | undefined; maxSize?: number | undefined; measurementDuration?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; warmupDuration?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; stabilizationDuration?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; initialSize?: number | undefined; cpuUtilizationRule?: { utilizationTarget?: number | undefined; } | undefined; customRules?: { folderId?: string | undefined; labels?: { [x: string]: string | undefined; [x: number]: string | undefined; } | undefined; target?: number | undefined; ruleType?: import("../../../../../yandex/cloud/compute/v1/instancegroup/instance_group").ScalePolicy_CustomRule_RuleType | undefined; metricType?: import("../../../../../yandex/cloud/compute/v1/instancegroup/instance_group").ScalePolicy_CustomRule_MetricType | undefined; metricName?: string | undefined; service?: string | undefined; }[] | undefined; autoScaleType?: import("../../../../../yandex/cloud/compute/v1/instancegroup/instance_group").ScalePolicy_AutoScale_AutoScaleType | undefined; } | undefined; testAutoScale?: { minZoneSize?: number | undefined; maxSize?: number | undefined; measurementDuration?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; warmupDuration?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; stabilizationDuration?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; initialSize?: number | undefined; cpuUtilizationRule?: { utilizationTarget?: number | undefined; } | undefined; customRules?: { folderId?: string | undefined; labels?: { [x: string]: string | undefined; [x: number]: string | undefined; } | undefined; target?: number | undefined; ruleType?: import("../../../../../yandex/cloud/compute/v1/instancegroup/instance_group").ScalePolicy_CustomRule_RuleType | undefined; metricType?: import("../../../../../yandex/cloud/compute/v1/instancegroup/instance_group").ScalePolicy_CustomRule_MetricType | undefined; metricName?: string | undefined; service?: string | undefined; }[] | undefined; autoScaleType?: import("../../../../../yandex/cloud/compute/v1/instancegroup/instance_group").ScalePolicy_AutoScale_AutoScaleType | undefined; } | undefined; } & { fixedScale?: ({ size?: number | undefined; } & { size?: number | undefined; } & Record<Exclude<keyof I["scalePolicy"]["fixedScale"], "$type" | "size">, never>) | undefined; autoScale?: ({ minZoneSize?: number | undefined; maxSize?: number | undefined; measurementDuration?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; warmupDuration?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; stabilizationDuration?: { seconds?: number | undefined; nanos?: number | undefined; } | undefined; initialSize?: number | undefined; cpuUtilizationRule?: { utilizationTarget?: number | undefined; } | undefined; customRules?: { folderId?: string | undefined; labels?: { [x: string]: string | undefined; [x: number]: string | undefined; } | undefined; target?: number | undefined; ruleType?: import("../../../../../yandex/cloud/compute/v1/instancegroup/instance_group").ScalePolicy_CustomRule_RuleType | undefined; metricType?: import("../../../../../yandex/cloud/compute/v1/instancegroup/instance_group").ScalePolicy_CustomRule_MetricType | undefined; metricName?: string | undefined; service?: string | undefined; }[] | undefined; autoScaleType?: import("../../../../../yandex/cloud/compute/v1/instancegroup/instance_group").ScalePolicy_AutoScale_AutoScaleType | undefined; } & { minZoneSize?: number | undefined; maxSize?: number | undefined; measurementDuration?: ({ seconds?: number | undefined; nanos?: number | undefined; } & { seconds?: number | undefined; nanos?: number | undefined; } & Record<Exclude<keyof I["scalePolicy"]["autoScale"]["measurementDuration"], "$type" | "seconds" | "nanos">, never>) | undefined; warmupDuration?: ({ seconds?: number | undefined; nanos?: number | undefined; } & { seconds?: number | undefined; nanos?: number | undefined; } & Record<Exclude<keyof I["scalePolicy"]["autoScale"]["warmupDuration"], "$type" | "seconds" | "nanos">, never>) | undefined; stabilizationDuration?: ({ seconds?: number | undefined; nanos?: number | undefined; } & { seconds?: number | undefined; nanos?: number | undefined; } & Record<Exclude<keyof I["scalePolicy"]["autoScale"]["stabilizationDuration"], "$type" | "seconds" | "nanos">, never>) | undefined; initialSize?: number | undefined; cpuUtilizationRule?: ({ utilizationTarget?: number | undefined; } & { utilizationTarget?: number | undefined; } & Record<Exclude<keyof I["scalePolicy"]["autoScale"]["cpuUtilizationRule"], "$type" | "utilizationTarget">, never>) | undefined; customRules?: ({ folderId?: string | undefined; labels?: { [x: string]: string | undefined; [x: number]: string | undefined; } | undefined; target?: number | undefined; ruleType?: import("../../../../../yandex/cloud/compute/v1/instancegroup/instance_group").ScalePolicy_CustomRule_RuleType | undefined; metricType?: import("../../../../../yandex/cloud/compute/v1/instancegroup/instance_group").ScalePolicy_CustomRule_MetricType | undefined; metricName?: string | undefined; service?: string | undefined; }[] & ({ folderId?: string | undefined; labels?: { [x: string]: string | undefined; [x: number]: string | undefined; } | undefined; target?: number | undefined; ruleType?: import("../../../../../yandex/cloud/compute/v1/instancegroup/instance_group").ScalePolicy_CustomRule_RuleType | undefined; metricType?: import("../../../../../yandex/cloud/compute/v1/instancegroup/instance_group").ScalePolicy_CustomRule_MetricType | undefined; metricName?: string | undefined; service?: string | undefined; } & { folderId?: string | undefined; labels?: ({ [x: string]: string | undefined; [x: number]: string | undefined; } & {