import * as pulumi from "@pulumi/pulumi"; import { input as inputs, output as outputs } from "./types"; /** * An Instance group resource. For more information, see * [the official documentation](https://cloud.yandex.com/docs/compute/concepts/instance-groups/). * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as fs from "fs"; * import * as yandex from "@pulumi/yandex"; * * const group1 = new yandex.ComputeInstanceGroup("group1", { * allocationPolicy: { * zones: ["ru-central1-a"], * }, * deletionProtection: true, * deployPolicy: { * maxCreating: 2, * maxDeleting: 2, * maxExpansion: 2, * maxUnavailable: 2, * }, * folderId: yandex_resourcemanager_folder_test_folder.id, * instanceTemplate: { * bootDisk: { * initializeParams: { * imageId: yandex_compute_image_ubuntu.id, * size: 4, * }, * mode: "READ_WRITE", * }, * labels: { * label1: "label1-value", * label2: "label2-value", * }, * metadata: { * foo: "bar", * "ssh-keys": `ubuntu:${fs.readFileSync("~/.ssh/id_rsa.pub", "utf-8")}`, * }, * networkInterfaces: [{ * networkId: yandex_vpc_network_my_inst_group_network.id, * subnetIds: [yandex_vpc_subnet_my_inst_group_subnet.id], * }], * networkSettings: [{ * type: "STANDARD", * }], * platformId: "standard-v1", * resources: { * cores: 2, * memory: 1, * }, * }, * scalePolicy: { * fixedScale: { * size: 3, * }, * }, * serviceAccountId: yandex_iam_service_account_test_account.id, * variables: { * test_key1: "test_value1", * test_key2: "test_value2", * }, * }); * ``` */ export declare class ComputeInstanceGroup extends pulumi.CustomResource { /** * Get an existing ComputeInstanceGroup resource's state with the given name, ID, and optional extra * properties used to qualify the lookup. * * @param name The _unique_ name of the resulting resource. * @param id The _unique_ provider ID of the resource to lookup. * @param state Any extra arguments used during the lookup. * @param opts Optional settings to control the behavior of the CustomResource. */ static get(name: string, id: pulumi.Input, state?: ComputeInstanceGroupState, opts?: pulumi.CustomResourceOptions): ComputeInstanceGroup; /** * Returns true if the given object is an instance of ComputeInstanceGroup. This is designed to work even * when multiple copies of the Pulumi SDK have been loaded into the same process. */ static isInstance(obj: any): obj is ComputeInstanceGroup; /** * The allocation policy of the instance group by zone and region. The structure is documented below. */ readonly allocationPolicy: pulumi.Output; /** * Application Load balancing (L7) specifications. The structure is documented below. */ readonly applicationLoadBalancer: pulumi.Output; /** * The instance group creation timestamp. */ readonly createdAt: pulumi.Output; /** * Flag that protects the instance group from accidental deletion. */ readonly deletionProtection: pulumi.Output; /** * The deployment policy of the instance group. The structure is documented below. */ readonly deployPolicy: pulumi.Output; /** * A description of the boot disk. */ readonly description: pulumi.Output; /** * Folder ID of custom metric in Yandex Monitoring that should be used for scaling. */ readonly folderId: pulumi.Output; /** * Health check specifications. The structure is documented below. */ readonly healthChecks: pulumi.Output; /** * The template for creating new instances. The structure is documented below. */ readonly instanceTemplate: pulumi.Output; readonly instances: pulumi.Output; /** * A map of labels of metric. */ readonly labels: pulumi.Output<{ [key: string]: string; } | undefined>; /** * Load balancing specifications. The structure is documented below. */ readonly loadBalancer: pulumi.Output; /** * Timeout for waiting for the VM to become healthy. If the timeout is exceeded, the VM will be turned off based on the deployment policy. Specified in seconds. */ readonly maxCheckingHealthDuration: pulumi.Output; /** * Name template of the instance. * In order to be unique it must contain at least one of instance unique placeholders: * {instance.short_id} * {instance.index} * combination of {instance.zone_id} and {instance.index_in_zone} * Example: my-instance-{instance.index} * If not set, default is used: {instance_group.id}-{instance.short_id} * It may also contain another placeholders, see metadata doc for full list. */ readonly name: pulumi.Output; /** * The scaling policy of the instance group. The structure is documented below. */ readonly scalePolicy: pulumi.Output; /** * The ID of the service account authorized for this instance. */ readonly serviceAccountId: pulumi.Output; /** * The status of the instance. */ readonly status: pulumi.Output; /** * A set of key/value variables pairs to assign to the instance group. */ readonly variables: pulumi.Output<{ [key: string]: string; } | undefined>; /** * Create a ComputeInstanceGroup resource with the given unique name, arguments, and options. * * @param name The _unique_ name of the resource. * @param args The arguments to use to populate this resource's properties. * @param opts A bag of options that control this resource's behavior. */ constructor(name: string, args: ComputeInstanceGroupArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering ComputeInstanceGroup resources. */ export interface ComputeInstanceGroupState { /** * The allocation policy of the instance group by zone and region. The structure is documented below. */ allocationPolicy?: pulumi.Input; /** * Application Load balancing (L7) specifications. The structure is documented below. */ applicationLoadBalancer?: pulumi.Input; /** * The instance group creation timestamp. */ createdAt?: pulumi.Input; /** * Flag that protects the instance group from accidental deletion. */ deletionProtection?: pulumi.Input; /** * The deployment policy of the instance group. The structure is documented below. */ deployPolicy?: pulumi.Input; /** * A description of the boot disk. */ description?: pulumi.Input; /** * Folder ID of custom metric in Yandex Monitoring that should be used for scaling. */ folderId?: pulumi.Input; /** * Health check specifications. The structure is documented below. */ healthChecks?: pulumi.Input[]>; /** * The template for creating new instances. The structure is documented below. */ instanceTemplate?: pulumi.Input; instances?: pulumi.Input[]>; /** * A map of labels of metric. */ labels?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * Load balancing specifications. The structure is documented below. */ loadBalancer?: pulumi.Input; /** * Timeout for waiting for the VM to become healthy. If the timeout is exceeded, the VM will be turned off based on the deployment policy. Specified in seconds. */ maxCheckingHealthDuration?: pulumi.Input; /** * Name template of the instance. * In order to be unique it must contain at least one of instance unique placeholders: * {instance.short_id} * {instance.index} * combination of {instance.zone_id} and {instance.index_in_zone} * Example: my-instance-{instance.index} * If not set, default is used: {instance_group.id}-{instance.short_id} * It may also contain another placeholders, see metadata doc for full list. */ name?: pulumi.Input; /** * The scaling policy of the instance group. The structure is documented below. */ scalePolicy?: pulumi.Input; /** * The ID of the service account authorized for this instance. */ serviceAccountId?: pulumi.Input; /** * The status of the instance. */ status?: pulumi.Input; /** * A set of key/value variables pairs to assign to the instance group. */ variables?: pulumi.Input<{ [key: string]: pulumi.Input; }>; } /** * The set of arguments for constructing a ComputeInstanceGroup resource. */ export interface ComputeInstanceGroupArgs { /** * The allocation policy of the instance group by zone and region. The structure is documented below. */ allocationPolicy: pulumi.Input; /** * Application Load balancing (L7) specifications. The structure is documented below. */ applicationLoadBalancer?: pulumi.Input; /** * Flag that protects the instance group from accidental deletion. */ deletionProtection?: pulumi.Input; /** * The deployment policy of the instance group. The structure is documented below. */ deployPolicy: pulumi.Input; /** * A description of the boot disk. */ description?: pulumi.Input; /** * Folder ID of custom metric in Yandex Monitoring that should be used for scaling. */ folderId?: pulumi.Input; /** * Health check specifications. The structure is documented below. */ healthChecks?: pulumi.Input[]>; /** * The template for creating new instances. The structure is documented below. */ instanceTemplate: pulumi.Input; /** * A map of labels of metric. */ labels?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * Load balancing specifications. The structure is documented below. */ loadBalancer?: pulumi.Input; /** * Timeout for waiting for the VM to become healthy. If the timeout is exceeded, the VM will be turned off based on the deployment policy. Specified in seconds. */ maxCheckingHealthDuration?: pulumi.Input; /** * Name template of the instance. * In order to be unique it must contain at least one of instance unique placeholders: * {instance.short_id} * {instance.index} * combination of {instance.zone_id} and {instance.index_in_zone} * Example: my-instance-{instance.index} * If not set, default is used: {instance_group.id}-{instance.short_id} * It may also contain another placeholders, see metadata doc for full list. */ name?: pulumi.Input; /** * The scaling policy of the instance group. The structure is documented below. */ scalePolicy: pulumi.Input; /** * The ID of the service account authorized for this instance. */ serviceAccountId: pulumi.Input; /** * A set of key/value variables pairs to assign to the instance group. */ variables?: pulumi.Input<{ [key: string]: pulumi.Input; }>; }