@yandex-cloud/nodejs-sdk
Version:
Yandex.Cloud NodeJS SDK
1,038 lines (1,037 loc) • 406 kB
TypeScript
/// <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;
} & {