1. Packages
  2. Google Cloud (GCP) Classic
  3. API Docs
  4. compute
  5. InstanceGroupManager
Google Cloud Classic v8.9.3 published on Monday, Nov 18, 2024 by Pulumi

gcp.compute.InstanceGroupManager

Explore with Pulumi AI

gcp logo
Google Cloud Classic v8.9.3 published on Monday, Nov 18, 2024 by Pulumi

    The Google Compute Engine Instance Group Manager API creates and manages pools of homogeneous Compute Engine virtual machine instances from a common instance template. For more information, see the official documentation and API

    Note: Use gcp.compute.RegionInstanceGroupManager to create a regional (multi-zone) instance group manager.

    Example Usage

    With Top Level Instance Template (Google Provider)

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const autohealing = new gcp.compute.HealthCheck("autohealing", {
        name: "autohealing-health-check",
        checkIntervalSec: 5,
        timeoutSec: 5,
        healthyThreshold: 2,
        unhealthyThreshold: 10,
        httpHealthCheck: {
            requestPath: "/healthz",
            port: 8080,
        },
    });
    const appserver = new gcp.compute.InstanceGroupManager("appserver", {
        name: "appserver-igm",
        baseInstanceName: "app",
        zone: "us-central1-a",
        versions: [{
            instanceTemplate: appserverGoogleComputeInstanceTemplate.selfLinkUnique,
        }],
        allInstancesConfig: {
            metadata: {
                metadata_key: "metadata_value",
            },
            labels: {
                label_key: "label_value",
            },
        },
        targetPools: [appserverGoogleComputeTargetPool.id],
        targetSize: 2,
        namedPorts: [{
            name: "customhttp",
            port: 8888,
        }],
        autoHealingPolicies: {
            healthCheck: autohealing.id,
            initialDelaySec: 300,
        },
    });
    
    import pulumi
    import pulumi_gcp as gcp
    
    autohealing = gcp.compute.HealthCheck("autohealing",
        name="autohealing-health-check",
        check_interval_sec=5,
        timeout_sec=5,
        healthy_threshold=2,
        unhealthy_threshold=10,
        http_health_check={
            "request_path": "/healthz",
            "port": 8080,
        })
    appserver = gcp.compute.InstanceGroupManager("appserver",
        name="appserver-igm",
        base_instance_name="app",
        zone="us-central1-a",
        versions=[{
            "instance_template": appserver_google_compute_instance_template["selfLinkUnique"],
        }],
        all_instances_config={
            "metadata": {
                "metadata_key": "metadata_value",
            },
            "labels": {
                "label_key": "label_value",
            },
        },
        target_pools=[appserver_google_compute_target_pool["id"]],
        target_size=2,
        named_ports=[{
            "name": "customhttp",
            "port": 8888,
        }],
        auto_healing_policies={
            "health_check": autohealing.id,
            "initial_delay_sec": 300,
        })
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/compute"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		autohealing, err := compute.NewHealthCheck(ctx, "autohealing", &compute.HealthCheckArgs{
    			Name:               pulumi.String("autohealing-health-check"),
    			CheckIntervalSec:   pulumi.Int(5),
    			TimeoutSec:         pulumi.Int(5),
    			HealthyThreshold:   pulumi.Int(2),
    			UnhealthyThreshold: pulumi.Int(10),
    			HttpHealthCheck: &compute.HealthCheckHttpHealthCheckArgs{
    				RequestPath: pulumi.String("/healthz"),
    				Port:        pulumi.Int(8080),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		_, err = compute.NewInstanceGroupManager(ctx, "appserver", &compute.InstanceGroupManagerArgs{
    			Name:             pulumi.String("appserver-igm"),
    			BaseInstanceName: pulumi.String("app"),
    			Zone:             pulumi.String("us-central1-a"),
    			Versions: compute.InstanceGroupManagerVersionArray{
    				&compute.InstanceGroupManagerVersionArgs{
    					InstanceTemplate: pulumi.Any(appserverGoogleComputeInstanceTemplate.SelfLinkUnique),
    				},
    			},
    			AllInstancesConfig: &compute.InstanceGroupManagerAllInstancesConfigArgs{
    				Metadata: pulumi.StringMap{
    					"metadata_key": pulumi.String("metadata_value"),
    				},
    				Labels: pulumi.StringMap{
    					"label_key": pulumi.String("label_value"),
    				},
    			},
    			TargetPools: pulumi.StringArray{
    				appserverGoogleComputeTargetPool.Id,
    			},
    			TargetSize: pulumi.Int(2),
    			NamedPorts: compute.InstanceGroupManagerNamedPortArray{
    				&compute.InstanceGroupManagerNamedPortArgs{
    					Name: pulumi.String("customhttp"),
    					Port: pulumi.Int(8888),
    				},
    			},
    			AutoHealingPolicies: &compute.InstanceGroupManagerAutoHealingPoliciesArgs{
    				HealthCheck:     autohealing.ID(),
    				InitialDelaySec: pulumi.Int(300),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    
    return await Deployment.RunAsync(() => 
    {
        var autohealing = new Gcp.Compute.HealthCheck("autohealing", new()
        {
            Name = "autohealing-health-check",
            CheckIntervalSec = 5,
            TimeoutSec = 5,
            HealthyThreshold = 2,
            UnhealthyThreshold = 10,
            HttpHealthCheck = new Gcp.Compute.Inputs.HealthCheckHttpHealthCheckArgs
            {
                RequestPath = "/healthz",
                Port = 8080,
            },
        });
    
        var appserver = new Gcp.Compute.InstanceGroupManager("appserver", new()
        {
            Name = "appserver-igm",
            BaseInstanceName = "app",
            Zone = "us-central1-a",
            Versions = new[]
            {
                new Gcp.Compute.Inputs.InstanceGroupManagerVersionArgs
                {
                    InstanceTemplate = appserverGoogleComputeInstanceTemplate.SelfLinkUnique,
                },
            },
            AllInstancesConfig = new Gcp.Compute.Inputs.InstanceGroupManagerAllInstancesConfigArgs
            {
                Metadata = 
                {
                    { "metadata_key", "metadata_value" },
                },
                Labels = 
                {
                    { "label_key", "label_value" },
                },
            },
            TargetPools = new[]
            {
                appserverGoogleComputeTargetPool.Id,
            },
            TargetSize = 2,
            NamedPorts = new[]
            {
                new Gcp.Compute.Inputs.InstanceGroupManagerNamedPortArgs
                {
                    Name = "customhttp",
                    Port = 8888,
                },
            },
            AutoHealingPolicies = new Gcp.Compute.Inputs.InstanceGroupManagerAutoHealingPoliciesArgs
            {
                HealthCheck = autohealing.Id,
                InitialDelaySec = 300,
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.gcp.compute.HealthCheck;
    import com.pulumi.gcp.compute.HealthCheckArgs;
    import com.pulumi.gcp.compute.inputs.HealthCheckHttpHealthCheckArgs;
    import com.pulumi.gcp.compute.InstanceGroupManager;
    import com.pulumi.gcp.compute.InstanceGroupManagerArgs;
    import com.pulumi.gcp.compute.inputs.InstanceGroupManagerVersionArgs;
    import com.pulumi.gcp.compute.inputs.InstanceGroupManagerAllInstancesConfigArgs;
    import com.pulumi.gcp.compute.inputs.InstanceGroupManagerNamedPortArgs;
    import com.pulumi.gcp.compute.inputs.InstanceGroupManagerAutoHealingPoliciesArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var autohealing = new HealthCheck("autohealing", HealthCheckArgs.builder()
                .name("autohealing-health-check")
                .checkIntervalSec(5)
                .timeoutSec(5)
                .healthyThreshold(2)
                .unhealthyThreshold(10)
                .httpHealthCheck(HealthCheckHttpHealthCheckArgs.builder()
                    .requestPath("/healthz")
                    .port("8080")
                    .build())
                .build());
    
            var appserver = new InstanceGroupManager("appserver", InstanceGroupManagerArgs.builder()
                .name("appserver-igm")
                .baseInstanceName("app")
                .zone("us-central1-a")
                .versions(InstanceGroupManagerVersionArgs.builder()
                    .instanceTemplate(appserverGoogleComputeInstanceTemplate.selfLinkUnique())
                    .build())
                .allInstancesConfig(InstanceGroupManagerAllInstancesConfigArgs.builder()
                    .metadata(Map.of("metadata_key", "metadata_value"))
                    .labels(Map.of("label_key", "label_value"))
                    .build())
                .targetPools(appserverGoogleComputeTargetPool.id())
                .targetSize(2)
                .namedPorts(InstanceGroupManagerNamedPortArgs.builder()
                    .name("customhttp")
                    .port(8888)
                    .build())
                .autoHealingPolicies(InstanceGroupManagerAutoHealingPoliciesArgs.builder()
                    .healthCheck(autohealing.id())
                    .initialDelaySec(300)
                    .build())
                .build());
    
        }
    }
    
    resources:
      autohealing:
        type: gcp:compute:HealthCheck
        properties:
          name: autohealing-health-check
          checkIntervalSec: 5
          timeoutSec: 5
          healthyThreshold: 2
          unhealthyThreshold: 10 # 50 seconds
          httpHealthCheck:
            requestPath: /healthz
            port: '8080'
      appserver:
        type: gcp:compute:InstanceGroupManager
        properties:
          name: appserver-igm
          baseInstanceName: app
          zone: us-central1-a
          versions:
            - instanceTemplate: ${appserverGoogleComputeInstanceTemplate.selfLinkUnique}
          allInstancesConfig:
            metadata:
              metadata_key: metadata_value
            labels:
              label_key: label_value
          targetPools:
            - ${appserverGoogleComputeTargetPool.id}
          targetSize: 2
          namedPorts:
            - name: customhttp
              port: 8888
          autoHealingPolicies:
            healthCheck: ${autohealing.id}
            initialDelaySec: 300
    

    With Multiple Versions (Google-Beta Provider)

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const appserver = new gcp.compute.InstanceGroupManager("appserver", {
        name: "appserver-igm",
        baseInstanceName: "app",
        zone: "us-central1-a",
        targetSize: 5,
        versions: [
            {
                name: "appserver",
                instanceTemplate: appserverGoogleComputeInstanceTemplate.selfLinkUnique,
            },
            {
                name: "appserver-canary",
                instanceTemplate: appserver_canary.selfLinkUnique,
                targetSize: {
                    fixed: 1,
                },
            },
        ],
    });
    
    import pulumi
    import pulumi_gcp as gcp
    
    appserver = gcp.compute.InstanceGroupManager("appserver",
        name="appserver-igm",
        base_instance_name="app",
        zone="us-central1-a",
        target_size=5,
        versions=[
            {
                "name": "appserver",
                "instance_template": appserver_google_compute_instance_template["selfLinkUnique"],
            },
            {
                "name": "appserver-canary",
                "instance_template": appserver_canary["selfLinkUnique"],
                "target_size": {
                    "fixed": 1,
                },
            },
        ])
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/compute"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewInstanceGroupManager(ctx, "appserver", &compute.InstanceGroupManagerArgs{
    			Name:             pulumi.String("appserver-igm"),
    			BaseInstanceName: pulumi.String("app"),
    			Zone:             pulumi.String("us-central1-a"),
    			TargetSize:       pulumi.Int(5),
    			Versions: compute.InstanceGroupManagerVersionArray{
    				&compute.InstanceGroupManagerVersionArgs{
    					Name:             pulumi.String("appserver"),
    					InstanceTemplate: pulumi.Any(appserverGoogleComputeInstanceTemplate.SelfLinkUnique),
    				},
    				&compute.InstanceGroupManagerVersionArgs{
    					Name:             pulumi.String("appserver-canary"),
    					InstanceTemplate: pulumi.Any(appserver_canary.SelfLinkUnique),
    					TargetSize: &compute.InstanceGroupManagerVersionTargetSizeArgs{
    						Fixed: pulumi.Int(1),
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    
    return await Deployment.RunAsync(() => 
    {
        var appserver = new Gcp.Compute.InstanceGroupManager("appserver", new()
        {
            Name = "appserver-igm",
            BaseInstanceName = "app",
            Zone = "us-central1-a",
            TargetSize = 5,
            Versions = new[]
            {
                new Gcp.Compute.Inputs.InstanceGroupManagerVersionArgs
                {
                    Name = "appserver",
                    InstanceTemplate = appserverGoogleComputeInstanceTemplate.SelfLinkUnique,
                },
                new Gcp.Compute.Inputs.InstanceGroupManagerVersionArgs
                {
                    Name = "appserver-canary",
                    InstanceTemplate = appserver_canary.SelfLinkUnique,
                    TargetSize = new Gcp.Compute.Inputs.InstanceGroupManagerVersionTargetSizeArgs
                    {
                        Fixed = 1,
                    },
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.gcp.compute.InstanceGroupManager;
    import com.pulumi.gcp.compute.InstanceGroupManagerArgs;
    import com.pulumi.gcp.compute.inputs.InstanceGroupManagerVersionArgs;
    import com.pulumi.gcp.compute.inputs.InstanceGroupManagerVersionTargetSizeArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var appserver = new InstanceGroupManager("appserver", InstanceGroupManagerArgs.builder()
                .name("appserver-igm")
                .baseInstanceName("app")
                .zone("us-central1-a")
                .targetSize(5)
                .versions(            
                    InstanceGroupManagerVersionArgs.builder()
                        .name("appserver")
                        .instanceTemplate(appserverGoogleComputeInstanceTemplate.selfLinkUnique())
                        .build(),
                    InstanceGroupManagerVersionArgs.builder()
                        .name("appserver-canary")
                        .instanceTemplate(appserver_canary.selfLinkUnique())
                        .targetSize(InstanceGroupManagerVersionTargetSizeArgs.builder()
                            .fixed(1)
                            .build())
                        .build())
                .build());
    
        }
    }
    
    resources:
      appserver:
        type: gcp:compute:InstanceGroupManager
        properties:
          name: appserver-igm
          baseInstanceName: app
          zone: us-central1-a
          targetSize: 5
          versions:
            - name: appserver
              instanceTemplate: ${appserverGoogleComputeInstanceTemplate.selfLinkUnique}
            - name: appserver-canary
              instanceTemplate: ${["appserver-canary"].selfLinkUnique}
              targetSize:
                fixed: 1
    

    With Standby Policy (Google-Beta Provider)

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const igm_sr = new gcp.compute.InstanceGroupManager("igm-sr", {
        name: "tf-sr-igm",
        baseInstanceName: "tf-sr-igm-instance",
        zone: "us-central1-a",
        targetSize: 5,
        versions: [{
            instanceTemplate: sr_igm.selfLink,
            name: "primary",
        }],
        standbyPolicy: {
            initialDelaySec: 30,
            mode: "MANUAL",
        },
        targetSuspendedSize: 2,
        targetStoppedSize: 1,
    });
    
    import pulumi
    import pulumi_gcp as gcp
    
    igm_sr = gcp.compute.InstanceGroupManager("igm-sr",
        name="tf-sr-igm",
        base_instance_name="tf-sr-igm-instance",
        zone="us-central1-a",
        target_size=5,
        versions=[{
            "instance_template": sr_igm["selfLink"],
            "name": "primary",
        }],
        standby_policy={
            "initial_delay_sec": 30,
            "mode": "MANUAL",
        },
        target_suspended_size=2,
        target_stopped_size=1)
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/compute"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewInstanceGroupManager(ctx, "igm-sr", &compute.InstanceGroupManagerArgs{
    			Name:             pulumi.String("tf-sr-igm"),
    			BaseInstanceName: pulumi.String("tf-sr-igm-instance"),
    			Zone:             pulumi.String("us-central1-a"),
    			TargetSize:       pulumi.Int(5),
    			Versions: compute.InstanceGroupManagerVersionArray{
    				&compute.InstanceGroupManagerVersionArgs{
    					InstanceTemplate: pulumi.Any(sr_igm.SelfLink),
    					Name:             pulumi.String("primary"),
    				},
    			},
    			StandbyPolicy: &compute.InstanceGroupManagerStandbyPolicyArgs{
    				InitialDelaySec: pulumi.Int(30),
    				Mode:            pulumi.String("MANUAL"),
    			},
    			TargetSuspendedSize: pulumi.Int(2),
    			TargetStoppedSize:   pulumi.Int(1),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    
    return await Deployment.RunAsync(() => 
    {
        var igm_sr = new Gcp.Compute.InstanceGroupManager("igm-sr", new()
        {
            Name = "tf-sr-igm",
            BaseInstanceName = "tf-sr-igm-instance",
            Zone = "us-central1-a",
            TargetSize = 5,
            Versions = new[]
            {
                new Gcp.Compute.Inputs.InstanceGroupManagerVersionArgs
                {
                    InstanceTemplate = sr_igm.SelfLink,
                    Name = "primary",
                },
            },
            StandbyPolicy = new Gcp.Compute.Inputs.InstanceGroupManagerStandbyPolicyArgs
            {
                InitialDelaySec = 30,
                Mode = "MANUAL",
            },
            TargetSuspendedSize = 2,
            TargetStoppedSize = 1,
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.gcp.compute.InstanceGroupManager;
    import com.pulumi.gcp.compute.InstanceGroupManagerArgs;
    import com.pulumi.gcp.compute.inputs.InstanceGroupManagerVersionArgs;
    import com.pulumi.gcp.compute.inputs.InstanceGroupManagerStandbyPolicyArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var igm_sr = new InstanceGroupManager("igm-sr", InstanceGroupManagerArgs.builder()
                .name("tf-sr-igm")
                .baseInstanceName("tf-sr-igm-instance")
                .zone("us-central1-a")
                .targetSize(5)
                .versions(InstanceGroupManagerVersionArgs.builder()
                    .instanceTemplate(sr_igm.selfLink())
                    .name("primary")
                    .build())
                .standbyPolicy(InstanceGroupManagerStandbyPolicyArgs.builder()
                    .initialDelaySec(30)
                    .mode("MANUAL")
                    .build())
                .targetSuspendedSize(2)
                .targetStoppedSize(1)
                .build());
    
        }
    }
    
    resources:
      igm-sr:
        type: gcp:compute:InstanceGroupManager
        properties:
          name: tf-sr-igm
          baseInstanceName: tf-sr-igm-instance
          zone: us-central1-a
          targetSize: 5
          versions:
            - instanceTemplate: ${["sr-igm"].selfLink}
              name: primary
          standbyPolicy:
            initialDelaySec: 30
            mode: MANUAL
          targetSuspendedSize: 2
          targetStoppedSize: 1
    

    Create InstanceGroupManager Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new InstanceGroupManager(name: string, args: InstanceGroupManagerArgs, opts?: CustomResourceOptions);
    @overload
    def InstanceGroupManager(resource_name: str,
                             args: InstanceGroupManagerArgs,
                             opts: Optional[ResourceOptions] = None)
    
    @overload
    def InstanceGroupManager(resource_name: str,
                             opts: Optional[ResourceOptions] = None,
                             base_instance_name: Optional[str] = None,
                             versions: Optional[Sequence[InstanceGroupManagerVersionArgs]] = None,
                             standby_policy: Optional[InstanceGroupManagerStandbyPolicyArgs] = None,
                             stateful_internal_ips: Optional[Sequence[InstanceGroupManagerStatefulInternalIpArgs]] = None,
                             instance_lifecycle_policy: Optional[InstanceGroupManagerInstanceLifecyclePolicyArgs] = None,
                             list_managed_instances_results: Optional[str] = None,
                             name: Optional[str] = None,
                             named_ports: Optional[Sequence[InstanceGroupManagerNamedPortArgs]] = None,
                             params: Optional[InstanceGroupManagerParamsArgs] = None,
                             project: Optional[str] = None,
                             all_instances_config: Optional[InstanceGroupManagerAllInstancesConfigArgs] = None,
                             stateful_disks: Optional[Sequence[InstanceGroupManagerStatefulDiskArgs]] = None,
                             stateful_external_ips: Optional[Sequence[InstanceGroupManagerStatefulExternalIpArgs]] = None,
                             description: Optional[str] = None,
                             target_pools: Optional[Sequence[str]] = None,
                             target_size: Optional[int] = None,
                             target_stopped_size: Optional[int] = None,
                             target_suspended_size: Optional[int] = None,
                             update_policy: Optional[InstanceGroupManagerUpdatePolicyArgs] = None,
                             auto_healing_policies: Optional[InstanceGroupManagerAutoHealingPoliciesArgs] = None,
                             wait_for_instances: Optional[bool] = None,
                             wait_for_instances_status: Optional[str] = None,
                             zone: Optional[str] = None)
    func NewInstanceGroupManager(ctx *Context, name string, args InstanceGroupManagerArgs, opts ...ResourceOption) (*InstanceGroupManager, error)
    public InstanceGroupManager(string name, InstanceGroupManagerArgs args, CustomResourceOptions? opts = null)
    public InstanceGroupManager(String name, InstanceGroupManagerArgs args)
    public InstanceGroupManager(String name, InstanceGroupManagerArgs args, CustomResourceOptions options)
    
    type: gcp:compute:InstanceGroupManager
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    

    Parameters

    name string
    The unique name of the resource.
    args InstanceGroupManagerArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    resource_name str
    The unique name of the resource.
    args InstanceGroupManagerArgs
    The arguments to resource properties.
    opts ResourceOptions
    Bag of options to control resource's behavior.
    ctx Context
    Context object for the current deployment.
    name string
    The unique name of the resource.
    args InstanceGroupManagerArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args InstanceGroupManagerArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args InstanceGroupManagerArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Constructor example

    The following reference example uses placeholder values for all input properties.

    var instanceGroupManagerResource = new Gcp.Compute.InstanceGroupManager("instanceGroupManagerResource", new()
    {
        BaseInstanceName = "string",
        Versions = new[]
        {
            new Gcp.Compute.Inputs.InstanceGroupManagerVersionArgs
            {
                InstanceTemplate = "string",
                Name = "string",
                TargetSize = new Gcp.Compute.Inputs.InstanceGroupManagerVersionTargetSizeArgs
                {
                    Fixed = 0,
                    Percent = 0,
                },
            },
        },
        StandbyPolicy = new Gcp.Compute.Inputs.InstanceGroupManagerStandbyPolicyArgs
        {
            InitialDelaySec = 0,
            Mode = "string",
        },
        StatefulInternalIps = new[]
        {
            new Gcp.Compute.Inputs.InstanceGroupManagerStatefulInternalIpArgs
            {
                DeleteRule = "string",
                InterfaceName = "string",
            },
        },
        InstanceLifecyclePolicy = new Gcp.Compute.Inputs.InstanceGroupManagerInstanceLifecyclePolicyArgs
        {
            DefaultActionOnFailure = "string",
            ForceUpdateOnRepair = "string",
        },
        ListManagedInstancesResults = "string",
        Name = "string",
        NamedPorts = new[]
        {
            new Gcp.Compute.Inputs.InstanceGroupManagerNamedPortArgs
            {
                Name = "string",
                Port = 0,
            },
        },
        Params = new Gcp.Compute.Inputs.InstanceGroupManagerParamsArgs
        {
            ResourceManagerTags = 
            {
                { "string", "string" },
            },
        },
        Project = "string",
        AllInstancesConfig = new Gcp.Compute.Inputs.InstanceGroupManagerAllInstancesConfigArgs
        {
            Labels = 
            {
                { "string", "string" },
            },
            Metadata = 
            {
                { "string", "string" },
            },
        },
        StatefulDisks = new[]
        {
            new Gcp.Compute.Inputs.InstanceGroupManagerStatefulDiskArgs
            {
                DeviceName = "string",
                DeleteRule = "string",
            },
        },
        StatefulExternalIps = new[]
        {
            new Gcp.Compute.Inputs.InstanceGroupManagerStatefulExternalIpArgs
            {
                DeleteRule = "string",
                InterfaceName = "string",
            },
        },
        Description = "string",
        TargetPools = new[]
        {
            "string",
        },
        TargetSize = 0,
        TargetStoppedSize = 0,
        TargetSuspendedSize = 0,
        UpdatePolicy = new Gcp.Compute.Inputs.InstanceGroupManagerUpdatePolicyArgs
        {
            MinimalAction = "string",
            Type = "string",
            MaxSurgeFixed = 0,
            MaxSurgePercent = 0,
            MaxUnavailableFixed = 0,
            MaxUnavailablePercent = 0,
            MinReadySec = 0,
            MostDisruptiveAllowedAction = "string",
            ReplacementMethod = "string",
        },
        AutoHealingPolicies = new Gcp.Compute.Inputs.InstanceGroupManagerAutoHealingPoliciesArgs
        {
            HealthCheck = "string",
            InitialDelaySec = 0,
        },
        WaitForInstances = false,
        WaitForInstancesStatus = "string",
        Zone = "string",
    });
    
    example, err := compute.NewInstanceGroupManager(ctx, "instanceGroupManagerResource", &compute.InstanceGroupManagerArgs{
    	BaseInstanceName: pulumi.String("string"),
    	Versions: compute.InstanceGroupManagerVersionArray{
    		&compute.InstanceGroupManagerVersionArgs{
    			InstanceTemplate: pulumi.String("string"),
    			Name:             pulumi.String("string"),
    			TargetSize: &compute.InstanceGroupManagerVersionTargetSizeArgs{
    				Fixed:   pulumi.Int(0),
    				Percent: pulumi.Int(0),
    			},
    		},
    	},
    	StandbyPolicy: &compute.InstanceGroupManagerStandbyPolicyArgs{
    		InitialDelaySec: pulumi.Int(0),
    		Mode:            pulumi.String("string"),
    	},
    	StatefulInternalIps: compute.InstanceGroupManagerStatefulInternalIpArray{
    		&compute.InstanceGroupManagerStatefulInternalIpArgs{
    			DeleteRule:    pulumi.String("string"),
    			InterfaceName: pulumi.String("string"),
    		},
    	},
    	InstanceLifecyclePolicy: &compute.InstanceGroupManagerInstanceLifecyclePolicyArgs{
    		DefaultActionOnFailure: pulumi.String("string"),
    		ForceUpdateOnRepair:    pulumi.String("string"),
    	},
    	ListManagedInstancesResults: pulumi.String("string"),
    	Name:                        pulumi.String("string"),
    	NamedPorts: compute.InstanceGroupManagerNamedPortArray{
    		&compute.InstanceGroupManagerNamedPortArgs{
    			Name: pulumi.String("string"),
    			Port: pulumi.Int(0),
    		},
    	},
    	Params: &compute.InstanceGroupManagerParamsArgs{
    		ResourceManagerTags: pulumi.StringMap{
    			"string": pulumi.String("string"),
    		},
    	},
    	Project: pulumi.String("string"),
    	AllInstancesConfig: &compute.InstanceGroupManagerAllInstancesConfigArgs{
    		Labels: pulumi.StringMap{
    			"string": pulumi.String("string"),
    		},
    		Metadata: pulumi.StringMap{
    			"string": pulumi.String("string"),
    		},
    	},
    	StatefulDisks: compute.InstanceGroupManagerStatefulDiskArray{
    		&compute.InstanceGroupManagerStatefulDiskArgs{
    			DeviceName: pulumi.String("string"),
    			DeleteRule: pulumi.String("string"),
    		},
    	},
    	StatefulExternalIps: compute.InstanceGroupManagerStatefulExternalIpArray{
    		&compute.InstanceGroupManagerStatefulExternalIpArgs{
    			DeleteRule:    pulumi.String("string"),
    			InterfaceName: pulumi.String("string"),
    		},
    	},
    	Description: pulumi.String("string"),
    	TargetPools: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	TargetSize:          pulumi.Int(0),
    	TargetStoppedSize:   pulumi.Int(0),
    	TargetSuspendedSize: pulumi.Int(0),
    	UpdatePolicy: &compute.InstanceGroupManagerUpdatePolicyArgs{
    		MinimalAction:               pulumi.String("string"),
    		Type:                        pulumi.String("string"),
    		MaxSurgeFixed:               pulumi.Int(0),
    		MaxSurgePercent:             pulumi.Int(0),
    		MaxUnavailableFixed:         pulumi.Int(0),
    		MaxUnavailablePercent:       pulumi.Int(0),
    		MinReadySec:                 pulumi.Int(0),
    		MostDisruptiveAllowedAction: pulumi.String("string"),
    		ReplacementMethod:           pulumi.String("string"),
    	},
    	AutoHealingPolicies: &compute.InstanceGroupManagerAutoHealingPoliciesArgs{
    		HealthCheck:     pulumi.String("string"),
    		InitialDelaySec: pulumi.Int(0),
    	},
    	WaitForInstances:       pulumi.Bool(false),
    	WaitForInstancesStatus: pulumi.String("string"),
    	Zone:                   pulumi.String("string"),
    })
    
    var instanceGroupManagerResource = new InstanceGroupManager("instanceGroupManagerResource", InstanceGroupManagerArgs.builder()
        .baseInstanceName("string")
        .versions(InstanceGroupManagerVersionArgs.builder()
            .instanceTemplate("string")
            .name("string")
            .targetSize(InstanceGroupManagerVersionTargetSizeArgs.builder()
                .fixed(0)
                .percent(0)
                .build())
            .build())
        .standbyPolicy(InstanceGroupManagerStandbyPolicyArgs.builder()
            .initialDelaySec(0)
            .mode("string")
            .build())
        .statefulInternalIps(InstanceGroupManagerStatefulInternalIpArgs.builder()
            .deleteRule("string")
            .interfaceName("string")
            .build())
        .instanceLifecyclePolicy(InstanceGroupManagerInstanceLifecyclePolicyArgs.builder()
            .defaultActionOnFailure("string")
            .forceUpdateOnRepair("string")
            .build())
        .listManagedInstancesResults("string")
        .name("string")
        .namedPorts(InstanceGroupManagerNamedPortArgs.builder()
            .name("string")
            .port(0)
            .build())
        .params(InstanceGroupManagerParamsArgs.builder()
            .resourceManagerTags(Map.of("string", "string"))
            .build())
        .project("string")
        .allInstancesConfig(InstanceGroupManagerAllInstancesConfigArgs.builder()
            .labels(Map.of("string", "string"))
            .metadata(Map.of("string", "string"))
            .build())
        .statefulDisks(InstanceGroupManagerStatefulDiskArgs.builder()
            .deviceName("string")
            .deleteRule("string")
            .build())
        .statefulExternalIps(InstanceGroupManagerStatefulExternalIpArgs.builder()
            .deleteRule("string")
            .interfaceName("string")
            .build())
        .description("string")
        .targetPools("string")
        .targetSize(0)
        .targetStoppedSize(0)
        .targetSuspendedSize(0)
        .updatePolicy(InstanceGroupManagerUpdatePolicyArgs.builder()
            .minimalAction("string")
            .type("string")
            .maxSurgeFixed(0)
            .maxSurgePercent(0)
            .maxUnavailableFixed(0)
            .maxUnavailablePercent(0)
            .minReadySec(0)
            .mostDisruptiveAllowedAction("string")
            .replacementMethod("string")
            .build())
        .autoHealingPolicies(InstanceGroupManagerAutoHealingPoliciesArgs.builder()
            .healthCheck("string")
            .initialDelaySec(0)
            .build())
        .waitForInstances(false)
        .waitForInstancesStatus("string")
        .zone("string")
        .build());
    
    instance_group_manager_resource = gcp.compute.InstanceGroupManager("instanceGroupManagerResource",
        base_instance_name="string",
        versions=[{
            "instance_template": "string",
            "name": "string",
            "target_size": {
                "fixed": 0,
                "percent": 0,
            },
        }],
        standby_policy={
            "initial_delay_sec": 0,
            "mode": "string",
        },
        stateful_internal_ips=[{
            "delete_rule": "string",
            "interface_name": "string",
        }],
        instance_lifecycle_policy={
            "default_action_on_failure": "string",
            "force_update_on_repair": "string",
        },
        list_managed_instances_results="string",
        name="string",
        named_ports=[{
            "name": "string",
            "port": 0,
        }],
        params={
            "resource_manager_tags": {
                "string": "string",
            },
        },
        project="string",
        all_instances_config={
            "labels": {
                "string": "string",
            },
            "metadata": {
                "string": "string",
            },
        },
        stateful_disks=[{
            "device_name": "string",
            "delete_rule": "string",
        }],
        stateful_external_ips=[{
            "delete_rule": "string",
            "interface_name": "string",
        }],
        description="string",
        target_pools=["string"],
        target_size=0,
        target_stopped_size=0,
        target_suspended_size=0,
        update_policy={
            "minimal_action": "string",
            "type": "string",
            "max_surge_fixed": 0,
            "max_surge_percent": 0,
            "max_unavailable_fixed": 0,
            "max_unavailable_percent": 0,
            "min_ready_sec": 0,
            "most_disruptive_allowed_action": "string",
            "replacement_method": "string",
        },
        auto_healing_policies={
            "health_check": "string",
            "initial_delay_sec": 0,
        },
        wait_for_instances=False,
        wait_for_instances_status="string",
        zone="string")
    
    const instanceGroupManagerResource = new gcp.compute.InstanceGroupManager("instanceGroupManagerResource", {
        baseInstanceName: "string",
        versions: [{
            instanceTemplate: "string",
            name: "string",
            targetSize: {
                fixed: 0,
                percent: 0,
            },
        }],
        standbyPolicy: {
            initialDelaySec: 0,
            mode: "string",
        },
        statefulInternalIps: [{
            deleteRule: "string",
            interfaceName: "string",
        }],
        instanceLifecyclePolicy: {
            defaultActionOnFailure: "string",
            forceUpdateOnRepair: "string",
        },
        listManagedInstancesResults: "string",
        name: "string",
        namedPorts: [{
            name: "string",
            port: 0,
        }],
        params: {
            resourceManagerTags: {
                string: "string",
            },
        },
        project: "string",
        allInstancesConfig: {
            labels: {
                string: "string",
            },
            metadata: {
                string: "string",
            },
        },
        statefulDisks: [{
            deviceName: "string",
            deleteRule: "string",
        }],
        statefulExternalIps: [{
            deleteRule: "string",
            interfaceName: "string",
        }],
        description: "string",
        targetPools: ["string"],
        targetSize: 0,
        targetStoppedSize: 0,
        targetSuspendedSize: 0,
        updatePolicy: {
            minimalAction: "string",
            type: "string",
            maxSurgeFixed: 0,
            maxSurgePercent: 0,
            maxUnavailableFixed: 0,
            maxUnavailablePercent: 0,
            minReadySec: 0,
            mostDisruptiveAllowedAction: "string",
            replacementMethod: "string",
        },
        autoHealingPolicies: {
            healthCheck: "string",
            initialDelaySec: 0,
        },
        waitForInstances: false,
        waitForInstancesStatus: "string",
        zone: "string",
    });
    
    type: gcp:compute:InstanceGroupManager
    properties:
        allInstancesConfig:
            labels:
                string: string
            metadata:
                string: string
        autoHealingPolicies:
            healthCheck: string
            initialDelaySec: 0
        baseInstanceName: string
        description: string
        instanceLifecyclePolicy:
            defaultActionOnFailure: string
            forceUpdateOnRepair: string
        listManagedInstancesResults: string
        name: string
        namedPorts:
            - name: string
              port: 0
        params:
            resourceManagerTags:
                string: string
        project: string
        standbyPolicy:
            initialDelaySec: 0
            mode: string
        statefulDisks:
            - deleteRule: string
              deviceName: string
        statefulExternalIps:
            - deleteRule: string
              interfaceName: string
        statefulInternalIps:
            - deleteRule: string
              interfaceName: string
        targetPools:
            - string
        targetSize: 0
        targetStoppedSize: 0
        targetSuspendedSize: 0
        updatePolicy:
            maxSurgeFixed: 0
            maxSurgePercent: 0
            maxUnavailableFixed: 0
            maxUnavailablePercent: 0
            minReadySec: 0
            minimalAction: string
            mostDisruptiveAllowedAction: string
            replacementMethod: string
            type: string
        versions:
            - instanceTemplate: string
              name: string
              targetSize:
                fixed: 0
                percent: 0
        waitForInstances: false
        waitForInstancesStatus: string
        zone: string
    

    InstanceGroupManager Resource Properties

    To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

    Inputs

    In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

    The InstanceGroupManager resource accepts the following input properties:

    BaseInstanceName string
    The base instance name to use for instances in this group. The value must be a valid RFC1035 name. Supported characters are lowercase letters, numbers, and hyphens (-). Instances are named by appending a hyphen and a random four-character string to the base instance name.
    Versions List<InstanceGroupManagerVersion>
    Application versions managed by this instance group. Each version deals with a specific instance template, allowing canary release scenarios. Structure is documented below.
    AllInstancesConfig InstanceGroupManagerAllInstancesConfig
    Properties to set on all instances in the group. After setting allInstancesConfig on the group, you must update the group's instances to apply the configuration.
    AutoHealingPolicies InstanceGroupManagerAutoHealingPolicies
    The autohealing policies for this managed instance group. You can specify only one value. Structure is documented below. For more information, see the official documentation.
    Description string
    An optional textual description of the instance group manager.
    InstanceLifecyclePolicy InstanceGroupManagerInstanceLifecyclePolicy
    The instance lifecycle policy for this managed instance group.
    ListManagedInstancesResults string
    Pagination behavior of the listManagedInstances API method for this managed instance group. Valid values are: PAGELESS, PAGINATED. If PAGELESS (default), Pagination is disabled for the group's listManagedInstances API method. maxResults and pageToken query parameters are ignored and all instances are returned in a single response. If PAGINATED, pagination is enabled, maxResults and pageToken query parameters are respected.
    Name string
    The name of the instance group manager. Must be 1-63 characters long and comply with RFC1035. Supported characters include lowercase letters, numbers, and hyphens.
    NamedPorts List<InstanceGroupManagerNamedPort>
    The named port configuration. See the section below for details on configuration.
    Params InstanceGroupManagerParams
    Input only additional params for instance group manager creation. Structure is documented below. For more information, see API.


    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    StandbyPolicy InstanceGroupManagerStandbyPolicy
    The standby policy for stopped and suspended instances. Structure is documented below. For more information, see the official documentation and API
    StatefulDisks List<InstanceGroupManagerStatefulDisk>
    Disks created on the instances that will be preserved on instance delete, update, etc. Structure is documented below. For more information see the official documentation.
    StatefulExternalIps List<InstanceGroupManagerStatefulExternalIp>
    External network IPs assigned to the instances that will be preserved on instance delete, update, etc. This map is keyed with the network interface name. Structure is documented below.
    StatefulInternalIps List<InstanceGroupManagerStatefulInternalIp>
    Internal network IPs assigned to the instances that will be preserved on instance delete, update, etc. This map is keyed with the network interface name. Structure is documented below.
    TargetPools List<string>
    The full URL of all target pools to which new instances in the group are added. Updating the target pools attribute does not affect existing instances.
    TargetSize int
    The target number of running instances for this managed instance group. This value should always be explicitly set unless this resource is attached to an autoscaler, in which case it should never be set. Defaults to 0.
    TargetStoppedSize int
    The target number of stopped instances for this managed instance group.
    TargetSuspendedSize int
    The target number of suspended instances for this managed instance group.
    UpdatePolicy InstanceGroupManagerUpdatePolicy
    The update policy for this managed instance group. Structure is documented below. For more information, see the official documentation and API.
    WaitForInstances bool
    Whether to wait for all instances to be created/updated before returning. Note that if this is set to true and the operation does not succeed, this provider will continue trying until it times out.
    WaitForInstancesStatus string
    When used with wait_for_instances it specifies the status to wait for. When STABLE is specified this resource will wait until the instances are stable before returning. When UPDATED is set, it will wait for the version target to be reached and any per instance configs to be effective as well as all instances to be stable before returning. The possible values are STABLE and UPDATED
    Zone string
    The zone that instances in this group should be created in.


    BaseInstanceName string
    The base instance name to use for instances in this group. The value must be a valid RFC1035 name. Supported characters are lowercase letters, numbers, and hyphens (-). Instances are named by appending a hyphen and a random four-character string to the base instance name.
    Versions []InstanceGroupManagerVersionArgs
    Application versions managed by this instance group. Each version deals with a specific instance template, allowing canary release scenarios. Structure is documented below.
    AllInstancesConfig InstanceGroupManagerAllInstancesConfigArgs
    Properties to set on all instances in the group. After setting allInstancesConfig on the group, you must update the group's instances to apply the configuration.
    AutoHealingPolicies InstanceGroupManagerAutoHealingPoliciesArgs
    The autohealing policies for this managed instance group. You can specify only one value. Structure is documented below. For more information, see the official documentation.
    Description string
    An optional textual description of the instance group manager.
    InstanceLifecyclePolicy InstanceGroupManagerInstanceLifecyclePolicyArgs
    The instance lifecycle policy for this managed instance group.
    ListManagedInstancesResults string
    Pagination behavior of the listManagedInstances API method for this managed instance group. Valid values are: PAGELESS, PAGINATED. If PAGELESS (default), Pagination is disabled for the group's listManagedInstances API method. maxResults and pageToken query parameters are ignored and all instances are returned in a single response. If PAGINATED, pagination is enabled, maxResults and pageToken query parameters are respected.
    Name string
    The name of the instance group manager. Must be 1-63 characters long and comply with RFC1035. Supported characters include lowercase letters, numbers, and hyphens.
    NamedPorts []InstanceGroupManagerNamedPortArgs
    The named port configuration. See the section below for details on configuration.
    Params InstanceGroupManagerParamsArgs
    Input only additional params for instance group manager creation. Structure is documented below. For more information, see API.


    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    StandbyPolicy InstanceGroupManagerStandbyPolicyArgs
    The standby policy for stopped and suspended instances. Structure is documented below. For more information, see the official documentation and API
    StatefulDisks []InstanceGroupManagerStatefulDiskArgs
    Disks created on the instances that will be preserved on instance delete, update, etc. Structure is documented below. For more information see the official documentation.
    StatefulExternalIps []InstanceGroupManagerStatefulExternalIpArgs
    External network IPs assigned to the instances that will be preserved on instance delete, update, etc. This map is keyed with the network interface name. Structure is documented below.
    StatefulInternalIps []InstanceGroupManagerStatefulInternalIpArgs
    Internal network IPs assigned to the instances that will be preserved on instance delete, update, etc. This map is keyed with the network interface name. Structure is documented below.
    TargetPools []string
    The full URL of all target pools to which new instances in the group are added. Updating the target pools attribute does not affect existing instances.
    TargetSize int
    The target number of running instances for this managed instance group. This value should always be explicitly set unless this resource is attached to an autoscaler, in which case it should never be set. Defaults to 0.
    TargetStoppedSize int
    The target number of stopped instances for this managed instance group.
    TargetSuspendedSize int
    The target number of suspended instances for this managed instance group.
    UpdatePolicy InstanceGroupManagerUpdatePolicyArgs
    The update policy for this managed instance group. Structure is documented below. For more information, see the official documentation and API.
    WaitForInstances bool
    Whether to wait for all instances to be created/updated before returning. Note that if this is set to true and the operation does not succeed, this provider will continue trying until it times out.
    WaitForInstancesStatus string
    When used with wait_for_instances it specifies the status to wait for. When STABLE is specified this resource will wait until the instances are stable before returning. When UPDATED is set, it will wait for the version target to be reached and any per instance configs to be effective as well as all instances to be stable before returning. The possible values are STABLE and UPDATED
    Zone string
    The zone that instances in this group should be created in.


    baseInstanceName String
    The base instance name to use for instances in this group. The value must be a valid RFC1035 name. Supported characters are lowercase letters, numbers, and hyphens (-). Instances are named by appending a hyphen and a random four-character string to the base instance name.
    versions List<InstanceGroupManagerVersion>
    Application versions managed by this instance group. Each version deals with a specific instance template, allowing canary release scenarios. Structure is documented below.
    allInstancesConfig InstanceGroupManagerAllInstancesConfig
    Properties to set on all instances in the group. After setting allInstancesConfig on the group, you must update the group's instances to apply the configuration.
    autoHealingPolicies InstanceGroupManagerAutoHealingPolicies
    The autohealing policies for this managed instance group. You can specify only one value. Structure is documented below. For more information, see the official documentation.
    description String
    An optional textual description of the instance group manager.
    instanceLifecyclePolicy InstanceGroupManagerInstanceLifecyclePolicy
    The instance lifecycle policy for this managed instance group.
    listManagedInstancesResults String
    Pagination behavior of the listManagedInstances API method for this managed instance group. Valid values are: PAGELESS, PAGINATED. If PAGELESS (default), Pagination is disabled for the group's listManagedInstances API method. maxResults and pageToken query parameters are ignored and all instances are returned in a single response. If PAGINATED, pagination is enabled, maxResults and pageToken query parameters are respected.
    name String
    The name of the instance group manager. Must be 1-63 characters long and comply with RFC1035. Supported characters include lowercase letters, numbers, and hyphens.
    namedPorts List<InstanceGroupManagerNamedPort>
    The named port configuration. See the section below for details on configuration.
    params InstanceGroupManagerParams
    Input only additional params for instance group manager creation. Structure is documented below. For more information, see API.


    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    standbyPolicy InstanceGroupManagerStandbyPolicy
    The standby policy for stopped and suspended instances. Structure is documented below. For more information, see the official documentation and API
    statefulDisks List<InstanceGroupManagerStatefulDisk>
    Disks created on the instances that will be preserved on instance delete, update, etc. Structure is documented below. For more information see the official documentation.
    statefulExternalIps List<InstanceGroupManagerStatefulExternalIp>
    External network IPs assigned to the instances that will be preserved on instance delete, update, etc. This map is keyed with the network interface name. Structure is documented below.
    statefulInternalIps List<InstanceGroupManagerStatefulInternalIp>
    Internal network IPs assigned to the instances that will be preserved on instance delete, update, etc. This map is keyed with the network interface name. Structure is documented below.
    targetPools List<String>
    The full URL of all target pools to which new instances in the group are added. Updating the target pools attribute does not affect existing instances.
    targetSize Integer
    The target number of running instances for this managed instance group. This value should always be explicitly set unless this resource is attached to an autoscaler, in which case it should never be set. Defaults to 0.
    targetStoppedSize Integer
    The target number of stopped instances for this managed instance group.
    targetSuspendedSize Integer
    The target number of suspended instances for this managed instance group.
    updatePolicy InstanceGroupManagerUpdatePolicy
    The update policy for this managed instance group. Structure is documented below. For more information, see the official documentation and API.
    waitForInstances Boolean
    Whether to wait for all instances to be created/updated before returning. Note that if this is set to true and the operation does not succeed, this provider will continue trying until it times out.
    waitForInstancesStatus String
    When used with wait_for_instances it specifies the status to wait for. When STABLE is specified this resource will wait until the instances are stable before returning. When UPDATED is set, it will wait for the version target to be reached and any per instance configs to be effective as well as all instances to be stable before returning. The possible values are STABLE and UPDATED
    zone String
    The zone that instances in this group should be created in.


    baseInstanceName string
    The base instance name to use for instances in this group. The value must be a valid RFC1035 name. Supported characters are lowercase letters, numbers, and hyphens (-). Instances are named by appending a hyphen and a random four-character string to the base instance name.
    versions InstanceGroupManagerVersion[]
    Application versions managed by this instance group. Each version deals with a specific instance template, allowing canary release scenarios. Structure is documented below.
    allInstancesConfig InstanceGroupManagerAllInstancesConfig
    Properties to set on all instances in the group. After setting allInstancesConfig on the group, you must update the group's instances to apply the configuration.
    autoHealingPolicies InstanceGroupManagerAutoHealingPolicies
    The autohealing policies for this managed instance group. You can specify only one value. Structure is documented below. For more information, see the official documentation.
    description string
    An optional textual description of the instance group manager.
    instanceLifecyclePolicy InstanceGroupManagerInstanceLifecyclePolicy
    The instance lifecycle policy for this managed instance group.
    listManagedInstancesResults string
    Pagination behavior of the listManagedInstances API method for this managed instance group. Valid values are: PAGELESS, PAGINATED. If PAGELESS (default), Pagination is disabled for the group's listManagedInstances API method. maxResults and pageToken query parameters are ignored and all instances are returned in a single response. If PAGINATED, pagination is enabled, maxResults and pageToken query parameters are respected.
    name string
    The name of the instance group manager. Must be 1-63 characters long and comply with RFC1035. Supported characters include lowercase letters, numbers, and hyphens.
    namedPorts InstanceGroupManagerNamedPort[]
    The named port configuration. See the section below for details on configuration.
    params InstanceGroupManagerParams
    Input only additional params for instance group manager creation. Structure is documented below. For more information, see API.


    project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    standbyPolicy InstanceGroupManagerStandbyPolicy
    The standby policy for stopped and suspended instances. Structure is documented below. For more information, see the official documentation and API
    statefulDisks InstanceGroupManagerStatefulDisk[]
    Disks created on the instances that will be preserved on instance delete, update, etc. Structure is documented below. For more information see the official documentation.
    statefulExternalIps InstanceGroupManagerStatefulExternalIp[]
    External network IPs assigned to the instances that will be preserved on instance delete, update, etc. This map is keyed with the network interface name. Structure is documented below.
    statefulInternalIps InstanceGroupManagerStatefulInternalIp[]
    Internal network IPs assigned to the instances that will be preserved on instance delete, update, etc. This map is keyed with the network interface name. Structure is documented below.
    targetPools string[]
    The full URL of all target pools to which new instances in the group are added. Updating the target pools attribute does not affect existing instances.
    targetSize number
    The target number of running instances for this managed instance group. This value should always be explicitly set unless this resource is attached to an autoscaler, in which case it should never be set. Defaults to 0.
    targetStoppedSize number
    The target number of stopped instances for this managed instance group.
    targetSuspendedSize number
    The target number of suspended instances for this managed instance group.
    updatePolicy InstanceGroupManagerUpdatePolicy
    The update policy for this managed instance group. Structure is documented below. For more information, see the official documentation and API.
    waitForInstances boolean
    Whether to wait for all instances to be created/updated before returning. Note that if this is set to true and the operation does not succeed, this provider will continue trying until it times out.
    waitForInstancesStatus string
    When used with wait_for_instances it specifies the status to wait for. When STABLE is specified this resource will wait until the instances are stable before returning. When UPDATED is set, it will wait for the version target to be reached and any per instance configs to be effective as well as all instances to be stable before returning. The possible values are STABLE and UPDATED
    zone string
    The zone that instances in this group should be created in.


    base_instance_name str
    The base instance name to use for instances in this group. The value must be a valid RFC1035 name. Supported characters are lowercase letters, numbers, and hyphens (-). Instances are named by appending a hyphen and a random four-character string to the base instance name.
    versions Sequence[InstanceGroupManagerVersionArgs]
    Application versions managed by this instance group. Each version deals with a specific instance template, allowing canary release scenarios. Structure is documented below.
    all_instances_config InstanceGroupManagerAllInstancesConfigArgs
    Properties to set on all instances in the group. After setting allInstancesConfig on the group, you must update the group's instances to apply the configuration.
    auto_healing_policies InstanceGroupManagerAutoHealingPoliciesArgs
    The autohealing policies for this managed instance group. You can specify only one value. Structure is documented below. For more information, see the official documentation.
    description str
    An optional textual description of the instance group manager.
    instance_lifecycle_policy InstanceGroupManagerInstanceLifecyclePolicyArgs
    The instance lifecycle policy for this managed instance group.
    list_managed_instances_results str
    Pagination behavior of the listManagedInstances API method for this managed instance group. Valid values are: PAGELESS, PAGINATED. If PAGELESS (default), Pagination is disabled for the group's listManagedInstances API method. maxResults and pageToken query parameters are ignored and all instances are returned in a single response. If PAGINATED, pagination is enabled, maxResults and pageToken query parameters are respected.
    name str
    The name of the instance group manager. Must be 1-63 characters long and comply with RFC1035. Supported characters include lowercase letters, numbers, and hyphens.
    named_ports Sequence[InstanceGroupManagerNamedPortArgs]
    The named port configuration. See the section below for details on configuration.
    params InstanceGroupManagerParamsArgs
    Input only additional params for instance group manager creation. Structure is documented below. For more information, see API.


    project str
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    standby_policy InstanceGroupManagerStandbyPolicyArgs
    The standby policy for stopped and suspended instances. Structure is documented below. For more information, see the official documentation and API
    stateful_disks Sequence[InstanceGroupManagerStatefulDiskArgs]
    Disks created on the instances that will be preserved on instance delete, update, etc. Structure is documented below. For more information see the official documentation.
    stateful_external_ips Sequence[InstanceGroupManagerStatefulExternalIpArgs]
    External network IPs assigned to the instances that will be preserved on instance delete, update, etc. This map is keyed with the network interface name. Structure is documented below.
    stateful_internal_ips Sequence[InstanceGroupManagerStatefulInternalIpArgs]
    Internal network IPs assigned to the instances that will be preserved on instance delete, update, etc. This map is keyed with the network interface name. Structure is documented below.
    target_pools Sequence[str]
    The full URL of all target pools to which new instances in the group are added. Updating the target pools attribute does not affect existing instances.
    target_size int
    The target number of running instances for this managed instance group. This value should always be explicitly set unless this resource is attached to an autoscaler, in which case it should never be set. Defaults to 0.
    target_stopped_size int
    The target number of stopped instances for this managed instance group.
    target_suspended_size int
    The target number of suspended instances for this managed instance group.
    update_policy InstanceGroupManagerUpdatePolicyArgs
    The update policy for this managed instance group. Structure is documented below. For more information, see the official documentation and API.
    wait_for_instances bool
    Whether to wait for all instances to be created/updated before returning. Note that if this is set to true and the operation does not succeed, this provider will continue trying until it times out.
    wait_for_instances_status str
    When used with wait_for_instances it specifies the status to wait for. When STABLE is specified this resource will wait until the instances are stable before returning. When UPDATED is set, it will wait for the version target to be reached and any per instance configs to be effective as well as all instances to be stable before returning. The possible values are STABLE and UPDATED
    zone str
    The zone that instances in this group should be created in.


    baseInstanceName String
    The base instance name to use for instances in this group. The value must be a valid RFC1035 name. Supported characters are lowercase letters, numbers, and hyphens (-). Instances are named by appending a hyphen and a random four-character string to the base instance name.
    versions List<Property Map>
    Application versions managed by this instance group. Each version deals with a specific instance template, allowing canary release scenarios. Structure is documented below.
    allInstancesConfig Property Map
    Properties to set on all instances in the group. After setting allInstancesConfig on the group, you must update the group's instances to apply the configuration.
    autoHealingPolicies Property Map
    The autohealing policies for this managed instance group. You can specify only one value. Structure is documented below. For more information, see the official documentation.
    description String
    An optional textual description of the instance group manager.
    instanceLifecyclePolicy Property Map
    The instance lifecycle policy for this managed instance group.
    listManagedInstancesResults String
    Pagination behavior of the listManagedInstances API method for this managed instance group. Valid values are: PAGELESS, PAGINATED. If PAGELESS (default), Pagination is disabled for the group's listManagedInstances API method. maxResults and pageToken query parameters are ignored and all instances are returned in a single response. If PAGINATED, pagination is enabled, maxResults and pageToken query parameters are respected.
    name String
    The name of the instance group manager. Must be 1-63 characters long and comply with RFC1035. Supported characters include lowercase letters, numbers, and hyphens.
    namedPorts List<Property Map>
    The named port configuration. See the section below for details on configuration.
    params Property Map
    Input only additional params for instance group manager creation. Structure is documented below. For more information, see API.


    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    standbyPolicy Property Map
    The standby policy for stopped and suspended instances. Structure is documented below. For more information, see the official documentation and API
    statefulDisks List<Property Map>
    Disks created on the instances that will be preserved on instance delete, update, etc. Structure is documented below. For more information see the official documentation.
    statefulExternalIps List<Property Map>
    External network IPs assigned to the instances that will be preserved on instance delete, update, etc. This map is keyed with the network interface name. Structure is documented below.
    statefulInternalIps List<Property Map>
    Internal network IPs assigned to the instances that will be preserved on instance delete, update, etc. This map is keyed with the network interface name. Structure is documented below.
    targetPools List<String>
    The full URL of all target pools to which new instances in the group are added. Updating the target pools attribute does not affect existing instances.
    targetSize Number
    The target number of running instances for this managed instance group. This value should always be explicitly set unless this resource is attached to an autoscaler, in which case it should never be set. Defaults to 0.
    targetStoppedSize Number
    The target number of stopped instances for this managed instance group.
    targetSuspendedSize Number
    The target number of suspended instances for this managed instance group.
    updatePolicy Property Map
    The update policy for this managed instance group. Structure is documented below. For more information, see the official documentation and API.
    waitForInstances Boolean
    Whether to wait for all instances to be created/updated before returning. Note that if this is set to true and the operation does not succeed, this provider will continue trying until it times out.
    waitForInstancesStatus String
    When used with wait_for_instances it specifies the status to wait for. When STABLE is specified this resource will wait until the instances are stable before returning. When UPDATED is set, it will wait for the version target to be reached and any per instance configs to be effective as well as all instances to be stable before returning. The possible values are STABLE and UPDATED
    zone String
    The zone that instances in this group should be created in.


    Outputs

    All input properties are implicitly available as output properties. Additionally, the InstanceGroupManager resource produces the following output properties:

    CreationTimestamp string
    Creation timestamp in RFC3339 text format.
    Fingerprint string
    The fingerprint of the instance group manager.
    Id string
    The provider-assigned unique ID for this managed resource.
    InstanceGroup string
    The full URL of the instance group created by the manager.
    Operation string
    SelfLink string
    The URL of the created resource.
    Statuses List<InstanceGroupManagerStatus>
    The status of this managed instance group.
    CreationTimestamp string
    Creation timestamp in RFC3339 text format.
    Fingerprint string
    The fingerprint of the instance group manager.
    Id string
    The provider-assigned unique ID for this managed resource.
    InstanceGroup string
    The full URL of the instance group created by the manager.
    Operation string
    SelfLink string
    The URL of the created resource.
    Statuses []InstanceGroupManagerStatus
    The status of this managed instance group.
    creationTimestamp String
    Creation timestamp in RFC3339 text format.
    fingerprint String
    The fingerprint of the instance group manager.
    id String
    The provider-assigned unique ID for this managed resource.
    instanceGroup String
    The full URL of the instance group created by the manager.
    operation String
    selfLink String
    The URL of the created resource.
    statuses List<InstanceGroupManagerStatus>
    The status of this managed instance group.
    creationTimestamp string
    Creation timestamp in RFC3339 text format.
    fingerprint string
    The fingerprint of the instance group manager.
    id string
    The provider-assigned unique ID for this managed resource.
    instanceGroup string
    The full URL of the instance group created by the manager.
    operation string
    selfLink string
    The URL of the created resource.
    statuses InstanceGroupManagerStatus[]
    The status of this managed instance group.
    creation_timestamp str
    Creation timestamp in RFC3339 text format.
    fingerprint str
    The fingerprint of the instance group manager.
    id str
    The provider-assigned unique ID for this managed resource.
    instance_group str
    The full URL of the instance group created by the manager.
    operation str
    self_link str
    The URL of the created resource.
    statuses Sequence[InstanceGroupManagerStatus]
    The status of this managed instance group.
    creationTimestamp String
    Creation timestamp in RFC3339 text format.
    fingerprint String
    The fingerprint of the instance group manager.
    id String
    The provider-assigned unique ID for this managed resource.
    instanceGroup String
    The full URL of the instance group created by the manager.
    operation String
    selfLink String
    The URL of the created resource.
    statuses List<Property Map>
    The status of this managed instance group.

    Look up Existing InstanceGroupManager Resource

    Get an existing InstanceGroupManager resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

    public static get(name: string, id: Input<ID>, state?: InstanceGroupManagerState, opts?: CustomResourceOptions): InstanceGroupManager
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            all_instances_config: Optional[InstanceGroupManagerAllInstancesConfigArgs] = None,
            auto_healing_policies: Optional[InstanceGroupManagerAutoHealingPoliciesArgs] = None,
            base_instance_name: Optional[str] = None,
            creation_timestamp: Optional[str] = None,
            description: Optional[str] = None,
            fingerprint: Optional[str] = None,
            instance_group: Optional[str] = None,
            instance_lifecycle_policy: Optional[InstanceGroupManagerInstanceLifecyclePolicyArgs] = None,
            list_managed_instances_results: Optional[str] = None,
            name: Optional[str] = None,
            named_ports: Optional[Sequence[InstanceGroupManagerNamedPortArgs]] = None,
            operation: Optional[str] = None,
            params: Optional[InstanceGroupManagerParamsArgs] = None,
            project: Optional[str] = None,
            self_link: Optional[str] = None,
            standby_policy: Optional[InstanceGroupManagerStandbyPolicyArgs] = None,
            stateful_disks: Optional[Sequence[InstanceGroupManagerStatefulDiskArgs]] = None,
            stateful_external_ips: Optional[Sequence[InstanceGroupManagerStatefulExternalIpArgs]] = None,
            stateful_internal_ips: Optional[Sequence[InstanceGroupManagerStatefulInternalIpArgs]] = None,
            statuses: Optional[Sequence[InstanceGroupManagerStatusArgs]] = None,
            target_pools: Optional[Sequence[str]] = None,
            target_size: Optional[int] = None,
            target_stopped_size: Optional[int] = None,
            target_suspended_size: Optional[int] = None,
            update_policy: Optional[InstanceGroupManagerUpdatePolicyArgs] = None,
            versions: Optional[Sequence[InstanceGroupManagerVersionArgs]] = None,
            wait_for_instances: Optional[bool] = None,
            wait_for_instances_status: Optional[str] = None,
            zone: Optional[str] = None) -> InstanceGroupManager
    func GetInstanceGroupManager(ctx *Context, name string, id IDInput, state *InstanceGroupManagerState, opts ...ResourceOption) (*InstanceGroupManager, error)
    public static InstanceGroupManager Get(string name, Input<string> id, InstanceGroupManagerState? state, CustomResourceOptions? opts = null)
    public static InstanceGroupManager get(String name, Output<String> id, InstanceGroupManagerState state, CustomResourceOptions options)
    Resource lookup is not supported in YAML
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    resource_name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    The following state arguments are supported:
    AllInstancesConfig InstanceGroupManagerAllInstancesConfig
    Properties to set on all instances in the group. After setting allInstancesConfig on the group, you must update the group's instances to apply the configuration.
    AutoHealingPolicies InstanceGroupManagerAutoHealingPolicies
    The autohealing policies for this managed instance group. You can specify only one value. Structure is documented below. For more information, see the official documentation.
    BaseInstanceName string
    The base instance name to use for instances in this group. The value must be a valid RFC1035 name. Supported characters are lowercase letters, numbers, and hyphens (-). Instances are named by appending a hyphen and a random four-character string to the base instance name.
    CreationTimestamp string
    Creation timestamp in RFC3339 text format.
    Description string
    An optional textual description of the instance group manager.
    Fingerprint string
    The fingerprint of the instance group manager.
    InstanceGroup string
    The full URL of the instance group created by the manager.
    InstanceLifecyclePolicy InstanceGroupManagerInstanceLifecyclePolicy
    The instance lifecycle policy for this managed instance group.
    ListManagedInstancesResults string
    Pagination behavior of the listManagedInstances API method for this managed instance group. Valid values are: PAGELESS, PAGINATED. If PAGELESS (default), Pagination is disabled for the group's listManagedInstances API method. maxResults and pageToken query parameters are ignored and all instances are returned in a single response. If PAGINATED, pagination is enabled, maxResults and pageToken query parameters are respected.
    Name string
    The name of the instance group manager. Must be 1-63 characters long and comply with RFC1035. Supported characters include lowercase letters, numbers, and hyphens.
    NamedPorts List<InstanceGroupManagerNamedPort>
    The named port configuration. See the section below for details on configuration.
    Operation string
    Params InstanceGroupManagerParams
    Input only additional params for instance group manager creation. Structure is documented below. For more information, see API.


    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    SelfLink string
    The URL of the created resource.
    StandbyPolicy InstanceGroupManagerStandbyPolicy
    The standby policy for stopped and suspended instances. Structure is documented below. For more information, see the official documentation and API
    StatefulDisks List<InstanceGroupManagerStatefulDisk>
    Disks created on the instances that will be preserved on instance delete, update, etc. Structure is documented below. For more information see the official documentation.
    StatefulExternalIps List<InstanceGroupManagerStatefulExternalIp>
    External network IPs assigned to the instances that will be preserved on instance delete, update, etc. This map is keyed with the network interface name. Structure is documented below.
    StatefulInternalIps List<InstanceGroupManagerStatefulInternalIp>
    Internal network IPs assigned to the instances that will be preserved on instance delete, update, etc. This map is keyed with the network interface name. Structure is documented below.
    Statuses List<InstanceGroupManagerStatus>
    The status of this managed instance group.
    TargetPools List<string>
    The full URL of all target pools to which new instances in the group are added. Updating the target pools attribute does not affect existing instances.
    TargetSize int
    The target number of running instances for this managed instance group. This value should always be explicitly set unless this resource is attached to an autoscaler, in which case it should never be set. Defaults to 0.
    TargetStoppedSize int
    The target number of stopped instances for this managed instance group.
    TargetSuspendedSize int
    The target number of suspended instances for this managed instance group.
    UpdatePolicy InstanceGroupManagerUpdatePolicy
    The update policy for this managed instance group. Structure is documented below. For more information, see the official documentation and API.
    Versions List<InstanceGroupManagerVersion>
    Application versions managed by this instance group. Each version deals with a specific instance template, allowing canary release scenarios. Structure is documented below.
    WaitForInstances bool
    Whether to wait for all instances to be created/updated before returning. Note that if this is set to true and the operation does not succeed, this provider will continue trying until it times out.
    WaitForInstancesStatus string
    When used with wait_for_instances it specifies the status to wait for. When STABLE is specified this resource will wait until the instances are stable before returning. When UPDATED is set, it will wait for the version target to be reached and any per instance configs to be effective as well as all instances to be stable before returning. The possible values are STABLE and UPDATED
    Zone string
    The zone that instances in this group should be created in.


    AllInstancesConfig InstanceGroupManagerAllInstancesConfigArgs
    Properties to set on all instances in the group. After setting allInstancesConfig on the group, you must update the group's instances to apply the configuration.
    AutoHealingPolicies InstanceGroupManagerAutoHealingPoliciesArgs
    The autohealing policies for this managed instance group. You can specify only one value. Structure is documented below. For more information, see the official documentation.
    BaseInstanceName string
    The base instance name to use for instances in this group. The value must be a valid RFC1035 name. Supported characters are lowercase letters, numbers, and hyphens (-). Instances are named by appending a hyphen and a random four-character string to the base instance name.
    CreationTimestamp string
    Creation timestamp in RFC3339 text format.
    Description string
    An optional textual description of the instance group manager.
    Fingerprint string
    The fingerprint of the instance group manager.
    InstanceGroup string
    The full URL of the instance group created by the manager.
    InstanceLifecyclePolicy InstanceGroupManagerInstanceLifecyclePolicyArgs
    The instance lifecycle policy for this managed instance group.
    ListManagedInstancesResults string
    Pagination behavior of the listManagedInstances API method for this managed instance group. Valid values are: PAGELESS, PAGINATED. If PAGELESS (default), Pagination is disabled for the group's listManagedInstances API method. maxResults and pageToken query parameters are ignored and all instances are returned in a single response. If PAGINATED, pagination is enabled, maxResults and pageToken query parameters are respected.
    Name string
    The name of the instance group manager. Must be 1-63 characters long and comply with RFC1035. Supported characters include lowercase letters, numbers, and hyphens.
    NamedPorts []InstanceGroupManagerNamedPortArgs
    The named port configuration. See the section below for details on configuration.
    Operation string
    Params InstanceGroupManagerParamsArgs
    Input only additional params for instance group manager creation. Structure is documented below. For more information, see API.


    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    SelfLink string
    The URL of the created resource.
    StandbyPolicy InstanceGroupManagerStandbyPolicyArgs
    The standby policy for stopped and suspended instances. Structure is documented below. For more information, see the official documentation and API
    StatefulDisks []InstanceGroupManagerStatefulDiskArgs
    Disks created on the instances that will be preserved on instance delete, update, etc. Structure is documented below. For more information see the official documentation.
    StatefulExternalIps []InstanceGroupManagerStatefulExternalIpArgs
    External network IPs assigned to the instances that will be preserved on instance delete, update, etc. This map is keyed with the network interface name. Structure is documented below.
    StatefulInternalIps []InstanceGroupManagerStatefulInternalIpArgs
    Internal network IPs assigned to the instances that will be preserved on instance delete, update, etc. This map is keyed with the network interface name. Structure is documented below.
    Statuses []InstanceGroupManagerStatusArgs
    The status of this managed instance group.
    TargetPools []string
    The full URL of all target pools to which new instances in the group are added. Updating the target pools attribute does not affect existing instances.
    TargetSize int
    The target number of running instances for this managed instance group. This value should always be explicitly set unless this resource is attached to an autoscaler, in which case it should never be set. Defaults to 0.
    TargetStoppedSize int
    The target number of stopped instances for this managed instance group.
    TargetSuspendedSize int
    The target number of suspended instances for this managed instance group.
    UpdatePolicy InstanceGroupManagerUpdatePolicyArgs
    The update policy for this managed instance group. Structure is documented below. For more information, see the official documentation and API.
    Versions []InstanceGroupManagerVersionArgs
    Application versions managed by this instance group. Each version deals with a specific instance template, allowing canary release scenarios. Structure is documented below.
    WaitForInstances bool
    Whether to wait for all instances to be created/updated before returning. Note that if this is set to true and the operation does not succeed, this provider will continue trying until it times out.
    WaitForInstancesStatus string
    When used with wait_for_instances it specifies the status to wait for. When STABLE is specified this resource will wait until the instances are stable before returning. When UPDATED is set, it will wait for the version target to be reached and any per instance configs to be effective as well as all instances to be stable before returning. The possible values are STABLE and UPDATED
    Zone string
    The zone that instances in this group should be created in.


    allInstancesConfig InstanceGroupManagerAllInstancesConfig
    Properties to set on all instances in the group. After setting allInstancesConfig on the group, you must update the group's instances to apply the configuration.
    autoHealingPolicies InstanceGroupManagerAutoHealingPolicies
    The autohealing policies for this managed instance group. You can specify only one value. Structure is documented below. For more information, see the official documentation.
    baseInstanceName String
    The base instance name to use for instances in this group. The value must be a valid RFC1035 name. Supported characters are lowercase letters, numbers, and hyphens (-). Instances are named by appending a hyphen and a random four-character string to the base instance name.
    creationTimestamp String
    Creation timestamp in RFC3339 text format.
    description String
    An optional textual description of the instance group manager.
    fingerprint String
    The fingerprint of the instance group manager.
    instanceGroup String
    The full URL of the instance group created by the manager.
    instanceLifecyclePolicy InstanceGroupManagerInstanceLifecyclePolicy
    The instance lifecycle policy for this managed instance group.
    listManagedInstancesResults String
    Pagination behavior of the listManagedInstances API method for this managed instance group. Valid values are: PAGELESS, PAGINATED. If PAGELESS (default), Pagination is disabled for the group's listManagedInstances API method. maxResults and pageToken query parameters are ignored and all instances are returned in a single response. If PAGINATED, pagination is enabled, maxResults and pageToken query parameters are respected.
    name String
    The name of the instance group manager. Must be 1-63 characters long and comply with RFC1035. Supported characters include lowercase letters, numbers, and hyphens.
    namedPorts List<InstanceGroupManagerNamedPort>
    The named port configuration. See the section below for details on configuration.
    operation String
    params InstanceGroupManagerParams
    Input only additional params for instance group manager creation. Structure is documented below. For more information, see API.


    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    selfLink String
    The URL of the created resource.
    standbyPolicy InstanceGroupManagerStandbyPolicy
    The standby policy for stopped and suspended instances. Structure is documented below. For more information, see the official documentation and API
    statefulDisks List<InstanceGroupManagerStatefulDisk>
    Disks created on the instances that will be preserved on instance delete, update, etc. Structure is documented below. For more information see the official documentation.
    statefulExternalIps List<InstanceGroupManagerStatefulExternalIp>
    External network IPs assigned to the instances that will be preserved on instance delete, update, etc. This map is keyed with the network interface name. Structure is documented below.
    statefulInternalIps List<InstanceGroupManagerStatefulInternalIp>
    Internal network IPs assigned to the instances that will be preserved on instance delete, update, etc. This map is keyed with the network interface name. Structure is documented below.
    statuses List<InstanceGroupManagerStatus>
    The status of this managed instance group.
    targetPools List<String>
    The full URL of all target pools to which new instances in the group are added. Updating the target pools attribute does not affect existing instances.
    targetSize Integer
    The target number of running instances for this managed instance group. This value should always be explicitly set unless this resource is attached to an autoscaler, in which case it should never be set. Defaults to 0.
    targetStoppedSize Integer
    The target number of stopped instances for this managed instance group.
    targetSuspendedSize Integer
    The target number of suspended instances for this managed instance group.
    updatePolicy InstanceGroupManagerUpdatePolicy
    The update policy for this managed instance group. Structure is documented below. For more information, see the official documentation and API.
    versions List<InstanceGroupManagerVersion>
    Application versions managed by this instance group. Each version deals with a specific instance template, allowing canary release scenarios. Structure is documented below.
    waitForInstances Boolean
    Whether to wait for all instances to be created/updated before returning. Note that if this is set to true and the operation does not succeed, this provider will continue trying until it times out.
    waitForInstancesStatus String
    When used with wait_for_instances it specifies the status to wait for. When STABLE is specified this resource will wait until the instances are stable before returning. When UPDATED is set, it will wait for the version target to be reached and any per instance configs to be effective as well as all instances to be stable before returning. The possible values are STABLE and UPDATED
    zone String
    The zone that instances in this group should be created in.


    allInstancesConfig InstanceGroupManagerAllInstancesConfig
    Properties to set on all instances in the group. After setting allInstancesConfig on the group, you must update the group's instances to apply the configuration.
    autoHealingPolicies InstanceGroupManagerAutoHealingPolicies
    The autohealing policies for this managed instance group. You can specify only one value. Structure is documented below. For more information, see the official documentation.
    baseInstanceName string
    The base instance name to use for instances in this group. The value must be a valid RFC1035 name. Supported characters are lowercase letters, numbers, and hyphens (-). Instances are named by appending a hyphen and a random four-character string to the base instance name.
    creationTimestamp string
    Creation timestamp in RFC3339 text format.
    description string
    An optional textual description of the instance group manager.
    fingerprint string
    The fingerprint of the instance group manager.
    instanceGroup string
    The full URL of the instance group created by the manager.
    instanceLifecyclePolicy InstanceGroupManagerInstanceLifecyclePolicy
    The instance lifecycle policy for this managed instance group.
    listManagedInstancesResults string
    Pagination behavior of the listManagedInstances API method for this managed instance group. Valid values are: PAGELESS, PAGINATED. If PAGELESS (default), Pagination is disabled for the group's listManagedInstances API method. maxResults and pageToken query parameters are ignored and all instances are returned in a single response. If PAGINATED, pagination is enabled, maxResults and pageToken query parameters are respected.
    name string
    The name of the instance group manager. Must be 1-63 characters long and comply with RFC1035. Supported characters include lowercase letters, numbers, and hyphens.
    namedPorts InstanceGroupManagerNamedPort[]
    The named port configuration. See the section below for details on configuration.
    operation string
    params InstanceGroupManagerParams
    Input only additional params for instance group manager creation. Structure is documented below. For more information, see API.


    project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    selfLink string
    The URL of the created resource.
    standbyPolicy InstanceGroupManagerStandbyPolicy
    The standby policy for stopped and suspended instances. Structure is documented below. For more information, see the official documentation and API
    statefulDisks InstanceGroupManagerStatefulDisk[]
    Disks created on the instances that will be preserved on instance delete, update, etc. Structure is documented below. For more information see the official documentation.
    statefulExternalIps InstanceGroupManagerStatefulExternalIp[]
    External network IPs assigned to the instances that will be preserved on instance delete, update, etc. This map is keyed with the network interface name. Structure is documented below.
    statefulInternalIps InstanceGroupManagerStatefulInternalIp[]
    Internal network IPs assigned to the instances that will be preserved on instance delete, update, etc. This map is keyed with the network interface name. Structure is documented below.
    statuses InstanceGroupManagerStatus[]
    The status of this managed instance group.
    targetPools string[]
    The full URL of all target pools to which new instances in the group are added. Updating the target pools attribute does not affect existing instances.
    targetSize number
    The target number of running instances for this managed instance group. This value should always be explicitly set unless this resource is attached to an autoscaler, in which case it should never be set. Defaults to 0.
    targetStoppedSize number
    The target number of stopped instances for this managed instance group.
    targetSuspendedSize number
    The target number of suspended instances for this managed instance group.
    updatePolicy InstanceGroupManagerUpdatePolicy
    The update policy for this managed instance group. Structure is documented below. For more information, see the official documentation and API.
    versions InstanceGroupManagerVersion[]
    Application versions managed by this instance group. Each version deals with a specific instance template, allowing canary release scenarios. Structure is documented below.
    waitForInstances boolean
    Whether to wait for all instances to be created/updated before returning. Note that if this is set to true and the operation does not succeed, this provider will continue trying until it times out.
    waitForInstancesStatus string
    When used with wait_for_instances it specifies the status to wait for. When STABLE is specified this resource will wait until the instances are stable before returning. When UPDATED is set, it will wait for the version target to be reached and any per instance configs to be effective as well as all instances to be stable before returning. The possible values are STABLE and UPDATED
    zone string
    The zone that instances in this group should be created in.


    all_instances_config InstanceGroupManagerAllInstancesConfigArgs
    Properties to set on all instances in the group. After setting allInstancesConfig on the group, you must update the group's instances to apply the configuration.
    auto_healing_policies InstanceGroupManagerAutoHealingPoliciesArgs
    The autohealing policies for this managed instance group. You can specify only one value. Structure is documented below. For more information, see the official documentation.
    base_instance_name str
    The base instance name to use for instances in this group. The value must be a valid RFC1035 name. Supported characters are lowercase letters, numbers, and hyphens (-). Instances are named by appending a hyphen and a random four-character string to the base instance name.
    creation_timestamp str
    Creation timestamp in RFC3339 text format.
    description str
    An optional textual description of the instance group manager.
    fingerprint str
    The fingerprint of the instance group manager.
    instance_group str
    The full URL of the instance group created by the manager.
    instance_lifecycle_policy InstanceGroupManagerInstanceLifecyclePolicyArgs
    The instance lifecycle policy for this managed instance group.
    list_managed_instances_results str
    Pagination behavior of the listManagedInstances API method for this managed instance group. Valid values are: PAGELESS, PAGINATED. If PAGELESS (default), Pagination is disabled for the group's listManagedInstances API method. maxResults and pageToken query parameters are ignored and all instances are returned in a single response. If PAGINATED, pagination is enabled, maxResults and pageToken query parameters are respected.
    name str
    The name of the instance group manager. Must be 1-63 characters long and comply with RFC1035. Supported characters include lowercase letters, numbers, and hyphens.
    named_ports Sequence[InstanceGroupManagerNamedPortArgs]
    The named port configuration. See the section below for details on configuration.
    operation str
    params InstanceGroupManagerParamsArgs
    Input only additional params for instance group manager creation. Structure is documented below. For more information, see API.


    project str
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    self_link str
    The URL of the created resource.
    standby_policy InstanceGroupManagerStandbyPolicyArgs
    The standby policy for stopped and suspended instances. Structure is documented below. For more information, see the official documentation and API
    stateful_disks Sequence[InstanceGroupManagerStatefulDiskArgs]
    Disks created on the instances that will be preserved on instance delete, update, etc. Structure is documented below. For more information see the official documentation.
    stateful_external_ips Sequence[InstanceGroupManagerStatefulExternalIpArgs]
    External network IPs assigned to the instances that will be preserved on instance delete, update, etc. This map is keyed with the network interface name. Structure is documented below.
    stateful_internal_ips Sequence[InstanceGroupManagerStatefulInternalIpArgs]
    Internal network IPs assigned to the instances that will be preserved on instance delete, update, etc. This map is keyed with the network interface name. Structure is documented below.
    statuses Sequence[InstanceGroupManagerStatusArgs]
    The status of this managed instance group.
    target_pools Sequence[str]
    The full URL of all target pools to which new instances in the group are added. Updating the target pools attribute does not affect existing instances.
    target_size int
    The target number of running instances for this managed instance group. This value should always be explicitly set unless this resource is attached to an autoscaler, in which case it should never be set. Defaults to 0.
    target_stopped_size int
    The target number of stopped instances for this managed instance group.
    target_suspended_size int
    The target number of suspended instances for this managed instance group.
    update_policy InstanceGroupManagerUpdatePolicyArgs
    The update policy for this managed instance group. Structure is documented below. For more information, see the official documentation and API.
    versions Sequence[InstanceGroupManagerVersionArgs]
    Application versions managed by this instance group. Each version deals with a specific instance template, allowing canary release scenarios. Structure is documented below.
    wait_for_instances bool
    Whether to wait for all instances to be created/updated before returning. Note that if this is set to true and the operation does not succeed, this provider will continue trying until it times out.
    wait_for_instances_status str
    When used with wait_for_instances it specifies the status to wait for. When STABLE is specified this resource will wait until the instances are stable before returning. When UPDATED is set, it will wait for the version target to be reached and any per instance configs to be effective as well as all instances to be stable before returning. The possible values are STABLE and UPDATED
    zone str
    The zone that instances in this group should be created in.


    allInstancesConfig Property Map
    Properties to set on all instances in the group. After setting allInstancesConfig on the group, you must update the group's instances to apply the configuration.
    autoHealingPolicies Property Map
    The autohealing policies for this managed instance group. You can specify only one value. Structure is documented below. For more information, see the official documentation.
    baseInstanceName String
    The base instance name to use for instances in this group. The value must be a valid RFC1035 name. Supported characters are lowercase letters, numbers, and hyphens (-). Instances are named by appending a hyphen and a random four-character string to the base instance name.
    creationTimestamp String
    Creation timestamp in RFC3339 text format.
    description String
    An optional textual description of the instance group manager.
    fingerprint String
    The fingerprint of the instance group manager.
    instanceGroup String
    The full URL of the instance group created by the manager.
    instanceLifecyclePolicy Property Map
    The instance lifecycle policy for this managed instance group.
    listManagedInstancesResults String
    Pagination behavior of the listManagedInstances API method for this managed instance group. Valid values are: PAGELESS, PAGINATED. If PAGELESS (default), Pagination is disabled for the group's listManagedInstances API method. maxResults and pageToken query parameters are ignored and all instances are returned in a single response. If PAGINATED, pagination is enabled, maxResults and pageToken query parameters are respected.
    name String
    The name of the instance group manager. Must be 1-63 characters long and comply with RFC1035. Supported characters include lowercase letters, numbers, and hyphens.
    namedPorts List<Property Map>
    The named port configuration. See the section below for details on configuration.
    operation String
    params Property Map
    Input only additional params for instance group manager creation. Structure is documented below. For more information, see API.


    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    selfLink String
    The URL of the created resource.
    standbyPolicy Property Map
    The standby policy for stopped and suspended instances. Structure is documented below. For more information, see the official documentation and API
    statefulDisks List<Property Map>
    Disks created on the instances that will be preserved on instance delete, update, etc. Structure is documented below. For more information see the official documentation.
    statefulExternalIps List<Property Map>
    External network IPs assigned to the instances that will be preserved on instance delete, update, etc. This map is keyed with the network interface name. Structure is documented below.
    statefulInternalIps List<Property Map>
    Internal network IPs assigned to the instances that will be preserved on instance delete, update, etc. This map is keyed with the network interface name. Structure is documented below.
    statuses List<Property Map>
    The status of this managed instance group.
    targetPools List<String>
    The full URL of all target pools to which new instances in the group are added. Updating the target pools attribute does not affect existing instances.
    targetSize Number
    The target number of running instances for this managed instance group. This value should always be explicitly set unless this resource is attached to an autoscaler, in which case it should never be set. Defaults to 0.
    targetStoppedSize Number
    The target number of stopped instances for this managed instance group.
    targetSuspendedSize Number
    The target number of suspended instances for this managed instance group.
    updatePolicy Property Map
    The update policy for this managed instance group. Structure is documented below. For more information, see the official documentation and API.
    versions List<Property Map>
    Application versions managed by this instance group. Each version deals with a specific instance template, allowing canary release scenarios. Structure is documented below.
    waitForInstances Boolean
    Whether to wait for all instances to be created/updated before returning. Note that if this is set to true and the operation does not succeed, this provider will continue trying until it times out.
    waitForInstancesStatus String
    When used with wait_for_instances it specifies the status to wait for. When STABLE is specified this resource will wait until the instances are stable before returning. When UPDATED is set, it will wait for the version target to be reached and any per instance configs to be effective as well as all instances to be stable before returning. The possible values are STABLE and UPDATED
    zone String
    The zone that instances in this group should be created in.


    Supporting Types

    InstanceGroupManagerAllInstancesConfig, InstanceGroupManagerAllInstancesConfigArgs

    Labels Dictionary<string, string>
    , The label key-value pairs that you want to patch onto the instance.


    Metadata Dictionary<string, string>
    , The metadata key-value pairs that you want to patch onto the instance. For more information, see Project and instance metadata.
    Labels map[string]string
    , The label key-value pairs that you want to patch onto the instance.


    Metadata map[string]string
    , The metadata key-value pairs that you want to patch onto the instance. For more information, see Project and instance metadata.
    labels Map<String,String>
    , The label key-value pairs that you want to patch onto the instance.


    metadata Map<String,String>
    , The metadata key-value pairs that you want to patch onto the instance. For more information, see Project and instance metadata.
    labels {[key: string]: string}
    , The label key-value pairs that you want to patch onto the instance.


    metadata {[key: string]: string}
    , The metadata key-value pairs that you want to patch onto the instance. For more information, see Project and instance metadata.
    labels Mapping[str, str]
    , The label key-value pairs that you want to patch onto the instance.


    metadata Mapping[str, str]
    , The metadata key-value pairs that you want to patch onto the instance. For more information, see Project and instance metadata.
    labels Map<String>
    , The label key-value pairs that you want to patch onto the instance.


    metadata Map<String>
    , The metadata key-value pairs that you want to patch onto the instance. For more information, see Project and instance metadata.

    InstanceGroupManagerAutoHealingPolicies, InstanceGroupManagerAutoHealingPoliciesArgs

    HealthCheck string
    The health check resource that signals autohealing.
    InitialDelaySec int
    The number of seconds that the managed instance group waits before it applies autohealing policies to new instances or recently recreated instances. Between 0 and 3600.
    HealthCheck string
    The health check resource that signals autohealing.
    InitialDelaySec int
    The number of seconds that the managed instance group waits before it applies autohealing policies to new instances or recently recreated instances. Between 0 and 3600.
    healthCheck String
    The health check resource that signals autohealing.
    initialDelaySec Integer
    The number of seconds that the managed instance group waits before it applies autohealing policies to new instances or recently recreated instances. Between 0 and 3600.
    healthCheck string
    The health check resource that signals autohealing.
    initialDelaySec number
    The number of seconds that the managed instance group waits before it applies autohealing policies to new instances or recently recreated instances. Between 0 and 3600.
    health_check str
    The health check resource that signals autohealing.
    initial_delay_sec int
    The number of seconds that the managed instance group waits before it applies autohealing policies to new instances or recently recreated instances. Between 0 and 3600.
    healthCheck String
    The health check resource that signals autohealing.
    initialDelaySec Number
    The number of seconds that the managed instance group waits before it applies autohealing policies to new instances or recently recreated instances. Between 0 and 3600.

    InstanceGroupManagerInstanceLifecyclePolicy, InstanceGroupManagerInstanceLifecyclePolicyArgs

    DefaultActionOnFailure string
    , Default behavior for all instance or health check failures. Valid options are: REPAIR, DO_NOTHING. If DO_NOTHING then instances will not be repaired. If REPAIR (default), then failed instances will be repaired.


    ForceUpdateOnRepair string
    , Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: YES, NO. If YES and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If NO (default), then updates are applied in accordance with the group's update policy type.
    DefaultActionOnFailure string
    , Default behavior for all instance or health check failures. Valid options are: REPAIR, DO_NOTHING. If DO_NOTHING then instances will not be repaired. If REPAIR (default), then failed instances will be repaired.


    ForceUpdateOnRepair string
    , Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: YES, NO. If YES and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If NO (default), then updates are applied in accordance with the group's update policy type.
    defaultActionOnFailure String
    , Default behavior for all instance or health check failures. Valid options are: REPAIR, DO_NOTHING. If DO_NOTHING then instances will not be repaired. If REPAIR (default), then failed instances will be repaired.


    forceUpdateOnRepair String
    , Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: YES, NO. If YES and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If NO (default), then updates are applied in accordance with the group's update policy type.
    defaultActionOnFailure string
    , Default behavior for all instance or health check failures. Valid options are: REPAIR, DO_NOTHING. If DO_NOTHING then instances will not be repaired. If REPAIR (default), then failed instances will be repaired.


    forceUpdateOnRepair string
    , Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: YES, NO. If YES and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If NO (default), then updates are applied in accordance with the group's update policy type.
    default_action_on_failure str
    , Default behavior for all instance or health check failures. Valid options are: REPAIR, DO_NOTHING. If DO_NOTHING then instances will not be repaired. If REPAIR (default), then failed instances will be repaired.


    force_update_on_repair str
    , Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: YES, NO. If YES and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If NO (default), then updates are applied in accordance with the group's update policy type.
    defaultActionOnFailure String
    , Default behavior for all instance or health check failures. Valid options are: REPAIR, DO_NOTHING. If DO_NOTHING then instances will not be repaired. If REPAIR (default), then failed instances will be repaired.


    forceUpdateOnRepair String
    , Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: YES, NO. If YES and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If NO (default), then updates are applied in accordance with the group's update policy type.

    InstanceGroupManagerNamedPort, InstanceGroupManagerNamedPortArgs

    Name string
    The name of the port.
    Port int
    The port number.


    Name string
    The name of the port.
    Port int
    The port number.


    name String
    The name of the port.
    port Integer
    The port number.


    name string
    The name of the port.
    port number
    The port number.


    name str
    The name of the port.
    port int
    The port number.


    name String
    The name of the port.
    port Number
    The port number.


    InstanceGroupManagerParams, InstanceGroupManagerParamsArgs

    ResourceManagerTags Dictionary<string, string>
    Resource manager tags to bind to the managed instance group. The tags are key-value pairs. Keys must be in the format tagKeys/123 and values in the format tagValues/456. For more information, see Manage tags for resources
    ResourceManagerTags map[string]string
    Resource manager tags to bind to the managed instance group. The tags are key-value pairs. Keys must be in the format tagKeys/123 and values in the format tagValues/456. For more information, see Manage tags for resources
    resourceManagerTags Map<String,String>
    Resource manager tags to bind to the managed instance group. The tags are key-value pairs. Keys must be in the format tagKeys/123 and values in the format tagValues/456. For more information, see Manage tags for resources
    resourceManagerTags {[key: string]: string}
    Resource manager tags to bind to the managed instance group. The tags are key-value pairs. Keys must be in the format tagKeys/123 and values in the format tagValues/456. For more information, see Manage tags for resources
    resource_manager_tags Mapping[str, str]
    Resource manager tags to bind to the managed instance group. The tags are key-value pairs. Keys must be in the format tagKeys/123 and values in the format tagValues/456. For more information, see Manage tags for resources
    resourceManagerTags Map<String>
    Resource manager tags to bind to the managed instance group. The tags are key-value pairs. Keys must be in the format tagKeys/123 and values in the format tagValues/456. For more information, see Manage tags for resources

    InstanceGroupManagerStandbyPolicy, InstanceGroupManagerStandbyPolicyArgs

    InitialDelaySec int
    Specifies the number of seconds that the MIG should wait to suspend or stop a VM after that VM was created. The initial delay gives the initialization script the time to prepare your VM for a quick scale out. The value of initial delay must be between 0 and 3600 seconds. The default value is 0.
    Mode string
    Defines how a MIG resumes or starts VMs from a standby pool when the group scales out. Valid options are: MANUAL, SCALE_OUT_POOL. If MANUAL(default), you have full control over which VMs are stopped and suspended in the MIG. If SCALE_OUT_POOL, the MIG uses the VMs from the standby pools to accelerate the scale out by resuming or starting them and then automatically replenishes the standby pool with new VMs to maintain the target sizes.


    InitialDelaySec int
    Specifies the number of seconds that the MIG should wait to suspend or stop a VM after that VM was created. The initial delay gives the initialization script the time to prepare your VM for a quick scale out. The value of initial delay must be between 0 and 3600 seconds. The default value is 0.
    Mode string
    Defines how a MIG resumes or starts VMs from a standby pool when the group scales out. Valid options are: MANUAL, SCALE_OUT_POOL. If MANUAL(default), you have full control over which VMs are stopped and suspended in the MIG. If SCALE_OUT_POOL, the MIG uses the VMs from the standby pools to accelerate the scale out by resuming or starting them and then automatically replenishes the standby pool with new VMs to maintain the target sizes.


    initialDelaySec Integer
    Specifies the number of seconds that the MIG should wait to suspend or stop a VM after that VM was created. The initial delay gives the initialization script the time to prepare your VM for a quick scale out. The value of initial delay must be between 0 and 3600 seconds. The default value is 0.
    mode String
    Defines how a MIG resumes or starts VMs from a standby pool when the group scales out. Valid options are: MANUAL, SCALE_OUT_POOL. If MANUAL(default), you have full control over which VMs are stopped and suspended in the MIG. If SCALE_OUT_POOL, the MIG uses the VMs from the standby pools to accelerate the scale out by resuming or starting them and then automatically replenishes the standby pool with new VMs to maintain the target sizes.


    initialDelaySec number
    Specifies the number of seconds that the MIG should wait to suspend or stop a VM after that VM was created. The initial delay gives the initialization script the time to prepare your VM for a quick scale out. The value of initial delay must be between 0 and 3600 seconds. The default value is 0.
    mode string
    Defines how a MIG resumes or starts VMs from a standby pool when the group scales out. Valid options are: MANUAL, SCALE_OUT_POOL. If MANUAL(default), you have full control over which VMs are stopped and suspended in the MIG. If SCALE_OUT_POOL, the MIG uses the VMs from the standby pools to accelerate the scale out by resuming or starting them and then automatically replenishes the standby pool with new VMs to maintain the target sizes.


    initial_delay_sec int
    Specifies the number of seconds that the MIG should wait to suspend or stop a VM after that VM was created. The initial delay gives the initialization script the time to prepare your VM for a quick scale out. The value of initial delay must be between 0 and 3600 seconds. The default value is 0.
    mode str
    Defines how a MIG resumes or starts VMs from a standby pool when the group scales out. Valid options are: MANUAL, SCALE_OUT_POOL. If MANUAL(default), you have full control over which VMs are stopped and suspended in the MIG. If SCALE_OUT_POOL, the MIG uses the VMs from the standby pools to accelerate the scale out by resuming or starting them and then automatically replenishes the standby pool with new VMs to maintain the target sizes.


    initialDelaySec Number
    Specifies the number of seconds that the MIG should wait to suspend or stop a VM after that VM was created. The initial delay gives the initialization script the time to prepare your VM for a quick scale out. The value of initial delay must be between 0 and 3600 seconds. The default value is 0.
    mode String
    Defines how a MIG resumes or starts VMs from a standby pool when the group scales out. Valid options are: MANUAL, SCALE_OUT_POOL. If MANUAL(default), you have full control over which VMs are stopped and suspended in the MIG. If SCALE_OUT_POOL, the MIG uses the VMs from the standby pools to accelerate the scale out by resuming or starting them and then automatically replenishes the standby pool with new VMs to maintain the target sizes.


    InstanceGroupManagerStatefulDisk, InstanceGroupManagerStatefulDiskArgs

    DeviceName string
    , The device name of the disk to be attached.
    DeleteRule string
    , A value that prescribes what should happen to the stateful disk when the VM instance is deleted. The available options are NEVER and ON_PERMANENT_INSTANCE_DELETION. NEVER - detach the disk when the VM is deleted, but do not delete the disk. ON_PERMANENT_INSTANCE_DELETION will delete the stateful disk when the VM is permanently deleted from the instance group. The default is NEVER.
    DeviceName string
    , The device name of the disk to be attached.
    DeleteRule string
    , A value that prescribes what should happen to the stateful disk when the VM instance is deleted. The available options are NEVER and ON_PERMANENT_INSTANCE_DELETION. NEVER - detach the disk when the VM is deleted, but do not delete the disk. ON_PERMANENT_INSTANCE_DELETION will delete the stateful disk when the VM is permanently deleted from the instance group. The default is NEVER.
    deviceName String
    , The device name of the disk to be attached.
    deleteRule String
    , A value that prescribes what should happen to the stateful disk when the VM instance is deleted. The available options are NEVER and ON_PERMANENT_INSTANCE_DELETION. NEVER - detach the disk when the VM is deleted, but do not delete the disk. ON_PERMANENT_INSTANCE_DELETION will delete the stateful disk when the VM is permanently deleted from the instance group. The default is NEVER.
    deviceName string
    , The device name of the disk to be attached.
    deleteRule string
    , A value that prescribes what should happen to the stateful disk when the VM instance is deleted. The available options are NEVER and ON_PERMANENT_INSTANCE_DELETION. NEVER - detach the disk when the VM is deleted, but do not delete the disk. ON_PERMANENT_INSTANCE_DELETION will delete the stateful disk when the VM is permanently deleted from the instance group. The default is NEVER.
    device_name str
    , The device name of the disk to be attached.
    delete_rule str
    , A value that prescribes what should happen to the stateful disk when the VM instance is deleted. The available options are NEVER and ON_PERMANENT_INSTANCE_DELETION. NEVER - detach the disk when the VM is deleted, but do not delete the disk. ON_PERMANENT_INSTANCE_DELETION will delete the stateful disk when the VM is permanently deleted from the instance group. The default is NEVER.
    deviceName String
    , The device name of the disk to be attached.
    deleteRule String
    , A value that prescribes what should happen to the stateful disk when the VM instance is deleted. The available options are NEVER and ON_PERMANENT_INSTANCE_DELETION. NEVER - detach the disk when the VM is deleted, but do not delete the disk. ON_PERMANENT_INSTANCE_DELETION will delete the stateful disk when the VM is permanently deleted from the instance group. The default is NEVER.

    InstanceGroupManagerStatefulExternalIp, InstanceGroupManagerStatefulExternalIpArgs

    DeleteRule string
    , A value that prescribes what should happen to the external ip when the VM instance is deleted. The available options are NEVER and ON_PERMANENT_INSTANCE_DELETION. NEVER - detach the ip when the VM is deleted, but do not delete the ip. ON_PERMANENT_INSTANCE_DELETION will delete the external ip when the VM is permanently deleted from the instance group.
    InterfaceName string
    , The network interface name of the external Ip. Possible value: nic0
    DeleteRule string
    , A value that prescribes what should happen to the external ip when the VM instance is deleted. The available options are NEVER and ON_PERMANENT_INSTANCE_DELETION. NEVER - detach the ip when the VM is deleted, but do not delete the ip. ON_PERMANENT_INSTANCE_DELETION will delete the external ip when the VM is permanently deleted from the instance group.
    InterfaceName string
    , The network interface name of the external Ip. Possible value: nic0
    deleteRule String
    , A value that prescribes what should happen to the external ip when the VM instance is deleted. The available options are NEVER and ON_PERMANENT_INSTANCE_DELETION. NEVER - detach the ip when the VM is deleted, but do not delete the ip. ON_PERMANENT_INSTANCE_DELETION will delete the external ip when the VM is permanently deleted from the instance group.
    interfaceName String
    , The network interface name of the external Ip. Possible value: nic0
    deleteRule string
    , A value that prescribes what should happen to the external ip when the VM instance is deleted. The available options are NEVER and ON_PERMANENT_INSTANCE_DELETION. NEVER - detach the ip when the VM is deleted, but do not delete the ip. ON_PERMANENT_INSTANCE_DELETION will delete the external ip when the VM is permanently deleted from the instance group.
    interfaceName string
    , The network interface name of the external Ip. Possible value: nic0
    delete_rule str
    , A value that prescribes what should happen to the external ip when the VM instance is deleted. The available options are NEVER and ON_PERMANENT_INSTANCE_DELETION. NEVER - detach the ip when the VM is deleted, but do not delete the ip. ON_PERMANENT_INSTANCE_DELETION will delete the external ip when the VM is permanently deleted from the instance group.
    interface_name str
    , The network interface name of the external Ip. Possible value: nic0
    deleteRule String
    , A value that prescribes what should happen to the external ip when the VM instance is deleted. The available options are NEVER and ON_PERMANENT_INSTANCE_DELETION. NEVER - detach the ip when the VM is deleted, but do not delete the ip. ON_PERMANENT_INSTANCE_DELETION will delete the external ip when the VM is permanently deleted from the instance group.
    interfaceName String
    , The network interface name of the external Ip. Possible value: nic0

    InstanceGroupManagerStatefulInternalIp, InstanceGroupManagerStatefulInternalIpArgs

    DeleteRule string
    , A value that prescribes what should happen to the internal ip when the VM instance is deleted. The available options are NEVER and ON_PERMANENT_INSTANCE_DELETION. NEVER - detach the ip when the VM is deleted, but do not delete the ip. ON_PERMANENT_INSTANCE_DELETION will delete the internal ip when the VM is permanently deleted from the instance group.
    InterfaceName string
    , The network interface name of the internal Ip. Possible value: nic0
    DeleteRule string
    , A value that prescribes what should happen to the internal ip when the VM instance is deleted. The available options are NEVER and ON_PERMANENT_INSTANCE_DELETION. NEVER - detach the ip when the VM is deleted, but do not delete the ip. ON_PERMANENT_INSTANCE_DELETION will delete the internal ip when the VM is permanently deleted from the instance group.
    InterfaceName string
    , The network interface name of the internal Ip. Possible value: nic0
    deleteRule String
    , A value that prescribes what should happen to the internal ip when the VM instance is deleted. The available options are NEVER and ON_PERMANENT_INSTANCE_DELETION. NEVER - detach the ip when the VM is deleted, but do not delete the ip. ON_PERMANENT_INSTANCE_DELETION will delete the internal ip when the VM is permanently deleted from the instance group.
    interfaceName String
    , The network interface name of the internal Ip. Possible value: nic0
    deleteRule string
    , A value that prescribes what should happen to the internal ip when the VM instance is deleted. The available options are NEVER and ON_PERMANENT_INSTANCE_DELETION. NEVER - detach the ip when the VM is deleted, but do not delete the ip. ON_PERMANENT_INSTANCE_DELETION will delete the internal ip when the VM is permanently deleted from the instance group.
    interfaceName string
    , The network interface name of the internal Ip. Possible value: nic0
    delete_rule str
    , A value that prescribes what should happen to the internal ip when the VM instance is deleted. The available options are NEVER and ON_PERMANENT_INSTANCE_DELETION. NEVER - detach the ip when the VM is deleted, but do not delete the ip. ON_PERMANENT_INSTANCE_DELETION will delete the internal ip when the VM is permanently deleted from the instance group.
    interface_name str
    , The network interface name of the internal Ip. Possible value: nic0
    deleteRule String
    , A value that prescribes what should happen to the internal ip when the VM instance is deleted. The available options are NEVER and ON_PERMANENT_INSTANCE_DELETION. NEVER - detach the ip when the VM is deleted, but do not delete the ip. ON_PERMANENT_INSTANCE_DELETION will delete the internal ip when the VM is permanently deleted from the instance group.
    interfaceName String
    , The network interface name of the internal Ip. Possible value: nic0

    InstanceGroupManagerStatus, InstanceGroupManagerStatusArgs

    AllInstancesConfigs List<InstanceGroupManagerStatusAllInstancesConfig>
    Properties to set on all instances in the group. After setting allInstancesConfig on the group, you must update the group's instances to apply the configuration.
    IsStable bool
    A bit indicating whether the managed instance group is in a stable state. A stable state means that: none of the instances in the managed instance group is currently undergoing any type of change (for example, creation, restart, or deletion); no future changes are scheduled for instances in the managed instance group; and the managed instance group itself is not being modified.
    Statefuls List<InstanceGroupManagerStatusStateful>
    Stateful status of the given Instance Group Manager.
    VersionTargets List<InstanceGroupManagerStatusVersionTarget>
    A bit indicating whether version target has been reached in this managed instance group, i.e. all instances are in their target version. Instances' target version are specified by version field on Instance Group Manager.
    AllInstancesConfigs []InstanceGroupManagerStatusAllInstancesConfig
    Properties to set on all instances in the group. After setting allInstancesConfig on the group, you must update the group's instances to apply the configuration.
    IsStable bool
    A bit indicating whether the managed instance group is in a stable state. A stable state means that: none of the instances in the managed instance group is currently undergoing any type of change (for example, creation, restart, or deletion); no future changes are scheduled for instances in the managed instance group; and the managed instance group itself is not being modified.
    Statefuls []InstanceGroupManagerStatusStateful
    Stateful status of the given Instance Group Manager.
    VersionTargets []InstanceGroupManagerStatusVersionTarget
    A bit indicating whether version target has been reached in this managed instance group, i.e. all instances are in their target version. Instances' target version are specified by version field on Instance Group Manager.
    allInstancesConfigs List<InstanceGroupManagerStatusAllInstancesConfig>
    Properties to set on all instances in the group. After setting allInstancesConfig on the group, you must update the group's instances to apply the configuration.
    isStable Boolean
    A bit indicating whether the managed instance group is in a stable state. A stable state means that: none of the instances in the managed instance group is currently undergoing any type of change (for example, creation, restart, or deletion); no future changes are scheduled for instances in the managed instance group; and the managed instance group itself is not being modified.
    statefuls List<InstanceGroupManagerStatusStateful>
    Stateful status of the given Instance Group Manager.
    versionTargets List<InstanceGroupManagerStatusVersionTarget>
    A bit indicating whether version target has been reached in this managed instance group, i.e. all instances are in their target version. Instances' target version are specified by version field on Instance Group Manager.
    allInstancesConfigs InstanceGroupManagerStatusAllInstancesConfig[]
    Properties to set on all instances in the group. After setting allInstancesConfig on the group, you must update the group's instances to apply the configuration.
    isStable boolean
    A bit indicating whether the managed instance group is in a stable state. A stable state means that: none of the instances in the managed instance group is currently undergoing any type of change (for example, creation, restart, or deletion); no future changes are scheduled for instances in the managed instance group; and the managed instance group itself is not being modified.
    statefuls InstanceGroupManagerStatusStateful[]
    Stateful status of the given Instance Group Manager.
    versionTargets InstanceGroupManagerStatusVersionTarget[]
    A bit indicating whether version target has been reached in this managed instance group, i.e. all instances are in their target version. Instances' target version are specified by version field on Instance Group Manager.
    all_instances_configs Sequence[InstanceGroupManagerStatusAllInstancesConfig]
    Properties to set on all instances in the group. After setting allInstancesConfig on the group, you must update the group's instances to apply the configuration.
    is_stable bool
    A bit indicating whether the managed instance group is in a stable state. A stable state means that: none of the instances in the managed instance group is currently undergoing any type of change (for example, creation, restart, or deletion); no future changes are scheduled for instances in the managed instance group; and the managed instance group itself is not being modified.
    statefuls Sequence[InstanceGroupManagerStatusStateful]
    Stateful status of the given Instance Group Manager.
    version_targets Sequence[InstanceGroupManagerStatusVersionTarget]
    A bit indicating whether version target has been reached in this managed instance group, i.e. all instances are in their target version. Instances' target version are specified by version field on Instance Group Manager.
    allInstancesConfigs List<Property Map>
    Properties to set on all instances in the group. After setting allInstancesConfig on the group, you must update the group's instances to apply the configuration.
    isStable Boolean
    A bit indicating whether the managed instance group is in a stable state. A stable state means that: none of the instances in the managed instance group is currently undergoing any type of change (for example, creation, restart, or deletion); no future changes are scheduled for instances in the managed instance group; and the managed instance group itself is not being modified.
    statefuls List<Property Map>
    Stateful status of the given Instance Group Manager.
    versionTargets List<Property Map>
    A bit indicating whether version target has been reached in this managed instance group, i.e. all instances are in their target version. Instances' target version are specified by version field on Instance Group Manager.

    InstanceGroupManagerStatusAllInstancesConfig, InstanceGroupManagerStatusAllInstancesConfigArgs

    CurrentRevision string
    Current all-instances configuration revision. This value is in RFC3339 text format.
    Effective bool
    A bit indicating whether this configuration has been applied to all managed instances in the group.
    CurrentRevision string
    Current all-instances configuration revision. This value is in RFC3339 text format.
    Effective bool
    A bit indicating whether this configuration has been applied to all managed instances in the group.
    currentRevision String
    Current all-instances configuration revision. This value is in RFC3339 text format.
    effective Boolean
    A bit indicating whether this configuration has been applied to all managed instances in the group.
    currentRevision string
    Current all-instances configuration revision. This value is in RFC3339 text format.
    effective boolean
    A bit indicating whether this configuration has been applied to all managed instances in the group.
    current_revision str
    Current all-instances configuration revision. This value is in RFC3339 text format.
    effective bool
    A bit indicating whether this configuration has been applied to all managed instances in the group.
    currentRevision String
    Current all-instances configuration revision. This value is in RFC3339 text format.
    effective Boolean
    A bit indicating whether this configuration has been applied to all managed instances in the group.

    InstanceGroupManagerStatusStateful, InstanceGroupManagerStatusStatefulArgs

    HasStatefulConfig bool
    A bit indicating whether the managed instance group has stateful configuration, that is, if you have configured any items in a stateful policy or in per-instance configs. The group might report that it has no stateful config even when there is still some preserved state on a managed instance, for example, if you have deleted all PICs but not yet applied those deletions.
    PerInstanceConfigs List<InstanceGroupManagerStatusStatefulPerInstanceConfig>
    Status of per-instance configs on the instances.
    HasStatefulConfig bool
    A bit indicating whether the managed instance group has stateful configuration, that is, if you have configured any items in a stateful policy or in per-instance configs. The group might report that it has no stateful config even when there is still some preserved state on a managed instance, for example, if you have deleted all PICs but not yet applied those deletions.
    PerInstanceConfigs []InstanceGroupManagerStatusStatefulPerInstanceConfig
    Status of per-instance configs on the instances.
    hasStatefulConfig Boolean
    A bit indicating whether the managed instance group has stateful configuration, that is, if you have configured any items in a stateful policy or in per-instance configs. The group might report that it has no stateful config even when there is still some preserved state on a managed instance, for example, if you have deleted all PICs but not yet applied those deletions.
    perInstanceConfigs List<InstanceGroupManagerStatusStatefulPerInstanceConfig>
    Status of per-instance configs on the instances.
    hasStatefulConfig boolean
    A bit indicating whether the managed instance group has stateful configuration, that is, if you have configured any items in a stateful policy or in per-instance configs. The group might report that it has no stateful config even when there is still some preserved state on a managed instance, for example, if you have deleted all PICs but not yet applied those deletions.
    perInstanceConfigs InstanceGroupManagerStatusStatefulPerInstanceConfig[]
    Status of per-instance configs on the instances.
    has_stateful_config bool
    A bit indicating whether the managed instance group has stateful configuration, that is, if you have configured any items in a stateful policy or in per-instance configs. The group might report that it has no stateful config even when there is still some preserved state on a managed instance, for example, if you have deleted all PICs but not yet applied those deletions.
    per_instance_configs Sequence[InstanceGroupManagerStatusStatefulPerInstanceConfig]
    Status of per-instance configs on the instances.
    hasStatefulConfig Boolean
    A bit indicating whether the managed instance group has stateful configuration, that is, if you have configured any items in a stateful policy or in per-instance configs. The group might report that it has no stateful config even when there is still some preserved state on a managed instance, for example, if you have deleted all PICs but not yet applied those deletions.
    perInstanceConfigs List<Property Map>
    Status of per-instance configs on the instances.

    InstanceGroupManagerStatusStatefulPerInstanceConfig, InstanceGroupManagerStatusStatefulPerInstanceConfigArgs

    AllEffective bool
    A bit indicating if all of the group's per-instance configs (listed in the output of a listPerInstanceConfigs API call) have status EFFECTIVE or there are no per-instance-configs.
    AllEffective bool
    A bit indicating if all of the group's per-instance configs (listed in the output of a listPerInstanceConfigs API call) have status EFFECTIVE or there are no per-instance-configs.
    allEffective Boolean
    A bit indicating if all of the group's per-instance configs (listed in the output of a listPerInstanceConfigs API call) have status EFFECTIVE or there are no per-instance-configs.
    allEffective boolean
    A bit indicating if all of the group's per-instance configs (listed in the output of a listPerInstanceConfigs API call) have status EFFECTIVE or there are no per-instance-configs.
    all_effective bool
    A bit indicating if all of the group's per-instance configs (listed in the output of a listPerInstanceConfigs API call) have status EFFECTIVE or there are no per-instance-configs.
    allEffective Boolean
    A bit indicating if all of the group's per-instance configs (listed in the output of a listPerInstanceConfigs API call) have status EFFECTIVE or there are no per-instance-configs.

    InstanceGroupManagerStatusVersionTarget, InstanceGroupManagerStatusVersionTargetArgs

    IsReached bool
    A bit indicating whether version target has been reached in this managed instance group, i.e. all instances are in their target version. Instances' target version are specified by version field on Instance Group Manager.
    IsReached bool
    A bit indicating whether version target has been reached in this managed instance group, i.e. all instances are in their target version. Instances' target version are specified by version field on Instance Group Manager.
    isReached Boolean
    A bit indicating whether version target has been reached in this managed instance group, i.e. all instances are in their target version. Instances' target version are specified by version field on Instance Group Manager.
    isReached boolean
    A bit indicating whether version target has been reached in this managed instance group, i.e. all instances are in their target version. Instances' target version are specified by version field on Instance Group Manager.
    is_reached bool
    A bit indicating whether version target has been reached in this managed instance group, i.e. all instances are in their target version. Instances' target version are specified by version field on Instance Group Manager.
    isReached Boolean
    A bit indicating whether version target has been reached in this managed instance group, i.e. all instances are in their target version. Instances' target version are specified by version field on Instance Group Manager.

    InstanceGroupManagerUpdatePolicy, InstanceGroupManagerUpdatePolicyArgs

    MinimalAction string
    Minimal action to be taken on an instance. You can specify either NONE to forbid any actions, REFRESH to update without stopping instances, RESTART to restart existing instances or REPLACE to delete and create new instances from the target template. If you specify a REFRESH, the Updater will attempt to perform that action only. However, if the Updater determines that the minimal action you specify is not enough to perform the update, it might perform a more disruptive action.
    Type string
    The type of update process. You can specify either PROACTIVE so that the instance group manager proactively executes actions in order to bring instances to their target versions or OPPORTUNISTIC so that no action is proactively executed but the update will be performed as part of other actions (for example, resizes or recreateInstances calls).
    MaxSurgeFixed int
    , Specifies a fixed number of VM instances. This must be a positive integer. Conflicts with max_surge_percent. Both cannot be 0.
    MaxSurgePercent int
    , Specifies a percentage of instances between 0 to 100%, inclusive. For example, specify 80 for 80%. Conflicts with max_surge_fixed.
    MaxUnavailableFixed int
    , Specifies a fixed number of VM instances. This must be a positive integer.
    MaxUnavailablePercent int
    , Specifies a percentage of instances between 0 to 100%, inclusive. For example, specify 80 for 80%..
    MinReadySec int
    , Minimum number of seconds to wait for after a newly created instance becomes available. This value must be from range [0, 3600]
    MostDisruptiveAllowedAction string
    Most disruptive action that is allowed to be taken on an instance. You can specify either NONE to forbid any actions, REFRESH to allow actions that do not need instance restart, RESTART to allow actions that can be applied without instance replacing or REPLACE to allow all possible actions. If the Updater determines that the minimal update action needed is more disruptive than most disruptive allowed action you specify it will not perform the update at all.
    ReplacementMethod string
    , The instance replacement method for managed instance groups. Valid values are: "RECREATE", "SUBSTITUTE". If SUBSTITUTE (default), the group replaces VM instances with new instances that have randomly generated names. If RECREATE, instance names are preserved. You must also set max_unavailable_fixed or max_unavailable_percent to be greater than 0.


    MinimalAction string
    Minimal action to be taken on an instance. You can specify either NONE to forbid any actions, REFRESH to update without stopping instances, RESTART to restart existing instances or REPLACE to delete and create new instances from the target template. If you specify a REFRESH, the Updater will attempt to perform that action only. However, if the Updater determines that the minimal action you specify is not enough to perform the update, it might perform a more disruptive action.
    Type string
    The type of update process. You can specify either PROACTIVE so that the instance group manager proactively executes actions in order to bring instances to their target versions or OPPORTUNISTIC so that no action is proactively executed but the update will be performed as part of other actions (for example, resizes or recreateInstances calls).
    MaxSurgeFixed int
    , Specifies a fixed number of VM instances. This must be a positive integer. Conflicts with max_surge_percent. Both cannot be 0.
    MaxSurgePercent int
    , Specifies a percentage of instances between 0 to 100%, inclusive. For example, specify 80 for 80%. Conflicts with max_surge_fixed.
    MaxUnavailableFixed int
    , Specifies a fixed number of VM instances. This must be a positive integer.
    MaxUnavailablePercent int
    , Specifies a percentage of instances between 0 to 100%, inclusive. For example, specify 80 for 80%..
    MinReadySec int
    , Minimum number of seconds to wait for after a newly created instance becomes available. This value must be from range [0, 3600]
    MostDisruptiveAllowedAction string
    Most disruptive action that is allowed to be taken on an instance. You can specify either NONE to forbid any actions, REFRESH to allow actions that do not need instance restart, RESTART to allow actions that can be applied without instance replacing or REPLACE to allow all possible actions. If the Updater determines that the minimal update action needed is more disruptive than most disruptive allowed action you specify it will not perform the update at all.
    ReplacementMethod string
    , The instance replacement method for managed instance groups. Valid values are: "RECREATE", "SUBSTITUTE". If SUBSTITUTE (default), the group replaces VM instances with new instances that have randomly generated names. If RECREATE, instance names are preserved. You must also set max_unavailable_fixed or max_unavailable_percent to be greater than 0.


    minimalAction String
    Minimal action to be taken on an instance. You can specify either NONE to forbid any actions, REFRESH to update without stopping instances, RESTART to restart existing instances or REPLACE to delete and create new instances from the target template. If you specify a REFRESH, the Updater will attempt to perform that action only. However, if the Updater determines that the minimal action you specify is not enough to perform the update, it might perform a more disruptive action.
    type String
    The type of update process. You can specify either PROACTIVE so that the instance group manager proactively executes actions in order to bring instances to their target versions or OPPORTUNISTIC so that no action is proactively executed but the update will be performed as part of other actions (for example, resizes or recreateInstances calls).
    maxSurgeFixed Integer
    , Specifies a fixed number of VM instances. This must be a positive integer. Conflicts with max_surge_percent. Both cannot be 0.
    maxSurgePercent Integer
    , Specifies a percentage of instances between 0 to 100%, inclusive. For example, specify 80 for 80%. Conflicts with max_surge_fixed.
    maxUnavailableFixed Integer
    , Specifies a fixed number of VM instances. This must be a positive integer.
    maxUnavailablePercent Integer
    , Specifies a percentage of instances between 0 to 100%, inclusive. For example, specify 80 for 80%..
    minReadySec Integer
    , Minimum number of seconds to wait for after a newly created instance becomes available. This value must be from range [0, 3600]
    mostDisruptiveAllowedAction String
    Most disruptive action that is allowed to be taken on an instance. You can specify either NONE to forbid any actions, REFRESH to allow actions that do not need instance restart, RESTART to allow actions that can be applied without instance replacing or REPLACE to allow all possible actions. If the Updater determines that the minimal update action needed is more disruptive than most disruptive allowed action you specify it will not perform the update at all.
    replacementMethod String
    , The instance replacement method for managed instance groups. Valid values are: "RECREATE", "SUBSTITUTE". If SUBSTITUTE (default), the group replaces VM instances with new instances that have randomly generated names. If RECREATE, instance names are preserved. You must also set max_unavailable_fixed or max_unavailable_percent to be greater than 0.


    minimalAction string
    Minimal action to be taken on an instance. You can specify either NONE to forbid any actions, REFRESH to update without stopping instances, RESTART to restart existing instances or REPLACE to delete and create new instances from the target template. If you specify a REFRESH, the Updater will attempt to perform that action only. However, if the Updater determines that the minimal action you specify is not enough to perform the update, it might perform a more disruptive action.
    type string
    The type of update process. You can specify either PROACTIVE so that the instance group manager proactively executes actions in order to bring instances to their target versions or OPPORTUNISTIC so that no action is proactively executed but the update will be performed as part of other actions (for example, resizes or recreateInstances calls).
    maxSurgeFixed number
    , Specifies a fixed number of VM instances. This must be a positive integer. Conflicts with max_surge_percent. Both cannot be 0.
    maxSurgePercent number
    , Specifies a percentage of instances between 0 to 100%, inclusive. For example, specify 80 for 80%. Conflicts with max_surge_fixed.
    maxUnavailableFixed number
    , Specifies a fixed number of VM instances. This must be a positive integer.
    maxUnavailablePercent number
    , Specifies a percentage of instances between 0 to 100%, inclusive. For example, specify 80 for 80%..
    minReadySec number
    , Minimum number of seconds to wait for after a newly created instance becomes available. This value must be from range [0, 3600]
    mostDisruptiveAllowedAction string
    Most disruptive action that is allowed to be taken on an instance. You can specify either NONE to forbid any actions, REFRESH to allow actions that do not need instance restart, RESTART to allow actions that can be applied without instance replacing or REPLACE to allow all possible actions. If the Updater determines that the minimal update action needed is more disruptive than most disruptive allowed action you specify it will not perform the update at all.
    replacementMethod string
    , The instance replacement method for managed instance groups. Valid values are: "RECREATE", "SUBSTITUTE". If SUBSTITUTE (default), the group replaces VM instances with new instances that have randomly generated names. If RECREATE, instance names are preserved. You must also set max_unavailable_fixed or max_unavailable_percent to be greater than 0.


    minimal_action str
    Minimal action to be taken on an instance. You can specify either NONE to forbid any actions, REFRESH to update without stopping instances, RESTART to restart existing instances or REPLACE to delete and create new instances from the target template. If you specify a REFRESH, the Updater will attempt to perform that action only. However, if the Updater determines that the minimal action you specify is not enough to perform the update, it might perform a more disruptive action.
    type str
    The type of update process. You can specify either PROACTIVE so that the instance group manager proactively executes actions in order to bring instances to their target versions or OPPORTUNISTIC so that no action is proactively executed but the update will be performed as part of other actions (for example, resizes or recreateInstances calls).
    max_surge_fixed int
    , Specifies a fixed number of VM instances. This must be a positive integer. Conflicts with max_surge_percent. Both cannot be 0.
    max_surge_percent int
    , Specifies a percentage of instances between 0 to 100%, inclusive. For example, specify 80 for 80%. Conflicts with max_surge_fixed.
    max_unavailable_fixed int
    , Specifies a fixed number of VM instances. This must be a positive integer.
    max_unavailable_percent int
    , Specifies a percentage of instances between 0 to 100%, inclusive. For example, specify 80 for 80%..
    min_ready_sec int
    , Minimum number of seconds to wait for after a newly created instance becomes available. This value must be from range [0, 3600]
    most_disruptive_allowed_action str
    Most disruptive action that is allowed to be taken on an instance. You can specify either NONE to forbid any actions, REFRESH to allow actions that do not need instance restart, RESTART to allow actions that can be applied without instance replacing or REPLACE to allow all possible actions. If the Updater determines that the minimal update action needed is more disruptive than most disruptive allowed action you specify it will not perform the update at all.
    replacement_method str
    , The instance replacement method for managed instance groups. Valid values are: "RECREATE", "SUBSTITUTE". If SUBSTITUTE (default), the group replaces VM instances with new instances that have randomly generated names. If RECREATE, instance names are preserved. You must also set max_unavailable_fixed or max_unavailable_percent to be greater than 0.


    minimalAction String
    Minimal action to be taken on an instance. You can specify either NONE to forbid any actions, REFRESH to update without stopping instances, RESTART to restart existing instances or REPLACE to delete and create new instances from the target template. If you specify a REFRESH, the Updater will attempt to perform that action only. However, if the Updater determines that the minimal action you specify is not enough to perform the update, it might perform a more disruptive action.
    type String
    The type of update process. You can specify either PROACTIVE so that the instance group manager proactively executes actions in order to bring instances to their target versions or OPPORTUNISTIC so that no action is proactively executed but the update will be performed as part of other actions (for example, resizes or recreateInstances calls).
    maxSurgeFixed Number
    , Specifies a fixed number of VM instances. This must be a positive integer. Conflicts with max_surge_percent. Both cannot be 0.
    maxSurgePercent Number
    , Specifies a percentage of instances between 0 to 100%, inclusive. For example, specify 80 for 80%. Conflicts with max_surge_fixed.
    maxUnavailableFixed Number
    , Specifies a fixed number of VM instances. This must be a positive integer.
    maxUnavailablePercent Number
    , Specifies a percentage of instances between 0 to 100%, inclusive. For example, specify 80 for 80%..
    minReadySec Number
    , Minimum number of seconds to wait for after a newly created instance becomes available. This value must be from range [0, 3600]
    mostDisruptiveAllowedAction String
    Most disruptive action that is allowed to be taken on an instance. You can specify either NONE to forbid any actions, REFRESH to allow actions that do not need instance restart, RESTART to allow actions that can be applied without instance replacing or REPLACE to allow all possible actions. If the Updater determines that the minimal update action needed is more disruptive than most disruptive allowed action you specify it will not perform the update at all.
    replacementMethod String
    , The instance replacement method for managed instance groups. Valid values are: "RECREATE", "SUBSTITUTE". If SUBSTITUTE (default), the group replaces VM instances with new instances that have randomly generated names. If RECREATE, instance names are preserved. You must also set max_unavailable_fixed or max_unavailable_percent to be greater than 0.


    InstanceGroupManagerVersion, InstanceGroupManagerVersionArgs

    InstanceTemplate string
    The full URL to an instance template from which all new instances of this version will be created. It is recommended to reference instance templates through their unique id (self_link_unique attribute).
    Name string
    Version name.
    TargetSize InstanceGroupManagerVersionTargetSize

    The number of instances calculated as a fixed number or a percentage depending on the settings. Structure is documented below.

    Exactly one version you specify must not have a target_size specified. During a rolling update, the instance group manager will fulfill the target_size constraints of every other version, and any remaining instances will be provisioned with the version where target_size is unset.

    InstanceTemplate string
    The full URL to an instance template from which all new instances of this version will be created. It is recommended to reference instance templates through their unique id (self_link_unique attribute).
    Name string
    Version name.
    TargetSize InstanceGroupManagerVersionTargetSize

    The number of instances calculated as a fixed number or a percentage depending on the settings. Structure is documented below.

    Exactly one version you specify must not have a target_size specified. During a rolling update, the instance group manager will fulfill the target_size constraints of every other version, and any remaining instances will be provisioned with the version where target_size is unset.

    instanceTemplate String
    The full URL to an instance template from which all new instances of this version will be created. It is recommended to reference instance templates through their unique id (self_link_unique attribute).
    name String
    Version name.
    targetSize InstanceGroupManagerVersionTargetSize

    The number of instances calculated as a fixed number or a percentage depending on the settings. Structure is documented below.

    Exactly one version you specify must not have a target_size specified. During a rolling update, the instance group manager will fulfill the target_size constraints of every other version, and any remaining instances will be provisioned with the version where target_size is unset.

    instanceTemplate string
    The full URL to an instance template from which all new instances of this version will be created. It is recommended to reference instance templates through their unique id (self_link_unique attribute).
    name string
    Version name.
    targetSize InstanceGroupManagerVersionTargetSize

    The number of instances calculated as a fixed number or a percentage depending on the settings. Structure is documented below.

    Exactly one version you specify must not have a target_size specified. During a rolling update, the instance group manager will fulfill the target_size constraints of every other version, and any remaining instances will be provisioned with the version where target_size is unset.

    instance_template str
    The full URL to an instance template from which all new instances of this version will be created. It is recommended to reference instance templates through their unique id (self_link_unique attribute).
    name str
    Version name.
    target_size InstanceGroupManagerVersionTargetSize

    The number of instances calculated as a fixed number or a percentage depending on the settings. Structure is documented below.

    Exactly one version you specify must not have a target_size specified. During a rolling update, the instance group manager will fulfill the target_size constraints of every other version, and any remaining instances will be provisioned with the version where target_size is unset.

    instanceTemplate String
    The full URL to an instance template from which all new instances of this version will be created. It is recommended to reference instance templates through their unique id (self_link_unique attribute).
    name String
    Version name.
    targetSize Property Map

    The number of instances calculated as a fixed number or a percentage depending on the settings. Structure is documented below.

    Exactly one version you specify must not have a target_size specified. During a rolling update, the instance group manager will fulfill the target_size constraints of every other version, and any remaining instances will be provisioned with the version where target_size is unset.

    InstanceGroupManagerVersionTargetSize, InstanceGroupManagerVersionTargetSizeArgs

    Fixed int
    , The number of instances which are managed for this version. Conflicts with percent.
    Percent int
    , The number of instances (calculated as percentage) which are managed for this version. Conflicts with fixed. Note that when using percent, rounding will be in favor of explicitly set target_size values; a managed instance group with 2 instances and 2 versions, one of which has a target_size.percent of 60 will create 2 instances of that version.
    Fixed int
    , The number of instances which are managed for this version. Conflicts with percent.
    Percent int
    , The number of instances (calculated as percentage) which are managed for this version. Conflicts with fixed. Note that when using percent, rounding will be in favor of explicitly set target_size values; a managed instance group with 2 instances and 2 versions, one of which has a target_size.percent of 60 will create 2 instances of that version.
    fixed Integer
    , The number of instances which are managed for this version. Conflicts with percent.
    percent Integer
    , The number of instances (calculated as percentage) which are managed for this version. Conflicts with fixed. Note that when using percent, rounding will be in favor of explicitly set target_size values; a managed instance group with 2 instances and 2 versions, one of which has a target_size.percent of 60 will create 2 instances of that version.
    fixed number
    , The number of instances which are managed for this version. Conflicts with percent.
    percent number
    , The number of instances (calculated as percentage) which are managed for this version. Conflicts with fixed. Note that when using percent, rounding will be in favor of explicitly set target_size values; a managed instance group with 2 instances and 2 versions, one of which has a target_size.percent of 60 will create 2 instances of that version.
    fixed int
    , The number of instances which are managed for this version. Conflicts with percent.
    percent int
    , The number of instances (calculated as percentage) which are managed for this version. Conflicts with fixed. Note that when using percent, rounding will be in favor of explicitly set target_size values; a managed instance group with 2 instances and 2 versions, one of which has a target_size.percent of 60 will create 2 instances of that version.
    fixed Number
    , The number of instances which are managed for this version. Conflicts with percent.
    percent Number
    , The number of instances (calculated as percentage) which are managed for this version. Conflicts with fixed. Note that when using percent, rounding will be in favor of explicitly set target_size values; a managed instance group with 2 instances and 2 versions, one of which has a target_size.percent of 60 will create 2 instances of that version.

    Import

    Instance group managers can be imported using any of these accepted formats:

    • projects/{{project}}/zones/{{zone}}/instanceGroupManagers/{{name}}

    • {{project}}/{{zone}}/{{name}}

    • {{project}}/{{name}}

    • {{name}}

    When using the pulumi import command, instance group managers can be imported using one of the formats above. For example:

    $ pulumi import gcp:compute/instanceGroupManager:InstanceGroupManager default projects/{{project}}/zones/{{zone}}/instanceGroupManagers/{{name}}
    
    $ pulumi import gcp:compute/instanceGroupManager:InstanceGroupManager default {{project}}/{{zone}}/{{name}}
    
    $ pulumi import gcp:compute/instanceGroupManager:InstanceGroupManager default {{project}}/{{name}}
    
    $ pulumi import gcp:compute/instanceGroupManager:InstanceGroupManager default {{name}}
    

    To learn more about importing existing cloud resources, see Importing resources.

    Package Details

    Repository
    Google Cloud (GCP) Classic pulumi/pulumi-gcp
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the google-beta Terraform Provider.
    gcp logo
    Google Cloud Classic v8.9.3 published on Monday, Nov 18, 2024 by Pulumi