1. Packages
  2. Google Cloud (GCP) Classic
  3. API Docs
  4. compute
  5. PerInstanceConfig
Google Cloud Classic v7.27.0 published on Thursday, Jun 13, 2024 by Pulumi

gcp.compute.PerInstanceConfig

Explore with Pulumi AI

gcp logo
Google Cloud Classic v7.27.0 published on Thursday, Jun 13, 2024 by Pulumi

    A config defined for a single managed instance that belongs to an instance group manager. It preserves the instance name across instance group manager operations and can define stateful disks or metadata that are unique to the instance.

    To get more information about PerInstanceConfig, see:

    Example Usage

    Stateful Igm

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const myImage = gcp.compute.getImage({
        family: "debian-11",
        project: "debian-cloud",
    });
    const igm_basic = new gcp.compute.InstanceTemplate("igm-basic", {
        name: "my-template",
        machineType: "e2-medium",
        canIpForward: false,
        tags: [
            "foo",
            "bar",
        ],
        disks: [{
            sourceImage: myImage.then(myImage => myImage.selfLink),
            autoDelete: true,
            boot: true,
        }],
        networkInterfaces: [{
            network: "default",
        }],
        serviceAccount: {
            scopes: [
                "userinfo-email",
                "compute-ro",
                "storage-ro",
            ],
        },
    });
    const igm_no_tp = new gcp.compute.InstanceGroupManager("igm-no-tp", {
        description: "Test instance group manager",
        name: "my-igm",
        versions: [{
            name: "prod",
            instanceTemplate: igm_basic.selfLink,
        }],
        baseInstanceName: "igm-no-tp",
        zone: "us-central1-c",
        targetSize: 2,
    });
    const _default = new gcp.compute.Disk("default", {
        name: "my-disk-name",
        type: "pd-ssd",
        zone: igm.zone,
        image: "debian-11-bullseye-v20220719",
        physicalBlockSizeBytes: 4096,
    });
    const withDisk = new gcp.compute.PerInstanceConfig("with_disk", {
        zone: igm.zone,
        instanceGroupManager: igm.name,
        name: "instance-1",
        preservedState: {
            metadata: {
                foo: "bar",
                instance_template: igm_basic.selfLink,
            },
            disks: [{
                deviceName: "my-stateful-disk",
                source: _default.id,
                mode: "READ_ONLY",
            }],
        },
    });
    
    import pulumi
    import pulumi_gcp as gcp
    
    my_image = gcp.compute.get_image(family="debian-11",
        project="debian-cloud")
    igm_basic = gcp.compute.InstanceTemplate("igm-basic",
        name="my-template",
        machine_type="e2-medium",
        can_ip_forward=False,
        tags=[
            "foo",
            "bar",
        ],
        disks=[gcp.compute.InstanceTemplateDiskArgs(
            source_image=my_image.self_link,
            auto_delete=True,
            boot=True,
        )],
        network_interfaces=[gcp.compute.InstanceTemplateNetworkInterfaceArgs(
            network="default",
        )],
        service_account=gcp.compute.InstanceTemplateServiceAccountArgs(
            scopes=[
                "userinfo-email",
                "compute-ro",
                "storage-ro",
            ],
        ))
    igm_no_tp = gcp.compute.InstanceGroupManager("igm-no-tp",
        description="Test instance group manager",
        name="my-igm",
        versions=[gcp.compute.InstanceGroupManagerVersionArgs(
            name="prod",
            instance_template=igm_basic.self_link,
        )],
        base_instance_name="igm-no-tp",
        zone="us-central1-c",
        target_size=2)
    default = gcp.compute.Disk("default",
        name="my-disk-name",
        type="pd-ssd",
        zone=igm["zone"],
        image="debian-11-bullseye-v20220719",
        physical_block_size_bytes=4096)
    with_disk = gcp.compute.PerInstanceConfig("with_disk",
        zone=igm["zone"],
        instance_group_manager=igm["name"],
        name="instance-1",
        preserved_state=gcp.compute.PerInstanceConfigPreservedStateArgs(
            metadata={
                "foo": "bar",
                "instance_template": igm_basic.self_link,
            },
            disks=[gcp.compute.PerInstanceConfigPreservedStateDiskArgs(
                device_name="my-stateful-disk",
                source=default.id,
                mode="READ_ONLY",
            )],
        ))
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		myImage, err := compute.LookupImage(ctx, &compute.LookupImageArgs{
    			Family:  pulumi.StringRef("debian-11"),
    			Project: pulumi.StringRef("debian-cloud"),
    		}, nil)
    		if err != nil {
    			return err
    		}
    		_, err = compute.NewInstanceTemplate(ctx, "igm-basic", &compute.InstanceTemplateArgs{
    			Name:         pulumi.String("my-template"),
    			MachineType:  pulumi.String("e2-medium"),
    			CanIpForward: pulumi.Bool(false),
    			Tags: pulumi.StringArray{
    				pulumi.String("foo"),
    				pulumi.String("bar"),
    			},
    			Disks: compute.InstanceTemplateDiskArray{
    				&compute.InstanceTemplateDiskArgs{
    					SourceImage: pulumi.String(myImage.SelfLink),
    					AutoDelete:  pulumi.Bool(true),
    					Boot:        pulumi.Bool(true),
    				},
    			},
    			NetworkInterfaces: compute.InstanceTemplateNetworkInterfaceArray{
    				&compute.InstanceTemplateNetworkInterfaceArgs{
    					Network: pulumi.String("default"),
    				},
    			},
    			ServiceAccount: &compute.InstanceTemplateServiceAccountArgs{
    				Scopes: pulumi.StringArray{
    					pulumi.String("userinfo-email"),
    					pulumi.String("compute-ro"),
    					pulumi.String("storage-ro"),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		_, err = compute.NewInstanceGroupManager(ctx, "igm-no-tp", &compute.InstanceGroupManagerArgs{
    			Description: pulumi.String("Test instance group manager"),
    			Name:        pulumi.String("my-igm"),
    			Versions: compute.InstanceGroupManagerVersionArray{
    				&compute.InstanceGroupManagerVersionArgs{
    					Name:             pulumi.String("prod"),
    					InstanceTemplate: igm_basic.SelfLink,
    				},
    			},
    			BaseInstanceName: pulumi.String("igm-no-tp"),
    			Zone:             pulumi.String("us-central1-c"),
    			TargetSize:       pulumi.Int(2),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = compute.NewDisk(ctx, "default", &compute.DiskArgs{
    			Name:                   pulumi.String("my-disk-name"),
    			Type:                   pulumi.String("pd-ssd"),
    			Zone:                   pulumi.Any(igm.Zone),
    			Image:                  pulumi.String("debian-11-bullseye-v20220719"),
    			PhysicalBlockSizeBytes: pulumi.Int(4096),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = compute.NewPerInstanceConfig(ctx, "with_disk", &compute.PerInstanceConfigArgs{
    			Zone:                 pulumi.Any(igm.Zone),
    			InstanceGroupManager: pulumi.Any(igm.Name),
    			Name:                 pulumi.String("instance-1"),
    			PreservedState: &compute.PerInstanceConfigPreservedStateArgs{
    				Metadata: pulumi.StringMap{
    					"foo":               pulumi.String("bar"),
    					"instance_template": igm_basic.SelfLink,
    				},
    				Disks: compute.PerInstanceConfigPreservedStateDiskArray{
    					&compute.PerInstanceConfigPreservedStateDiskArgs{
    						DeviceName: pulumi.String("my-stateful-disk"),
    						Source:     _default.ID(),
    						Mode:       pulumi.String("READ_ONLY"),
    					},
    				},
    			},
    		})
    		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 myImage = Gcp.Compute.GetImage.Invoke(new()
        {
            Family = "debian-11",
            Project = "debian-cloud",
        });
    
        var igm_basic = new Gcp.Compute.InstanceTemplate("igm-basic", new()
        {
            Name = "my-template",
            MachineType = "e2-medium",
            CanIpForward = false,
            Tags = new[]
            {
                "foo",
                "bar",
            },
            Disks = new[]
            {
                new Gcp.Compute.Inputs.InstanceTemplateDiskArgs
                {
                    SourceImage = myImage.Apply(getImageResult => getImageResult.SelfLink),
                    AutoDelete = true,
                    Boot = true,
                },
            },
            NetworkInterfaces = new[]
            {
                new Gcp.Compute.Inputs.InstanceTemplateNetworkInterfaceArgs
                {
                    Network = "default",
                },
            },
            ServiceAccount = new Gcp.Compute.Inputs.InstanceTemplateServiceAccountArgs
            {
                Scopes = new[]
                {
                    "userinfo-email",
                    "compute-ro",
                    "storage-ro",
                },
            },
        });
    
        var igm_no_tp = new Gcp.Compute.InstanceGroupManager("igm-no-tp", new()
        {
            Description = "Test instance group manager",
            Name = "my-igm",
            Versions = new[]
            {
                new Gcp.Compute.Inputs.InstanceGroupManagerVersionArgs
                {
                    Name = "prod",
                    InstanceTemplate = igm_basic.SelfLink,
                },
            },
            BaseInstanceName = "igm-no-tp",
            Zone = "us-central1-c",
            TargetSize = 2,
        });
    
        var @default = new Gcp.Compute.Disk("default", new()
        {
            Name = "my-disk-name",
            Type = "pd-ssd",
            Zone = igm.Zone,
            Image = "debian-11-bullseye-v20220719",
            PhysicalBlockSizeBytes = 4096,
        });
    
        var withDisk = new Gcp.Compute.PerInstanceConfig("with_disk", new()
        {
            Zone = igm.Zone,
            InstanceGroupManager = igm.Name,
            Name = "instance-1",
            PreservedState = new Gcp.Compute.Inputs.PerInstanceConfigPreservedStateArgs
            {
                Metadata = 
                {
                    { "foo", "bar" },
                    { "instance_template", igm_basic.SelfLink },
                },
                Disks = new[]
                {
                    new Gcp.Compute.Inputs.PerInstanceConfigPreservedStateDiskArgs
                    {
                        DeviceName = "my-stateful-disk",
                        Source = @default.Id,
                        Mode = "READ_ONLY",
                    },
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.gcp.compute.ComputeFunctions;
    import com.pulumi.gcp.compute.inputs.GetImageArgs;
    import com.pulumi.gcp.compute.InstanceTemplate;
    import com.pulumi.gcp.compute.InstanceTemplateArgs;
    import com.pulumi.gcp.compute.inputs.InstanceTemplateDiskArgs;
    import com.pulumi.gcp.compute.inputs.InstanceTemplateNetworkInterfaceArgs;
    import com.pulumi.gcp.compute.inputs.InstanceTemplateServiceAccountArgs;
    import com.pulumi.gcp.compute.InstanceGroupManager;
    import com.pulumi.gcp.compute.InstanceGroupManagerArgs;
    import com.pulumi.gcp.compute.inputs.InstanceGroupManagerVersionArgs;
    import com.pulumi.gcp.compute.Disk;
    import com.pulumi.gcp.compute.DiskArgs;
    import com.pulumi.gcp.compute.PerInstanceConfig;
    import com.pulumi.gcp.compute.PerInstanceConfigArgs;
    import com.pulumi.gcp.compute.inputs.PerInstanceConfigPreservedStateArgs;
    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) {
            final var myImage = ComputeFunctions.getImage(GetImageArgs.builder()
                .family("debian-11")
                .project("debian-cloud")
                .build());
    
            var igm_basic = new InstanceTemplate("igm-basic", InstanceTemplateArgs.builder()
                .name("my-template")
                .machineType("e2-medium")
                .canIpForward(false)
                .tags(            
                    "foo",
                    "bar")
                .disks(InstanceTemplateDiskArgs.builder()
                    .sourceImage(myImage.applyValue(getImageResult -> getImageResult.selfLink()))
                    .autoDelete(true)
                    .boot(true)
                    .build())
                .networkInterfaces(InstanceTemplateNetworkInterfaceArgs.builder()
                    .network("default")
                    .build())
                .serviceAccount(InstanceTemplateServiceAccountArgs.builder()
                    .scopes(                
                        "userinfo-email",
                        "compute-ro",
                        "storage-ro")
                    .build())
                .build());
    
            var igm_no_tp = new InstanceGroupManager("igm-no-tp", InstanceGroupManagerArgs.builder()
                .description("Test instance group manager")
                .name("my-igm")
                .versions(InstanceGroupManagerVersionArgs.builder()
                    .name("prod")
                    .instanceTemplate(igm_basic.selfLink())
                    .build())
                .baseInstanceName("igm-no-tp")
                .zone("us-central1-c")
                .targetSize(2)
                .build());
    
            var default_ = new Disk("default", DiskArgs.builder()
                .name("my-disk-name")
                .type("pd-ssd")
                .zone(igm.zone())
                .image("debian-11-bullseye-v20220719")
                .physicalBlockSizeBytes(4096)
                .build());
    
            var withDisk = new PerInstanceConfig("withDisk", PerInstanceConfigArgs.builder()
                .zone(igm.zone())
                .instanceGroupManager(igm.name())
                .name("instance-1")
                .preservedState(PerInstanceConfigPreservedStateArgs.builder()
                    .metadata(Map.ofEntries(
                        Map.entry("foo", "bar"),
                        Map.entry("instance_template", igm_basic.selfLink())
                    ))
                    .disks(PerInstanceConfigPreservedStateDiskArgs.builder()
                        .deviceName("my-stateful-disk")
                        .source(default_.id())
                        .mode("READ_ONLY")
                        .build())
                    .build())
                .build());
    
        }
    }
    
    resources:
      igm-basic:
        type: gcp:compute:InstanceTemplate
        properties:
          name: my-template
          machineType: e2-medium
          canIpForward: false
          tags:
            - foo
            - bar
          disks:
            - sourceImage: ${myImage.selfLink}
              autoDelete: true
              boot: true
          networkInterfaces:
            - network: default
          serviceAccount:
            scopes:
              - userinfo-email
              - compute-ro
              - storage-ro
      igm-no-tp:
        type: gcp:compute:InstanceGroupManager
        properties:
          description: Test instance group manager
          name: my-igm
          versions:
            - name: prod
              instanceTemplate: ${["igm-basic"].selfLink}
          baseInstanceName: igm-no-tp
          zone: us-central1-c
          targetSize: 2
      default:
        type: gcp:compute:Disk
        properties:
          name: my-disk-name
          type: pd-ssd
          zone: ${igm.zone}
          image: debian-11-bullseye-v20220719
          physicalBlockSizeBytes: 4096
      withDisk:
        type: gcp:compute:PerInstanceConfig
        name: with_disk
        properties:
          zone: ${igm.zone}
          instanceGroupManager: ${igm.name}
          name: instance-1
          preservedState:
            metadata:
              foo: bar
              instance_template: ${["igm-basic"].selfLink}
            disks:
              - deviceName: my-stateful-disk
                source: ${default.id}
                mode: READ_ONLY
    variables:
      myImage:
        fn::invoke:
          Function: gcp:compute:getImage
          Arguments:
            family: debian-11
            project: debian-cloud
    

    Create PerInstanceConfig Resource

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

    Constructor syntax

    new PerInstanceConfig(name: string, args: PerInstanceConfigArgs, opts?: CustomResourceOptions);
    @overload
    def PerInstanceConfig(resource_name: str,
                          args: PerInstanceConfigArgs,
                          opts: Optional[ResourceOptions] = None)
    
    @overload
    def PerInstanceConfig(resource_name: str,
                          opts: Optional[ResourceOptions] = None,
                          instance_group_manager: Optional[str] = None,
                          minimal_action: Optional[str] = None,
                          most_disruptive_allowed_action: Optional[str] = None,
                          name: Optional[str] = None,
                          preserved_state: Optional[PerInstanceConfigPreservedStateArgs] = None,
                          project: Optional[str] = None,
                          remove_instance_on_destroy: Optional[bool] = None,
                          remove_instance_state_on_destroy: Optional[bool] = None,
                          zone: Optional[str] = None)
    func NewPerInstanceConfig(ctx *Context, name string, args PerInstanceConfigArgs, opts ...ResourceOption) (*PerInstanceConfig, error)
    public PerInstanceConfig(string name, PerInstanceConfigArgs args, CustomResourceOptions? opts = null)
    public PerInstanceConfig(String name, PerInstanceConfigArgs args)
    public PerInstanceConfig(String name, PerInstanceConfigArgs args, CustomResourceOptions options)
    
    type: gcp:compute:PerInstanceConfig
    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 PerInstanceConfigArgs
    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 PerInstanceConfigArgs
    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 PerInstanceConfigArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args PerInstanceConfigArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args PerInstanceConfigArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Example

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

    var perInstanceConfigResource = new Gcp.Compute.PerInstanceConfig("perInstanceConfigResource", new()
    {
        InstanceGroupManager = "string",
        MinimalAction = "string",
        MostDisruptiveAllowedAction = "string",
        Name = "string",
        PreservedState = new Gcp.Compute.Inputs.PerInstanceConfigPreservedStateArgs
        {
            Disks = new[]
            {
                new Gcp.Compute.Inputs.PerInstanceConfigPreservedStateDiskArgs
                {
                    DeviceName = "string",
                    Source = "string",
                    DeleteRule = "string",
                    Mode = "string",
                },
            },
            ExternalIps = new[]
            {
                new Gcp.Compute.Inputs.PerInstanceConfigPreservedStateExternalIpArgs
                {
                    InterfaceName = "string",
                    AutoDelete = "string",
                    IpAddress = new Gcp.Compute.Inputs.PerInstanceConfigPreservedStateExternalIpIpAddressArgs
                    {
                        Address = "string",
                    },
                },
            },
            InternalIps = new[]
            {
                new Gcp.Compute.Inputs.PerInstanceConfigPreservedStateInternalIpArgs
                {
                    InterfaceName = "string",
                    AutoDelete = "string",
                    IpAddress = new Gcp.Compute.Inputs.PerInstanceConfigPreservedStateInternalIpIpAddressArgs
                    {
                        Address = "string",
                    },
                },
            },
            Metadata = 
            {
                { "string", "string" },
            },
        },
        Project = "string",
        RemoveInstanceOnDestroy = false,
        RemoveInstanceStateOnDestroy = false,
        Zone = "string",
    });
    
    example, err := compute.NewPerInstanceConfig(ctx, "perInstanceConfigResource", &compute.PerInstanceConfigArgs{
    	InstanceGroupManager:        pulumi.String("string"),
    	MinimalAction:               pulumi.String("string"),
    	MostDisruptiveAllowedAction: pulumi.String("string"),
    	Name:                        pulumi.String("string"),
    	PreservedState: &compute.PerInstanceConfigPreservedStateArgs{
    		Disks: compute.PerInstanceConfigPreservedStateDiskArray{
    			&compute.PerInstanceConfigPreservedStateDiskArgs{
    				DeviceName: pulumi.String("string"),
    				Source:     pulumi.String("string"),
    				DeleteRule: pulumi.String("string"),
    				Mode:       pulumi.String("string"),
    			},
    		},
    		ExternalIps: compute.PerInstanceConfigPreservedStateExternalIpArray{
    			&compute.PerInstanceConfigPreservedStateExternalIpArgs{
    				InterfaceName: pulumi.String("string"),
    				AutoDelete:    pulumi.String("string"),
    				IpAddress: &compute.PerInstanceConfigPreservedStateExternalIpIpAddressArgs{
    					Address: pulumi.String("string"),
    				},
    			},
    		},
    		InternalIps: compute.PerInstanceConfigPreservedStateInternalIpArray{
    			&compute.PerInstanceConfigPreservedStateInternalIpArgs{
    				InterfaceName: pulumi.String("string"),
    				AutoDelete:    pulumi.String("string"),
    				IpAddress: &compute.PerInstanceConfigPreservedStateInternalIpIpAddressArgs{
    					Address: pulumi.String("string"),
    				},
    			},
    		},
    		Metadata: pulumi.StringMap{
    			"string": pulumi.String("string"),
    		},
    	},
    	Project:                      pulumi.String("string"),
    	RemoveInstanceOnDestroy:      pulumi.Bool(false),
    	RemoveInstanceStateOnDestroy: pulumi.Bool(false),
    	Zone:                         pulumi.String("string"),
    })
    
    var perInstanceConfigResource = new PerInstanceConfig("perInstanceConfigResource", PerInstanceConfigArgs.builder()
        .instanceGroupManager("string")
        .minimalAction("string")
        .mostDisruptiveAllowedAction("string")
        .name("string")
        .preservedState(PerInstanceConfigPreservedStateArgs.builder()
            .disks(PerInstanceConfigPreservedStateDiskArgs.builder()
                .deviceName("string")
                .source("string")
                .deleteRule("string")
                .mode("string")
                .build())
            .externalIps(PerInstanceConfigPreservedStateExternalIpArgs.builder()
                .interfaceName("string")
                .autoDelete("string")
                .ipAddress(PerInstanceConfigPreservedStateExternalIpIpAddressArgs.builder()
                    .address("string")
                    .build())
                .build())
            .internalIps(PerInstanceConfigPreservedStateInternalIpArgs.builder()
                .interfaceName("string")
                .autoDelete("string")
                .ipAddress(PerInstanceConfigPreservedStateInternalIpIpAddressArgs.builder()
                    .address("string")
                    .build())
                .build())
            .metadata(Map.of("string", "string"))
            .build())
        .project("string")
        .removeInstanceOnDestroy(false)
        .removeInstanceStateOnDestroy(false)
        .zone("string")
        .build());
    
    per_instance_config_resource = gcp.compute.PerInstanceConfig("perInstanceConfigResource",
        instance_group_manager="string",
        minimal_action="string",
        most_disruptive_allowed_action="string",
        name="string",
        preserved_state=gcp.compute.PerInstanceConfigPreservedStateArgs(
            disks=[gcp.compute.PerInstanceConfigPreservedStateDiskArgs(
                device_name="string",
                source="string",
                delete_rule="string",
                mode="string",
            )],
            external_ips=[gcp.compute.PerInstanceConfigPreservedStateExternalIpArgs(
                interface_name="string",
                auto_delete="string",
                ip_address=gcp.compute.PerInstanceConfigPreservedStateExternalIpIpAddressArgs(
                    address="string",
                ),
            )],
            internal_ips=[gcp.compute.PerInstanceConfigPreservedStateInternalIpArgs(
                interface_name="string",
                auto_delete="string",
                ip_address=gcp.compute.PerInstanceConfigPreservedStateInternalIpIpAddressArgs(
                    address="string",
                ),
            )],
            metadata={
                "string": "string",
            },
        ),
        project="string",
        remove_instance_on_destroy=False,
        remove_instance_state_on_destroy=False,
        zone="string")
    
    const perInstanceConfigResource = new gcp.compute.PerInstanceConfig("perInstanceConfigResource", {
        instanceGroupManager: "string",
        minimalAction: "string",
        mostDisruptiveAllowedAction: "string",
        name: "string",
        preservedState: {
            disks: [{
                deviceName: "string",
                source: "string",
                deleteRule: "string",
                mode: "string",
            }],
            externalIps: [{
                interfaceName: "string",
                autoDelete: "string",
                ipAddress: {
                    address: "string",
                },
            }],
            internalIps: [{
                interfaceName: "string",
                autoDelete: "string",
                ipAddress: {
                    address: "string",
                },
            }],
            metadata: {
                string: "string",
            },
        },
        project: "string",
        removeInstanceOnDestroy: false,
        removeInstanceStateOnDestroy: false,
        zone: "string",
    });
    
    type: gcp:compute:PerInstanceConfig
    properties:
        instanceGroupManager: string
        minimalAction: string
        mostDisruptiveAllowedAction: string
        name: string
        preservedState:
            disks:
                - deleteRule: string
                  deviceName: string
                  mode: string
                  source: string
            externalIps:
                - autoDelete: string
                  interfaceName: string
                  ipAddress:
                    address: string
            internalIps:
                - autoDelete: string
                  interfaceName: string
                  ipAddress:
                    address: string
            metadata:
                string: string
        project: string
        removeInstanceOnDestroy: false
        removeInstanceStateOnDestroy: false
        zone: string
    

    PerInstanceConfig Resource Properties

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

    Inputs

    The PerInstanceConfig resource accepts the following input properties:

    InstanceGroupManager string
    The instance group manager this instance config is part of.


    MinimalAction string
    The minimal action to perform on the instance during an update. Default is NONE. Possible values are:

    • REPLACE
    • RESTART
    • REFRESH
    • NONE
    MostDisruptiveAllowedAction string
    The most disruptive action to perform on the instance during an update. Default is REPLACE. Possible values are:

    • REPLACE
    • RESTART
    • REFRESH
    • NONE
    Name string
    The name for this per-instance config and its corresponding instance.
    PreservedState PerInstanceConfigPreservedState
    The preserved state for this instance. Structure is documented below.
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    RemoveInstanceOnDestroy bool
    When true, deleting this config will immediately remove the underlying instance. When false, deleting this config will use the behavior as determined by remove_instance_on_destroy.
    RemoveInstanceStateOnDestroy bool
    When true, deleting this config will immediately remove any specified state from the underlying instance. When false, deleting this config will not immediately remove any state from the underlying instance. State will be removed on the next instance recreation or update.
    Zone string
    Zone where the containing instance group manager is located
    InstanceGroupManager string
    The instance group manager this instance config is part of.


    MinimalAction string
    The minimal action to perform on the instance during an update. Default is NONE. Possible values are:

    • REPLACE
    • RESTART
    • REFRESH
    • NONE
    MostDisruptiveAllowedAction string
    The most disruptive action to perform on the instance during an update. Default is REPLACE. Possible values are:

    • REPLACE
    • RESTART
    • REFRESH
    • NONE
    Name string
    The name for this per-instance config and its corresponding instance.
    PreservedState PerInstanceConfigPreservedStateArgs
    The preserved state for this instance. Structure is documented below.
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    RemoveInstanceOnDestroy bool
    When true, deleting this config will immediately remove the underlying instance. When false, deleting this config will use the behavior as determined by remove_instance_on_destroy.
    RemoveInstanceStateOnDestroy bool
    When true, deleting this config will immediately remove any specified state from the underlying instance. When false, deleting this config will not immediately remove any state from the underlying instance. State will be removed on the next instance recreation or update.
    Zone string
    Zone where the containing instance group manager is located
    instanceGroupManager String
    The instance group manager this instance config is part of.


    minimalAction String
    The minimal action to perform on the instance during an update. Default is NONE. Possible values are:

    • REPLACE
    • RESTART
    • REFRESH
    • NONE
    mostDisruptiveAllowedAction String
    The most disruptive action to perform on the instance during an update. Default is REPLACE. Possible values are:

    • REPLACE
    • RESTART
    • REFRESH
    • NONE
    name String
    The name for this per-instance config and its corresponding instance.
    preservedState PerInstanceConfigPreservedState
    The preserved state for this instance. Structure is documented below.
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    removeInstanceOnDestroy Boolean
    When true, deleting this config will immediately remove the underlying instance. When false, deleting this config will use the behavior as determined by remove_instance_on_destroy.
    removeInstanceStateOnDestroy Boolean
    When true, deleting this config will immediately remove any specified state from the underlying instance. When false, deleting this config will not immediately remove any state from the underlying instance. State will be removed on the next instance recreation or update.
    zone String
    Zone where the containing instance group manager is located
    instanceGroupManager string
    The instance group manager this instance config is part of.


    minimalAction string
    The minimal action to perform on the instance during an update. Default is NONE. Possible values are:

    • REPLACE
    • RESTART
    • REFRESH
    • NONE
    mostDisruptiveAllowedAction string
    The most disruptive action to perform on the instance during an update. Default is REPLACE. Possible values are:

    • REPLACE
    • RESTART
    • REFRESH
    • NONE
    name string
    The name for this per-instance config and its corresponding instance.
    preservedState PerInstanceConfigPreservedState
    The preserved state for this instance. Structure is documented below.
    project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    removeInstanceOnDestroy boolean
    When true, deleting this config will immediately remove the underlying instance. When false, deleting this config will use the behavior as determined by remove_instance_on_destroy.
    removeInstanceStateOnDestroy boolean
    When true, deleting this config will immediately remove any specified state from the underlying instance. When false, deleting this config will not immediately remove any state from the underlying instance. State will be removed on the next instance recreation or update.
    zone string
    Zone where the containing instance group manager is located
    instance_group_manager str
    The instance group manager this instance config is part of.


    minimal_action str
    The minimal action to perform on the instance during an update. Default is NONE. Possible values are:

    • REPLACE
    • RESTART
    • REFRESH
    • NONE
    most_disruptive_allowed_action str
    The most disruptive action to perform on the instance during an update. Default is REPLACE. Possible values are:

    • REPLACE
    • RESTART
    • REFRESH
    • NONE
    name str
    The name for this per-instance config and its corresponding instance.
    preserved_state PerInstanceConfigPreservedStateArgs
    The preserved state for this instance. Structure is documented below.
    project str
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    remove_instance_on_destroy bool
    When true, deleting this config will immediately remove the underlying instance. When false, deleting this config will use the behavior as determined by remove_instance_on_destroy.
    remove_instance_state_on_destroy bool
    When true, deleting this config will immediately remove any specified state from the underlying instance. When false, deleting this config will not immediately remove any state from the underlying instance. State will be removed on the next instance recreation or update.
    zone str
    Zone where the containing instance group manager is located
    instanceGroupManager String
    The instance group manager this instance config is part of.


    minimalAction String
    The minimal action to perform on the instance during an update. Default is NONE. Possible values are:

    • REPLACE
    • RESTART
    • REFRESH
    • NONE
    mostDisruptiveAllowedAction String
    The most disruptive action to perform on the instance during an update. Default is REPLACE. Possible values are:

    • REPLACE
    • RESTART
    • REFRESH
    • NONE
    name String
    The name for this per-instance config and its corresponding instance.
    preservedState Property Map
    The preserved state for this instance. Structure is documented below.
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    removeInstanceOnDestroy Boolean
    When true, deleting this config will immediately remove the underlying instance. When false, deleting this config will use the behavior as determined by remove_instance_on_destroy.
    removeInstanceStateOnDestroy Boolean
    When true, deleting this config will immediately remove any specified state from the underlying instance. When false, deleting this config will not immediately remove any state from the underlying instance. State will be removed on the next instance recreation or update.
    zone String
    Zone where the containing instance group manager is located

    Outputs

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

    Id string
    The provider-assigned unique ID for this managed resource.
    Id string
    The provider-assigned unique ID for this managed resource.
    id String
    The provider-assigned unique ID for this managed resource.
    id string
    The provider-assigned unique ID for this managed resource.
    id str
    The provider-assigned unique ID for this managed resource.
    id String
    The provider-assigned unique ID for this managed resource.

    Look up Existing PerInstanceConfig Resource

    Get an existing PerInstanceConfig 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?: PerInstanceConfigState, opts?: CustomResourceOptions): PerInstanceConfig
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            instance_group_manager: Optional[str] = None,
            minimal_action: Optional[str] = None,
            most_disruptive_allowed_action: Optional[str] = None,
            name: Optional[str] = None,
            preserved_state: Optional[PerInstanceConfigPreservedStateArgs] = None,
            project: Optional[str] = None,
            remove_instance_on_destroy: Optional[bool] = None,
            remove_instance_state_on_destroy: Optional[bool] = None,
            zone: Optional[str] = None) -> PerInstanceConfig
    func GetPerInstanceConfig(ctx *Context, name string, id IDInput, state *PerInstanceConfigState, opts ...ResourceOption) (*PerInstanceConfig, error)
    public static PerInstanceConfig Get(string name, Input<string> id, PerInstanceConfigState? state, CustomResourceOptions? opts = null)
    public static PerInstanceConfig get(String name, Output<String> id, PerInstanceConfigState 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:
    InstanceGroupManager string
    The instance group manager this instance config is part of.


    MinimalAction string
    The minimal action to perform on the instance during an update. Default is NONE. Possible values are:

    • REPLACE
    • RESTART
    • REFRESH
    • NONE
    MostDisruptiveAllowedAction string
    The most disruptive action to perform on the instance during an update. Default is REPLACE. Possible values are:

    • REPLACE
    • RESTART
    • REFRESH
    • NONE
    Name string
    The name for this per-instance config and its corresponding instance.
    PreservedState PerInstanceConfigPreservedState
    The preserved state for this instance. Structure is documented below.
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    RemoveInstanceOnDestroy bool
    When true, deleting this config will immediately remove the underlying instance. When false, deleting this config will use the behavior as determined by remove_instance_on_destroy.
    RemoveInstanceStateOnDestroy bool
    When true, deleting this config will immediately remove any specified state from the underlying instance. When false, deleting this config will not immediately remove any state from the underlying instance. State will be removed on the next instance recreation or update.
    Zone string
    Zone where the containing instance group manager is located
    InstanceGroupManager string
    The instance group manager this instance config is part of.


    MinimalAction string
    The minimal action to perform on the instance during an update. Default is NONE. Possible values are:

    • REPLACE
    • RESTART
    • REFRESH
    • NONE
    MostDisruptiveAllowedAction string
    The most disruptive action to perform on the instance during an update. Default is REPLACE. Possible values are:

    • REPLACE
    • RESTART
    • REFRESH
    • NONE
    Name string
    The name for this per-instance config and its corresponding instance.
    PreservedState PerInstanceConfigPreservedStateArgs
    The preserved state for this instance. Structure is documented below.
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    RemoveInstanceOnDestroy bool
    When true, deleting this config will immediately remove the underlying instance. When false, deleting this config will use the behavior as determined by remove_instance_on_destroy.
    RemoveInstanceStateOnDestroy bool
    When true, deleting this config will immediately remove any specified state from the underlying instance. When false, deleting this config will not immediately remove any state from the underlying instance. State will be removed on the next instance recreation or update.
    Zone string
    Zone where the containing instance group manager is located
    instanceGroupManager String
    The instance group manager this instance config is part of.


    minimalAction String
    The minimal action to perform on the instance during an update. Default is NONE. Possible values are:

    • REPLACE
    • RESTART
    • REFRESH
    • NONE
    mostDisruptiveAllowedAction String
    The most disruptive action to perform on the instance during an update. Default is REPLACE. Possible values are:

    • REPLACE
    • RESTART
    • REFRESH
    • NONE
    name String
    The name for this per-instance config and its corresponding instance.
    preservedState PerInstanceConfigPreservedState
    The preserved state for this instance. Structure is documented below.
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    removeInstanceOnDestroy Boolean
    When true, deleting this config will immediately remove the underlying instance. When false, deleting this config will use the behavior as determined by remove_instance_on_destroy.
    removeInstanceStateOnDestroy Boolean
    When true, deleting this config will immediately remove any specified state from the underlying instance. When false, deleting this config will not immediately remove any state from the underlying instance. State will be removed on the next instance recreation or update.
    zone String
    Zone where the containing instance group manager is located
    instanceGroupManager string
    The instance group manager this instance config is part of.


    minimalAction string
    The minimal action to perform on the instance during an update. Default is NONE. Possible values are:

    • REPLACE
    • RESTART
    • REFRESH
    • NONE
    mostDisruptiveAllowedAction string
    The most disruptive action to perform on the instance during an update. Default is REPLACE. Possible values are:

    • REPLACE
    • RESTART
    • REFRESH
    • NONE
    name string
    The name for this per-instance config and its corresponding instance.
    preservedState PerInstanceConfigPreservedState
    The preserved state for this instance. Structure is documented below.
    project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    removeInstanceOnDestroy boolean
    When true, deleting this config will immediately remove the underlying instance. When false, deleting this config will use the behavior as determined by remove_instance_on_destroy.
    removeInstanceStateOnDestroy boolean
    When true, deleting this config will immediately remove any specified state from the underlying instance. When false, deleting this config will not immediately remove any state from the underlying instance. State will be removed on the next instance recreation or update.
    zone string
    Zone where the containing instance group manager is located
    instance_group_manager str
    The instance group manager this instance config is part of.


    minimal_action str
    The minimal action to perform on the instance during an update. Default is NONE. Possible values are:

    • REPLACE
    • RESTART
    • REFRESH
    • NONE
    most_disruptive_allowed_action str
    The most disruptive action to perform on the instance during an update. Default is REPLACE. Possible values are:

    • REPLACE
    • RESTART
    • REFRESH
    • NONE
    name str
    The name for this per-instance config and its corresponding instance.
    preserved_state PerInstanceConfigPreservedStateArgs
    The preserved state for this instance. Structure is documented below.
    project str
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    remove_instance_on_destroy bool
    When true, deleting this config will immediately remove the underlying instance. When false, deleting this config will use the behavior as determined by remove_instance_on_destroy.
    remove_instance_state_on_destroy bool
    When true, deleting this config will immediately remove any specified state from the underlying instance. When false, deleting this config will not immediately remove any state from the underlying instance. State will be removed on the next instance recreation or update.
    zone str
    Zone where the containing instance group manager is located
    instanceGroupManager String
    The instance group manager this instance config is part of.


    minimalAction String
    The minimal action to perform on the instance during an update. Default is NONE. Possible values are:

    • REPLACE
    • RESTART
    • REFRESH
    • NONE
    mostDisruptiveAllowedAction String
    The most disruptive action to perform on the instance during an update. Default is REPLACE. Possible values are:

    • REPLACE
    • RESTART
    • REFRESH
    • NONE
    name String
    The name for this per-instance config and its corresponding instance.
    preservedState Property Map
    The preserved state for this instance. Structure is documented below.
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    removeInstanceOnDestroy Boolean
    When true, deleting this config will immediately remove the underlying instance. When false, deleting this config will use the behavior as determined by remove_instance_on_destroy.
    removeInstanceStateOnDestroy Boolean
    When true, deleting this config will immediately remove any specified state from the underlying instance. When false, deleting this config will not immediately remove any state from the underlying instance. State will be removed on the next instance recreation or update.
    zone String
    Zone where the containing instance group manager is located

    Supporting Types

    PerInstanceConfigPreservedState, PerInstanceConfigPreservedStateArgs

    Disks List<PerInstanceConfigPreservedStateDisk>
    Stateful disks for the instance. Structure is documented below.
    ExternalIps List<PerInstanceConfigPreservedStateExternalIp>
    Preserved external IPs defined for this instance. This map is keyed with the name of the network interface. Structure is documented below.
    InternalIps List<PerInstanceConfigPreservedStateInternalIp>
    Preserved internal IPs defined for this instance. This map is keyed with the name of the network interface. Structure is documented below.
    Metadata Dictionary<string, string>
    Preserved metadata defined for this instance. This is a list of key->value pairs.
    Disks []PerInstanceConfigPreservedStateDisk
    Stateful disks for the instance. Structure is documented below.
    ExternalIps []PerInstanceConfigPreservedStateExternalIp
    Preserved external IPs defined for this instance. This map is keyed with the name of the network interface. Structure is documented below.
    InternalIps []PerInstanceConfigPreservedStateInternalIp
    Preserved internal IPs defined for this instance. This map is keyed with the name of the network interface. Structure is documented below.
    Metadata map[string]string
    Preserved metadata defined for this instance. This is a list of key->value pairs.
    disks List<PerInstanceConfigPreservedStateDisk>
    Stateful disks for the instance. Structure is documented below.
    externalIps List<PerInstanceConfigPreservedStateExternalIp>
    Preserved external IPs defined for this instance. This map is keyed with the name of the network interface. Structure is documented below.
    internalIps List<PerInstanceConfigPreservedStateInternalIp>
    Preserved internal IPs defined for this instance. This map is keyed with the name of the network interface. Structure is documented below.
    metadata Map<String,String>
    Preserved metadata defined for this instance. This is a list of key->value pairs.
    disks PerInstanceConfigPreservedStateDisk[]
    Stateful disks for the instance. Structure is documented below.
    externalIps PerInstanceConfigPreservedStateExternalIp[]
    Preserved external IPs defined for this instance. This map is keyed with the name of the network interface. Structure is documented below.
    internalIps PerInstanceConfigPreservedStateInternalIp[]
    Preserved internal IPs defined for this instance. This map is keyed with the name of the network interface. Structure is documented below.
    metadata {[key: string]: string}
    Preserved metadata defined for this instance. This is a list of key->value pairs.
    disks Sequence[PerInstanceConfigPreservedStateDisk]
    Stateful disks for the instance. Structure is documented below.
    external_ips Sequence[PerInstanceConfigPreservedStateExternalIp]
    Preserved external IPs defined for this instance. This map is keyed with the name of the network interface. Structure is documented below.
    internal_ips Sequence[PerInstanceConfigPreservedStateInternalIp]
    Preserved internal IPs defined for this instance. This map is keyed with the name of the network interface. Structure is documented below.
    metadata Mapping[str, str]
    Preserved metadata defined for this instance. This is a list of key->value pairs.
    disks List<Property Map>
    Stateful disks for the instance. Structure is documented below.
    externalIps List<Property Map>
    Preserved external IPs defined for this instance. This map is keyed with the name of the network interface. Structure is documented below.
    internalIps List<Property Map>
    Preserved internal IPs defined for this instance. This map is keyed with the name of the network interface. Structure is documented below.
    metadata Map<String>
    Preserved metadata defined for this instance. This is a list of key->value pairs.

    PerInstanceConfigPreservedStateDisk, PerInstanceConfigPreservedStateDiskArgs

    DeviceName string
    A unique device name that is reflected into the /dev/ tree of a Linux operating system running within the instance.
    Source string
    The URI of an existing persistent disk to attach under the specified device-name in the format projects/project-id/zones/zone/disks/disk-name.
    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. Default value is NEVER. Possible values are: NEVER, ON_PERMANENT_INSTANCE_DELETION.
    Mode string
    The mode of the disk. Default value is READ_WRITE. Possible values are: READ_ONLY, READ_WRITE.
    DeviceName string
    A unique device name that is reflected into the /dev/ tree of a Linux operating system running within the instance.
    Source string
    The URI of an existing persistent disk to attach under the specified device-name in the format projects/project-id/zones/zone/disks/disk-name.
    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. Default value is NEVER. Possible values are: NEVER, ON_PERMANENT_INSTANCE_DELETION.
    Mode string
    The mode of the disk. Default value is READ_WRITE. Possible values are: READ_ONLY, READ_WRITE.
    deviceName String
    A unique device name that is reflected into the /dev/ tree of a Linux operating system running within the instance.
    source String
    The URI of an existing persistent disk to attach under the specified device-name in the format projects/project-id/zones/zone/disks/disk-name.
    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. Default value is NEVER. Possible values are: NEVER, ON_PERMANENT_INSTANCE_DELETION.
    mode String
    The mode of the disk. Default value is READ_WRITE. Possible values are: READ_ONLY, READ_WRITE.
    deviceName string
    A unique device name that is reflected into the /dev/ tree of a Linux operating system running within the instance.
    source string
    The URI of an existing persistent disk to attach under the specified device-name in the format projects/project-id/zones/zone/disks/disk-name.
    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. Default value is NEVER. Possible values are: NEVER, ON_PERMANENT_INSTANCE_DELETION.
    mode string
    The mode of the disk. Default value is READ_WRITE. Possible values are: READ_ONLY, READ_WRITE.
    device_name str
    A unique device name that is reflected into the /dev/ tree of a Linux operating system running within the instance.
    source str
    The URI of an existing persistent disk to attach under the specified device-name in the format projects/project-id/zones/zone/disks/disk-name.
    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. Default value is NEVER. Possible values are: NEVER, ON_PERMANENT_INSTANCE_DELETION.
    mode str
    The mode of the disk. Default value is READ_WRITE. Possible values are: READ_ONLY, READ_WRITE.
    deviceName String
    A unique device name that is reflected into the /dev/ tree of a Linux operating system running within the instance.
    source String
    The URI of an existing persistent disk to attach under the specified device-name in the format projects/project-id/zones/zone/disks/disk-name.
    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. Default value is NEVER. Possible values are: NEVER, ON_PERMANENT_INSTANCE_DELETION.
    mode String
    The mode of the disk. Default value is READ_WRITE. Possible values are: READ_ONLY, READ_WRITE.

    PerInstanceConfigPreservedStateExternalIp, PerInstanceConfigPreservedStateExternalIpArgs

    InterfaceName string
    The identifier for this object. Format specified above.
    AutoDelete string
    These stateful IPs will never be released during autohealing, update or VM instance recreate operations. This flag is used to configure if the IP reservation should be deleted after it is no longer used by the group, e.g. when the given instance or the whole group is deleted. Default value is NEVER. Possible values are: NEVER, ON_PERMANENT_INSTANCE_DELETION.
    IpAddress PerInstanceConfigPreservedStateExternalIpIpAddress
    Ip address representation Structure is documented below.
    InterfaceName string
    The identifier for this object. Format specified above.
    AutoDelete string
    These stateful IPs will never be released during autohealing, update or VM instance recreate operations. This flag is used to configure if the IP reservation should be deleted after it is no longer used by the group, e.g. when the given instance or the whole group is deleted. Default value is NEVER. Possible values are: NEVER, ON_PERMANENT_INSTANCE_DELETION.
    IpAddress PerInstanceConfigPreservedStateExternalIpIpAddress
    Ip address representation Structure is documented below.
    interfaceName String
    The identifier for this object. Format specified above.
    autoDelete String
    These stateful IPs will never be released during autohealing, update or VM instance recreate operations. This flag is used to configure if the IP reservation should be deleted after it is no longer used by the group, e.g. when the given instance or the whole group is deleted. Default value is NEVER. Possible values are: NEVER, ON_PERMANENT_INSTANCE_DELETION.
    ipAddress PerInstanceConfigPreservedStateExternalIpIpAddress
    Ip address representation Structure is documented below.
    interfaceName string
    The identifier for this object. Format specified above.
    autoDelete string
    These stateful IPs will never be released during autohealing, update or VM instance recreate operations. This flag is used to configure if the IP reservation should be deleted after it is no longer used by the group, e.g. when the given instance or the whole group is deleted. Default value is NEVER. Possible values are: NEVER, ON_PERMANENT_INSTANCE_DELETION.
    ipAddress PerInstanceConfigPreservedStateExternalIpIpAddress
    Ip address representation Structure is documented below.
    interface_name str
    The identifier for this object. Format specified above.
    auto_delete str
    These stateful IPs will never be released during autohealing, update or VM instance recreate operations. This flag is used to configure if the IP reservation should be deleted after it is no longer used by the group, e.g. when the given instance or the whole group is deleted. Default value is NEVER. Possible values are: NEVER, ON_PERMANENT_INSTANCE_DELETION.
    ip_address PerInstanceConfigPreservedStateExternalIpIpAddress
    Ip address representation Structure is documented below.
    interfaceName String
    The identifier for this object. Format specified above.
    autoDelete String
    These stateful IPs will never be released during autohealing, update or VM instance recreate operations. This flag is used to configure if the IP reservation should be deleted after it is no longer used by the group, e.g. when the given instance or the whole group is deleted. Default value is NEVER. Possible values are: NEVER, ON_PERMANENT_INSTANCE_DELETION.
    ipAddress Property Map
    Ip address representation Structure is documented below.

    PerInstanceConfigPreservedStateExternalIpIpAddress, PerInstanceConfigPreservedStateExternalIpIpAddressArgs

    Address string
    The URL of the reservation for this IP address.
    Address string
    The URL of the reservation for this IP address.
    address String
    The URL of the reservation for this IP address.
    address string
    The URL of the reservation for this IP address.
    address str
    The URL of the reservation for this IP address.
    address String
    The URL of the reservation for this IP address.

    PerInstanceConfigPreservedStateInternalIp, PerInstanceConfigPreservedStateInternalIpArgs

    InterfaceName string
    The identifier for this object. Format specified above.
    AutoDelete string
    These stateful IPs will never be released during autohealing, update or VM instance recreate operations. This flag is used to configure if the IP reservation should be deleted after it is no longer used by the group, e.g. when the given instance or the whole group is deleted. Default value is NEVER. Possible values are: NEVER, ON_PERMANENT_INSTANCE_DELETION.
    IpAddress PerInstanceConfigPreservedStateInternalIpIpAddress
    Ip address representation Structure is documented below.
    InterfaceName string
    The identifier for this object. Format specified above.
    AutoDelete string
    These stateful IPs will never be released during autohealing, update or VM instance recreate operations. This flag is used to configure if the IP reservation should be deleted after it is no longer used by the group, e.g. when the given instance or the whole group is deleted. Default value is NEVER. Possible values are: NEVER, ON_PERMANENT_INSTANCE_DELETION.
    IpAddress PerInstanceConfigPreservedStateInternalIpIpAddress
    Ip address representation Structure is documented below.
    interfaceName String
    The identifier for this object. Format specified above.
    autoDelete String
    These stateful IPs will never be released during autohealing, update or VM instance recreate operations. This flag is used to configure if the IP reservation should be deleted after it is no longer used by the group, e.g. when the given instance or the whole group is deleted. Default value is NEVER. Possible values are: NEVER, ON_PERMANENT_INSTANCE_DELETION.
    ipAddress PerInstanceConfigPreservedStateInternalIpIpAddress
    Ip address representation Structure is documented below.
    interfaceName string
    The identifier for this object. Format specified above.
    autoDelete string
    These stateful IPs will never be released during autohealing, update or VM instance recreate operations. This flag is used to configure if the IP reservation should be deleted after it is no longer used by the group, e.g. when the given instance or the whole group is deleted. Default value is NEVER. Possible values are: NEVER, ON_PERMANENT_INSTANCE_DELETION.
    ipAddress PerInstanceConfigPreservedStateInternalIpIpAddress
    Ip address representation Structure is documented below.
    interface_name str
    The identifier for this object. Format specified above.
    auto_delete str
    These stateful IPs will never be released during autohealing, update or VM instance recreate operations. This flag is used to configure if the IP reservation should be deleted after it is no longer used by the group, e.g. when the given instance or the whole group is deleted. Default value is NEVER. Possible values are: NEVER, ON_PERMANENT_INSTANCE_DELETION.
    ip_address PerInstanceConfigPreservedStateInternalIpIpAddress
    Ip address representation Structure is documented below.
    interfaceName String
    The identifier for this object. Format specified above.
    autoDelete String
    These stateful IPs will never be released during autohealing, update or VM instance recreate operations. This flag is used to configure if the IP reservation should be deleted after it is no longer used by the group, e.g. when the given instance or the whole group is deleted. Default value is NEVER. Possible values are: NEVER, ON_PERMANENT_INSTANCE_DELETION.
    ipAddress Property Map
    Ip address representation Structure is documented below.

    PerInstanceConfigPreservedStateInternalIpIpAddress, PerInstanceConfigPreservedStateInternalIpIpAddressArgs

    Address string
    The URL of the reservation for this IP address.
    Address string
    The URL of the reservation for this IP address.
    address String
    The URL of the reservation for this IP address.
    address string
    The URL of the reservation for this IP address.
    address str
    The URL of the reservation for this IP address.
    address String
    The URL of the reservation for this IP address.

    Import

    PerInstanceConfig can be imported using any of these accepted formats:

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

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

    • {{zone}}/{{instance_group_manager}}/{{name}}

    • {{instance_group_manager}}/{{name}}

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

    $ pulumi import gcp:compute/perInstanceConfig:PerInstanceConfig default projects/{{project}}/zones/{{zone}}/instanceGroupManagers/{{instance_group_manager}}/{{name}}
    
    $ pulumi import gcp:compute/perInstanceConfig:PerInstanceConfig default {{project}}/{{zone}}/{{instance_group_manager}}/{{name}}
    
    $ pulumi import gcp:compute/perInstanceConfig:PerInstanceConfig default {{zone}}/{{instance_group_manager}}/{{name}}
    
    $ pulumi import gcp:compute/perInstanceConfig:PerInstanceConfig default {{instance_group_manager}}/{{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 v7.27.0 published on Thursday, Jun 13, 2024 by Pulumi