1. Packages
  2. Google Cloud (GCP) Classic
  3. API Docs
  4. compute
  5. Instance
Google Cloud Classic v7.19.0 published on Thursday, Apr 18, 2024 by Pulumi

gcp.compute.Instance

Explore with Pulumi AI

gcp logo
Google Cloud Classic v7.19.0 published on Thursday, Apr 18, 2024 by Pulumi

    Manages a VM instance resource within GCE. For more information see the official documentation and API.

    Example Usage

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const _default = new gcp.serviceaccount.Account("default", {
        accountId: "my-custom-sa",
        displayName: "Custom SA for VM Instance",
    });
    const defaultInstance = new gcp.compute.Instance("default", {
        networkInterfaces: [{
            accessConfigs: [{}],
            network: "default",
        }],
        name: "my-instance",
        machineType: "n2-standard-2",
        zone: "us-central1-a",
        tags: [
            "foo",
            "bar",
        ],
        bootDisk: {
            initializeParams: {
                image: "debian-cloud/debian-11",
                labels: {
                    my_label: "value",
                },
            },
        },
        scratchDisks: [{
            "interface": "NVME",
        }],
        metadata: {
            foo: "bar",
        },
        metadataStartupScript: "echo hi > /test.txt",
        serviceAccount: {
            email: _default.email,
            scopes: ["cloud-platform"],
        },
    });
    
    import pulumi
    import pulumi_gcp as gcp
    
    default = gcp.serviceaccount.Account("default",
        account_id="my-custom-sa",
        display_name="Custom SA for VM Instance")
    default_instance = gcp.compute.Instance("default",
        network_interfaces=[gcp.compute.InstanceNetworkInterfaceArgs(
            access_configs=[gcp.compute.InstanceNetworkInterfaceAccessConfigArgs()],
            network="default",
        )],
        name="my-instance",
        machine_type="n2-standard-2",
        zone="us-central1-a",
        tags=[
            "foo",
            "bar",
        ],
        boot_disk=gcp.compute.InstanceBootDiskArgs(
            initialize_params=gcp.compute.InstanceBootDiskInitializeParamsArgs(
                image="debian-cloud/debian-11",
                labels={
                    "my_label": "value",
                },
            ),
        ),
        scratch_disks=[gcp.compute.InstanceScratchDiskArgs(
            interface="NVME",
        )],
        metadata={
            "foo": "bar",
        },
        metadata_startup_script="echo hi > /test.txt",
        service_account=gcp.compute.InstanceServiceAccountArgs(
            email=default.email,
            scopes=["cloud-platform"],
        ))
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute"
    	"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/serviceaccount"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := serviceaccount.NewAccount(ctx, "default", &serviceaccount.AccountArgs{
    			AccountId:   pulumi.String("my-custom-sa"),
    			DisplayName: pulumi.String("Custom SA for VM Instance"),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = compute.NewInstance(ctx, "default", &compute.InstanceArgs{
    			NetworkInterfaces: compute.InstanceNetworkInterfaceArray{
    				&compute.InstanceNetworkInterfaceArgs{
    					AccessConfigs: compute.InstanceNetworkInterfaceAccessConfigArray{
    						nil,
    					},
    					Network: pulumi.String("default"),
    				},
    			},
    			Name:        pulumi.String("my-instance"),
    			MachineType: pulumi.String("n2-standard-2"),
    			Zone:        pulumi.String("us-central1-a"),
    			Tags: pulumi.StringArray{
    				pulumi.String("foo"),
    				pulumi.String("bar"),
    			},
    			BootDisk: &compute.InstanceBootDiskArgs{
    				InitializeParams: &compute.InstanceBootDiskInitializeParamsArgs{
    					Image: pulumi.String("debian-cloud/debian-11"),
    					Labels: pulumi.Map{
    						"my_label": pulumi.Any("value"),
    					},
    				},
    			},
    			ScratchDisks: compute.InstanceScratchDiskArray{
    				&compute.InstanceScratchDiskArgs{
    					Interface: pulumi.String("NVME"),
    				},
    			},
    			Metadata: pulumi.StringMap{
    				"foo": pulumi.String("bar"),
    			},
    			MetadataStartupScript: pulumi.String("echo hi > /test.txt"),
    			ServiceAccount: &compute.InstanceServiceAccountArgs{
    				Email: _default.Email,
    				Scopes: pulumi.StringArray{
    					pulumi.String("cloud-platform"),
    				},
    			},
    		})
    		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 @default = new Gcp.ServiceAccount.Account("default", new()
        {
            AccountId = "my-custom-sa",
            DisplayName = "Custom SA for VM Instance",
        });
    
        var defaultInstance = new Gcp.Compute.Instance("default", new()
        {
            NetworkInterfaces = new[]
            {
                new Gcp.Compute.Inputs.InstanceNetworkInterfaceArgs
                {
                    AccessConfigs = new[]
                    {
                        null,
                    },
                    Network = "default",
                },
            },
            Name = "my-instance",
            MachineType = "n2-standard-2",
            Zone = "us-central1-a",
            Tags = new[]
            {
                "foo",
                "bar",
            },
            BootDisk = new Gcp.Compute.Inputs.InstanceBootDiskArgs
            {
                InitializeParams = new Gcp.Compute.Inputs.InstanceBootDiskInitializeParamsArgs
                {
                    Image = "debian-cloud/debian-11",
                    Labels = 
                    {
                        { "my_label", "value" },
                    },
                },
            },
            ScratchDisks = new[]
            {
                new Gcp.Compute.Inputs.InstanceScratchDiskArgs
                {
                    Interface = "NVME",
                },
            },
            Metadata = 
            {
                { "foo", "bar" },
            },
            MetadataStartupScript = "echo hi > /test.txt",
            ServiceAccount = new Gcp.Compute.Inputs.InstanceServiceAccountArgs
            {
                Email = @default.Email,
                Scopes = new[]
                {
                    "cloud-platform",
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.gcp.serviceaccount.Account;
    import com.pulumi.gcp.serviceaccount.AccountArgs;
    import com.pulumi.gcp.compute.Instance;
    import com.pulumi.gcp.compute.InstanceArgs;
    import com.pulumi.gcp.compute.inputs.InstanceNetworkInterfaceArgs;
    import com.pulumi.gcp.compute.inputs.InstanceBootDiskArgs;
    import com.pulumi.gcp.compute.inputs.InstanceBootDiskInitializeParamsArgs;
    import com.pulumi.gcp.compute.inputs.InstanceScratchDiskArgs;
    import com.pulumi.gcp.compute.inputs.InstanceServiceAccountArgs;
    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 default_ = new Account("default", AccountArgs.builder()        
                .accountId("my-custom-sa")
                .displayName("Custom SA for VM Instance")
                .build());
    
            var defaultInstance = new Instance("defaultInstance", InstanceArgs.builder()        
                .networkInterfaces(InstanceNetworkInterfaceArgs.builder()
                    .accessConfigs()
                    .network("default")
                    .build())
                .name("my-instance")
                .machineType("n2-standard-2")
                .zone("us-central1-a")
                .tags(            
                    "foo",
                    "bar")
                .bootDisk(InstanceBootDiskArgs.builder()
                    .initializeParams(InstanceBootDiskInitializeParamsArgs.builder()
                        .image("debian-cloud/debian-11")
                        .labels(Map.of("my_label", "value"))
                        .build())
                    .build())
                .scratchDisks(InstanceScratchDiskArgs.builder()
                    .interface_("NVME")
                    .build())
                .metadata(Map.of("foo", "bar"))
                .metadataStartupScript("echo hi > /test.txt")
                .serviceAccount(InstanceServiceAccountArgs.builder()
                    .email(default_.email())
                    .scopes("cloud-platform")
                    .build())
                .build());
    
        }
    }
    
    resources:
      default:
        type: gcp:serviceaccount:Account
        properties:
          accountId: my-custom-sa
          displayName: Custom SA for VM Instance
      defaultInstance:
        type: gcp:compute:Instance
        name: default
        properties:
          networkInterfaces:
            - accessConfigs:
                - {}
              network: default
          name: my-instance
          machineType: n2-standard-2
          zone: us-central1-a
          tags:
            - foo
            - bar
          bootDisk:
            initializeParams:
              image: debian-cloud/debian-11
              labels:
                my_label: value
          scratchDisks:
            - interface: NVME
          metadata:
            foo: bar
          metadataStartupScript: echo hi > /test.txt
          serviceAccount:
            email: ${default.email}
            scopes:
              - cloud-platform
    

    Create Instance Resource

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

    Constructor syntax

    new Instance(name: string, args: InstanceArgs, opts?: CustomResourceOptions);
    @overload
    def Instance(resource_name: str,
                 args: InstanceArgs,
                 opts: Optional[ResourceOptions] = None)
    
    @overload
    def Instance(resource_name: str,
                 opts: Optional[ResourceOptions] = None,
                 boot_disk: Optional[InstanceBootDiskArgs] = None,
                 network_interfaces: Optional[Sequence[InstanceNetworkInterfaceArgs]] = None,
                 machine_type: Optional[str] = None,
                 metadata: Optional[Mapping[str, str]] = None,
                 min_cpu_platform: Optional[str] = None,
                 confidential_instance_config: Optional[InstanceConfidentialInstanceConfigArgs] = None,
                 deletion_protection: Optional[bool] = None,
                 description: Optional[str] = None,
                 desired_status: Optional[str] = None,
                 enable_display: Optional[bool] = None,
                 guest_accelerators: Optional[Sequence[InstanceGuestAcceleratorArgs]] = None,
                 hostname: Optional[str] = None,
                 labels: Optional[Mapping[str, str]] = None,
                 attached_disks: Optional[Sequence[InstanceAttachedDiskArgs]] = None,
                 advanced_machine_features: Optional[InstanceAdvancedMachineFeaturesArgs] = None,
                 metadata_startup_script: Optional[str] = None,
                 can_ip_forward: Optional[bool] = None,
                 name: Optional[str] = None,
                 allow_stopping_for_update: Optional[bool] = None,
                 network_performance_config: Optional[InstanceNetworkPerformanceConfigArgs] = None,
                 params: Optional[InstanceParamsArgs] = None,
                 project: Optional[str] = None,
                 reservation_affinity: Optional[InstanceReservationAffinityArgs] = None,
                 resource_policies: Optional[str] = None,
                 scheduling: Optional[InstanceSchedulingArgs] = None,
                 scratch_disks: Optional[Sequence[InstanceScratchDiskArgs]] = None,
                 service_account: Optional[InstanceServiceAccountArgs] = None,
                 shielded_instance_config: Optional[InstanceShieldedInstanceConfigArgs] = None,
                 tags: Optional[Sequence[str]] = None,
                 zone: Optional[str] = None)
    func NewInstance(ctx *Context, name string, args InstanceArgs, opts ...ResourceOption) (*Instance, error)
    public Instance(string name, InstanceArgs args, CustomResourceOptions? opts = null)
    public Instance(String name, InstanceArgs args)
    public Instance(String name, InstanceArgs args, CustomResourceOptions options)
    
    type: gcp:compute:Instance
    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 InstanceArgs
    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 InstanceArgs
    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 InstanceArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args InstanceArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args InstanceArgs
    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 exampleinstanceResourceResourceFromComputeinstance = new Gcp.Compute.Instance("exampleinstanceResourceResourceFromComputeinstance", new()
    {
        BootDisk = new Gcp.Compute.Inputs.InstanceBootDiskArgs
        {
            AutoDelete = false,
            DeviceName = "string",
            DiskEncryptionKeyRaw = "string",
            DiskEncryptionKeySha256 = "string",
            InitializeParams = new Gcp.Compute.Inputs.InstanceBootDiskInitializeParamsArgs
            {
                EnableConfidentialCompute = false,
                Image = "string",
                Labels = 
                {
                    { "string", "any" },
                },
                ProvisionedIops = 0,
                ProvisionedThroughput = 0,
                ResourceManagerTags = 
                {
                    { "string", "any" },
                },
                Size = 0,
                Type = "string",
            },
            KmsKeySelfLink = "string",
            Mode = "string",
            Source = "string",
        },
        NetworkInterfaces = new[]
        {
            new Gcp.Compute.Inputs.InstanceNetworkInterfaceArgs
            {
                AccessConfigs = new[]
                {
                    new Gcp.Compute.Inputs.InstanceNetworkInterfaceAccessConfigArgs
                    {
                        NatIp = "string",
                        NetworkTier = "string",
                        PublicPtrDomainName = "string",
                        SecurityPolicy = "string",
                    },
                },
                AliasIpRanges = new[]
                {
                    new Gcp.Compute.Inputs.InstanceNetworkInterfaceAliasIpRangeArgs
                    {
                        IpCidrRange = "string",
                        SubnetworkRangeName = "string",
                    },
                },
                InternalIpv6PrefixLength = 0,
                Ipv6AccessConfigs = new[]
                {
                    new Gcp.Compute.Inputs.InstanceNetworkInterfaceIpv6AccessConfigArgs
                    {
                        NetworkTier = "string",
                        ExternalIpv6 = "string",
                        ExternalIpv6PrefixLength = "string",
                        Name = "string",
                        PublicPtrDomainName = "string",
                        SecurityPolicy = "string",
                    },
                },
                Ipv6AccessType = "string",
                Ipv6Address = "string",
                Name = "string",
                Network = "string",
                NetworkAttachment = "string",
                NetworkIp = "string",
                NicType = "string",
                QueueCount = 0,
                SecurityPolicy = "string",
                StackType = "string",
                Subnetwork = "string",
                SubnetworkProject = "string",
            },
        },
        MachineType = "string",
        Metadata = 
        {
            { "string", "string" },
        },
        MinCpuPlatform = "string",
        ConfidentialInstanceConfig = new Gcp.Compute.Inputs.InstanceConfidentialInstanceConfigArgs
        {
            ConfidentialInstanceType = "string",
            EnableConfidentialCompute = false,
        },
        DeletionProtection = false,
        Description = "string",
        DesiredStatus = "string",
        EnableDisplay = false,
        GuestAccelerators = new[]
        {
            new Gcp.Compute.Inputs.InstanceGuestAcceleratorArgs
            {
                Count = 0,
                Type = "string",
            },
        },
        Hostname = "string",
        Labels = 
        {
            { "string", "string" },
        },
        AttachedDisks = new[]
        {
            new Gcp.Compute.Inputs.InstanceAttachedDiskArgs
            {
                Source = "string",
                DeviceName = "string",
                DiskEncryptionKeyRaw = "string",
                DiskEncryptionKeySha256 = "string",
                KmsKeySelfLink = "string",
                Mode = "string",
            },
        },
        AdvancedMachineFeatures = new Gcp.Compute.Inputs.InstanceAdvancedMachineFeaturesArgs
        {
            EnableNestedVirtualization = false,
            ThreadsPerCore = 0,
            VisibleCoreCount = 0,
        },
        MetadataStartupScript = "string",
        CanIpForward = false,
        Name = "string",
        AllowStoppingForUpdate = false,
        NetworkPerformanceConfig = new Gcp.Compute.Inputs.InstanceNetworkPerformanceConfigArgs
        {
            TotalEgressBandwidthTier = "string",
        },
        Params = new Gcp.Compute.Inputs.InstanceParamsArgs
        {
            ResourceManagerTags = 
            {
                { "string", "any" },
            },
        },
        Project = "string",
        ReservationAffinity = new Gcp.Compute.Inputs.InstanceReservationAffinityArgs
        {
            Type = "string",
            SpecificReservation = new Gcp.Compute.Inputs.InstanceReservationAffinitySpecificReservationArgs
            {
                Key = "string",
                Values = new[]
                {
                    "string",
                },
            },
        },
        ResourcePolicies = "string",
        Scheduling = new Gcp.Compute.Inputs.InstanceSchedulingArgs
        {
            AutomaticRestart = false,
            InstanceTerminationAction = "string",
            LocalSsdRecoveryTimeout = new Gcp.Compute.Inputs.InstanceSchedulingLocalSsdRecoveryTimeoutArgs
            {
                Seconds = 0,
                Nanos = 0,
            },
            MaintenanceInterval = "string",
            MaxRunDuration = new Gcp.Compute.Inputs.InstanceSchedulingMaxRunDurationArgs
            {
                Seconds = 0,
                Nanos = 0,
            },
            MinNodeCpus = 0,
            NodeAffinities = new[]
            {
                new Gcp.Compute.Inputs.InstanceSchedulingNodeAffinityArgs
                {
                    Key = "string",
                    Operator = "string",
                    Values = new[]
                    {
                        "string",
                    },
                },
            },
            OnHostMaintenance = "string",
            Preemptible = false,
            ProvisioningModel = "string",
        },
        ScratchDisks = new[]
        {
            new Gcp.Compute.Inputs.InstanceScratchDiskArgs
            {
                Interface = "string",
                DeviceName = "string",
                Size = 0,
            },
        },
        ServiceAccount = new Gcp.Compute.Inputs.InstanceServiceAccountArgs
        {
            Scopes = new[]
            {
                "string",
            },
            Email = "string",
        },
        ShieldedInstanceConfig = new Gcp.Compute.Inputs.InstanceShieldedInstanceConfigArgs
        {
            EnableIntegrityMonitoring = false,
            EnableSecureBoot = false,
            EnableVtpm = false,
        },
        Tags = new[]
        {
            "string",
        },
        Zone = "string",
    });
    
    example, err := compute.NewInstance(ctx, "exampleinstanceResourceResourceFromComputeinstance", &compute.InstanceArgs{
    	BootDisk: &compute.InstanceBootDiskArgs{
    		AutoDelete:              pulumi.Bool(false),
    		DeviceName:              pulumi.String("string"),
    		DiskEncryptionKeyRaw:    pulumi.String("string"),
    		DiskEncryptionKeySha256: pulumi.String("string"),
    		InitializeParams: &compute.InstanceBootDiskInitializeParamsArgs{
    			EnableConfidentialCompute: pulumi.Bool(false),
    			Image:                     pulumi.String("string"),
    			Labels: pulumi.Map{
    				"string": pulumi.Any("any"),
    			},
    			ProvisionedIops:       pulumi.Int(0),
    			ProvisionedThroughput: pulumi.Int(0),
    			ResourceManagerTags: pulumi.Map{
    				"string": pulumi.Any("any"),
    			},
    			Size: pulumi.Int(0),
    			Type: pulumi.String("string"),
    		},
    		KmsKeySelfLink: pulumi.String("string"),
    		Mode:           pulumi.String("string"),
    		Source:         pulumi.String("string"),
    	},
    	NetworkInterfaces: compute.InstanceNetworkInterfaceArray{
    		&compute.InstanceNetworkInterfaceArgs{
    			AccessConfigs: compute.InstanceNetworkInterfaceAccessConfigArray{
    				&compute.InstanceNetworkInterfaceAccessConfigArgs{
    					NatIp:               pulumi.String("string"),
    					NetworkTier:         pulumi.String("string"),
    					PublicPtrDomainName: pulumi.String("string"),
    					SecurityPolicy:      pulumi.String("string"),
    				},
    			},
    			AliasIpRanges: compute.InstanceNetworkInterfaceAliasIpRangeArray{
    				&compute.InstanceNetworkInterfaceAliasIpRangeArgs{
    					IpCidrRange:         pulumi.String("string"),
    					SubnetworkRangeName: pulumi.String("string"),
    				},
    			},
    			InternalIpv6PrefixLength: pulumi.Int(0),
    			Ipv6AccessConfigs: compute.InstanceNetworkInterfaceIpv6AccessConfigArray{
    				&compute.InstanceNetworkInterfaceIpv6AccessConfigArgs{
    					NetworkTier:              pulumi.String("string"),
    					ExternalIpv6:             pulumi.String("string"),
    					ExternalIpv6PrefixLength: pulumi.String("string"),
    					Name:                     pulumi.String("string"),
    					PublicPtrDomainName:      pulumi.String("string"),
    					SecurityPolicy:           pulumi.String("string"),
    				},
    			},
    			Ipv6AccessType:    pulumi.String("string"),
    			Ipv6Address:       pulumi.String("string"),
    			Name:              pulumi.String("string"),
    			Network:           pulumi.String("string"),
    			NetworkAttachment: pulumi.String("string"),
    			NetworkIp:         pulumi.String("string"),
    			NicType:           pulumi.String("string"),
    			QueueCount:        pulumi.Int(0),
    			SecurityPolicy:    pulumi.String("string"),
    			StackType:         pulumi.String("string"),
    			Subnetwork:        pulumi.String("string"),
    			SubnetworkProject: pulumi.String("string"),
    		},
    	},
    	MachineType: pulumi.String("string"),
    	Metadata: pulumi.StringMap{
    		"string": pulumi.String("string"),
    	},
    	MinCpuPlatform: pulumi.String("string"),
    	ConfidentialInstanceConfig: &compute.InstanceConfidentialInstanceConfigArgs{
    		ConfidentialInstanceType:  pulumi.String("string"),
    		EnableConfidentialCompute: pulumi.Bool(false),
    	},
    	DeletionProtection: pulumi.Bool(false),
    	Description:        pulumi.String("string"),
    	DesiredStatus:      pulumi.String("string"),
    	EnableDisplay:      pulumi.Bool(false),
    	GuestAccelerators: compute.InstanceGuestAcceleratorArray{
    		&compute.InstanceGuestAcceleratorArgs{
    			Count: pulumi.Int(0),
    			Type:  pulumi.String("string"),
    		},
    	},
    	Hostname: pulumi.String("string"),
    	Labels: pulumi.StringMap{
    		"string": pulumi.String("string"),
    	},
    	AttachedDisks: compute.InstanceAttachedDiskArray{
    		&compute.InstanceAttachedDiskArgs{
    			Source:                  pulumi.String("string"),
    			DeviceName:              pulumi.String("string"),
    			DiskEncryptionKeyRaw:    pulumi.String("string"),
    			DiskEncryptionKeySha256: pulumi.String("string"),
    			KmsKeySelfLink:          pulumi.String("string"),
    			Mode:                    pulumi.String("string"),
    		},
    	},
    	AdvancedMachineFeatures: &compute.InstanceAdvancedMachineFeaturesArgs{
    		EnableNestedVirtualization: pulumi.Bool(false),
    		ThreadsPerCore:             pulumi.Int(0),
    		VisibleCoreCount:           pulumi.Int(0),
    	},
    	MetadataStartupScript:  pulumi.String("string"),
    	CanIpForward:           pulumi.Bool(false),
    	Name:                   pulumi.String("string"),
    	AllowStoppingForUpdate: pulumi.Bool(false),
    	NetworkPerformanceConfig: &compute.InstanceNetworkPerformanceConfigArgs{
    		TotalEgressBandwidthTier: pulumi.String("string"),
    	},
    	Params: &compute.InstanceParamsArgs{
    		ResourceManagerTags: pulumi.Map{
    			"string": pulumi.Any("any"),
    		},
    	},
    	Project: pulumi.String("string"),
    	ReservationAffinity: &compute.InstanceReservationAffinityArgs{
    		Type: pulumi.String("string"),
    		SpecificReservation: &compute.InstanceReservationAffinitySpecificReservationArgs{
    			Key: pulumi.String("string"),
    			Values: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    		},
    	},
    	ResourcePolicies: pulumi.String("string"),
    	Scheduling: &compute.InstanceSchedulingArgs{
    		AutomaticRestart:          pulumi.Bool(false),
    		InstanceTerminationAction: pulumi.String("string"),
    		LocalSsdRecoveryTimeout: &compute.InstanceSchedulingLocalSsdRecoveryTimeoutArgs{
    			Seconds: pulumi.Int(0),
    			Nanos:   pulumi.Int(0),
    		},
    		MaintenanceInterval: pulumi.String("string"),
    		MaxRunDuration: &compute.InstanceSchedulingMaxRunDurationArgs{
    			Seconds: pulumi.Int(0),
    			Nanos:   pulumi.Int(0),
    		},
    		MinNodeCpus: pulumi.Int(0),
    		NodeAffinities: compute.InstanceSchedulingNodeAffinityArray{
    			&compute.InstanceSchedulingNodeAffinityArgs{
    				Key:      pulumi.String("string"),
    				Operator: pulumi.String("string"),
    				Values: pulumi.StringArray{
    					pulumi.String("string"),
    				},
    			},
    		},
    		OnHostMaintenance: pulumi.String("string"),
    		Preemptible:       pulumi.Bool(false),
    		ProvisioningModel: pulumi.String("string"),
    	},
    	ScratchDisks: compute.InstanceScratchDiskArray{
    		&compute.InstanceScratchDiskArgs{
    			Interface:  pulumi.String("string"),
    			DeviceName: pulumi.String("string"),
    			Size:       pulumi.Int(0),
    		},
    	},
    	ServiceAccount: &compute.InstanceServiceAccountArgs{
    		Scopes: pulumi.StringArray{
    			pulumi.String("string"),
    		},
    		Email: pulumi.String("string"),
    	},
    	ShieldedInstanceConfig: &compute.InstanceShieldedInstanceConfigArgs{
    		EnableIntegrityMonitoring: pulumi.Bool(false),
    		EnableSecureBoot:          pulumi.Bool(false),
    		EnableVtpm:                pulumi.Bool(false),
    	},
    	Tags: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	Zone: pulumi.String("string"),
    })
    
    var exampleinstanceResourceResourceFromComputeinstance = new Instance("exampleinstanceResourceResourceFromComputeinstance", InstanceArgs.builder()        
        .bootDisk(InstanceBootDiskArgs.builder()
            .autoDelete(false)
            .deviceName("string")
            .diskEncryptionKeyRaw("string")
            .diskEncryptionKeySha256("string")
            .initializeParams(InstanceBootDiskInitializeParamsArgs.builder()
                .enableConfidentialCompute(false)
                .image("string")
                .labels(Map.of("string", "any"))
                .provisionedIops(0)
                .provisionedThroughput(0)
                .resourceManagerTags(Map.of("string", "any"))
                .size(0)
                .type("string")
                .build())
            .kmsKeySelfLink("string")
            .mode("string")
            .source("string")
            .build())
        .networkInterfaces(InstanceNetworkInterfaceArgs.builder()
            .accessConfigs(InstanceNetworkInterfaceAccessConfigArgs.builder()
                .natIp("string")
                .networkTier("string")
                .publicPtrDomainName("string")
                .securityPolicy("string")
                .build())
            .aliasIpRanges(InstanceNetworkInterfaceAliasIpRangeArgs.builder()
                .ipCidrRange("string")
                .subnetworkRangeName("string")
                .build())
            .internalIpv6PrefixLength(0)
            .ipv6AccessConfigs(InstanceNetworkInterfaceIpv6AccessConfigArgs.builder()
                .networkTier("string")
                .externalIpv6("string")
                .externalIpv6PrefixLength("string")
                .name("string")
                .publicPtrDomainName("string")
                .securityPolicy("string")
                .build())
            .ipv6AccessType("string")
            .ipv6Address("string")
            .name("string")
            .network("string")
            .networkAttachment("string")
            .networkIp("string")
            .nicType("string")
            .queueCount(0)
            .securityPolicy("string")
            .stackType("string")
            .subnetwork("string")
            .subnetworkProject("string")
            .build())
        .machineType("string")
        .metadata(Map.of("string", "string"))
        .minCpuPlatform("string")
        .confidentialInstanceConfig(InstanceConfidentialInstanceConfigArgs.builder()
            .confidentialInstanceType("string")
            .enableConfidentialCompute(false)
            .build())
        .deletionProtection(false)
        .description("string")
        .desiredStatus("string")
        .enableDisplay(false)
        .guestAccelerators(InstanceGuestAcceleratorArgs.builder()
            .count(0)
            .type("string")
            .build())
        .hostname("string")
        .labels(Map.of("string", "string"))
        .attachedDisks(InstanceAttachedDiskArgs.builder()
            .source("string")
            .deviceName("string")
            .diskEncryptionKeyRaw("string")
            .diskEncryptionKeySha256("string")
            .kmsKeySelfLink("string")
            .mode("string")
            .build())
        .advancedMachineFeatures(InstanceAdvancedMachineFeaturesArgs.builder()
            .enableNestedVirtualization(false)
            .threadsPerCore(0)
            .visibleCoreCount(0)
            .build())
        .metadataStartupScript("string")
        .canIpForward(false)
        .name("string")
        .allowStoppingForUpdate(false)
        .networkPerformanceConfig(InstanceNetworkPerformanceConfigArgs.builder()
            .totalEgressBandwidthTier("string")
            .build())
        .params(InstanceParamsArgs.builder()
            .resourceManagerTags(Map.of("string", "any"))
            .build())
        .project("string")
        .reservationAffinity(InstanceReservationAffinityArgs.builder()
            .type("string")
            .specificReservation(InstanceReservationAffinitySpecificReservationArgs.builder()
                .key("string")
                .values("string")
                .build())
            .build())
        .resourcePolicies("string")
        .scheduling(InstanceSchedulingArgs.builder()
            .automaticRestart(false)
            .instanceTerminationAction("string")
            .localSsdRecoveryTimeout(InstanceSchedulingLocalSsdRecoveryTimeoutArgs.builder()
                .seconds(0)
                .nanos(0)
                .build())
            .maintenanceInterval("string")
            .maxRunDuration(InstanceSchedulingMaxRunDurationArgs.builder()
                .seconds(0)
                .nanos(0)
                .build())
            .minNodeCpus(0)
            .nodeAffinities(InstanceSchedulingNodeAffinityArgs.builder()
                .key("string")
                .operator("string")
                .values("string")
                .build())
            .onHostMaintenance("string")
            .preemptible(false)
            .provisioningModel("string")
            .build())
        .scratchDisks(InstanceScratchDiskArgs.builder()
            .interface_("string")
            .deviceName("string")
            .size(0)
            .build())
        .serviceAccount(InstanceServiceAccountArgs.builder()
            .scopes("string")
            .email("string")
            .build())
        .shieldedInstanceConfig(InstanceShieldedInstanceConfigArgs.builder()
            .enableIntegrityMonitoring(false)
            .enableSecureBoot(false)
            .enableVtpm(false)
            .build())
        .tags("string")
        .zone("string")
        .build());
    
    exampleinstance_resource_resource_from_computeinstance = gcp.compute.Instance("exampleinstanceResourceResourceFromComputeinstance",
        boot_disk=gcp.compute.InstanceBootDiskArgs(
            auto_delete=False,
            device_name="string",
            disk_encryption_key_raw="string",
            disk_encryption_key_sha256="string",
            initialize_params=gcp.compute.InstanceBootDiskInitializeParamsArgs(
                enable_confidential_compute=False,
                image="string",
                labels={
                    "string": "any",
                },
                provisioned_iops=0,
                provisioned_throughput=0,
                resource_manager_tags={
                    "string": "any",
                },
                size=0,
                type="string",
            ),
            kms_key_self_link="string",
            mode="string",
            source="string",
        ),
        network_interfaces=[gcp.compute.InstanceNetworkInterfaceArgs(
            access_configs=[gcp.compute.InstanceNetworkInterfaceAccessConfigArgs(
                nat_ip="string",
                network_tier="string",
                public_ptr_domain_name="string",
                security_policy="string",
            )],
            alias_ip_ranges=[gcp.compute.InstanceNetworkInterfaceAliasIpRangeArgs(
                ip_cidr_range="string",
                subnetwork_range_name="string",
            )],
            internal_ipv6_prefix_length=0,
            ipv6_access_configs=[gcp.compute.InstanceNetworkInterfaceIpv6AccessConfigArgs(
                network_tier="string",
                external_ipv6="string",
                external_ipv6_prefix_length="string",
                name="string",
                public_ptr_domain_name="string",
                security_policy="string",
            )],
            ipv6_access_type="string",
            ipv6_address="string",
            name="string",
            network="string",
            network_attachment="string",
            network_ip="string",
            nic_type="string",
            queue_count=0,
            security_policy="string",
            stack_type="string",
            subnetwork="string",
            subnetwork_project="string",
        )],
        machine_type="string",
        metadata={
            "string": "string",
        },
        min_cpu_platform="string",
        confidential_instance_config=gcp.compute.InstanceConfidentialInstanceConfigArgs(
            confidential_instance_type="string",
            enable_confidential_compute=False,
        ),
        deletion_protection=False,
        description="string",
        desired_status="string",
        enable_display=False,
        guest_accelerators=[gcp.compute.InstanceGuestAcceleratorArgs(
            count=0,
            type="string",
        )],
        hostname="string",
        labels={
            "string": "string",
        },
        attached_disks=[gcp.compute.InstanceAttachedDiskArgs(
            source="string",
            device_name="string",
            disk_encryption_key_raw="string",
            disk_encryption_key_sha256="string",
            kms_key_self_link="string",
            mode="string",
        )],
        advanced_machine_features=gcp.compute.InstanceAdvancedMachineFeaturesArgs(
            enable_nested_virtualization=False,
            threads_per_core=0,
            visible_core_count=0,
        ),
        metadata_startup_script="string",
        can_ip_forward=False,
        name="string",
        allow_stopping_for_update=False,
        network_performance_config=gcp.compute.InstanceNetworkPerformanceConfigArgs(
            total_egress_bandwidth_tier="string",
        ),
        params=gcp.compute.InstanceParamsArgs(
            resource_manager_tags={
                "string": "any",
            },
        ),
        project="string",
        reservation_affinity=gcp.compute.InstanceReservationAffinityArgs(
            type="string",
            specific_reservation=gcp.compute.InstanceReservationAffinitySpecificReservationArgs(
                key="string",
                values=["string"],
            ),
        ),
        resource_policies="string",
        scheduling=gcp.compute.InstanceSchedulingArgs(
            automatic_restart=False,
            instance_termination_action="string",
            local_ssd_recovery_timeout=gcp.compute.InstanceSchedulingLocalSsdRecoveryTimeoutArgs(
                seconds=0,
                nanos=0,
            ),
            maintenance_interval="string",
            max_run_duration=gcp.compute.InstanceSchedulingMaxRunDurationArgs(
                seconds=0,
                nanos=0,
            ),
            min_node_cpus=0,
            node_affinities=[gcp.compute.InstanceSchedulingNodeAffinityArgs(
                key="string",
                operator="string",
                values=["string"],
            )],
            on_host_maintenance="string",
            preemptible=False,
            provisioning_model="string",
        ),
        scratch_disks=[gcp.compute.InstanceScratchDiskArgs(
            interface="string",
            device_name="string",
            size=0,
        )],
        service_account=gcp.compute.InstanceServiceAccountArgs(
            scopes=["string"],
            email="string",
        ),
        shielded_instance_config=gcp.compute.InstanceShieldedInstanceConfigArgs(
            enable_integrity_monitoring=False,
            enable_secure_boot=False,
            enable_vtpm=False,
        ),
        tags=["string"],
        zone="string")
    
    const exampleinstanceResourceResourceFromComputeinstance = new gcp.compute.Instance("exampleinstanceResourceResourceFromComputeinstance", {
        bootDisk: {
            autoDelete: false,
            deviceName: "string",
            diskEncryptionKeyRaw: "string",
            diskEncryptionKeySha256: "string",
            initializeParams: {
                enableConfidentialCompute: false,
                image: "string",
                labels: {
                    string: "any",
                },
                provisionedIops: 0,
                provisionedThroughput: 0,
                resourceManagerTags: {
                    string: "any",
                },
                size: 0,
                type: "string",
            },
            kmsKeySelfLink: "string",
            mode: "string",
            source: "string",
        },
        networkInterfaces: [{
            accessConfigs: [{
                natIp: "string",
                networkTier: "string",
                publicPtrDomainName: "string",
                securityPolicy: "string",
            }],
            aliasIpRanges: [{
                ipCidrRange: "string",
                subnetworkRangeName: "string",
            }],
            internalIpv6PrefixLength: 0,
            ipv6AccessConfigs: [{
                networkTier: "string",
                externalIpv6: "string",
                externalIpv6PrefixLength: "string",
                name: "string",
                publicPtrDomainName: "string",
                securityPolicy: "string",
            }],
            ipv6AccessType: "string",
            ipv6Address: "string",
            name: "string",
            network: "string",
            networkAttachment: "string",
            networkIp: "string",
            nicType: "string",
            queueCount: 0,
            securityPolicy: "string",
            stackType: "string",
            subnetwork: "string",
            subnetworkProject: "string",
        }],
        machineType: "string",
        metadata: {
            string: "string",
        },
        minCpuPlatform: "string",
        confidentialInstanceConfig: {
            confidentialInstanceType: "string",
            enableConfidentialCompute: false,
        },
        deletionProtection: false,
        description: "string",
        desiredStatus: "string",
        enableDisplay: false,
        guestAccelerators: [{
            count: 0,
            type: "string",
        }],
        hostname: "string",
        labels: {
            string: "string",
        },
        attachedDisks: [{
            source: "string",
            deviceName: "string",
            diskEncryptionKeyRaw: "string",
            diskEncryptionKeySha256: "string",
            kmsKeySelfLink: "string",
            mode: "string",
        }],
        advancedMachineFeatures: {
            enableNestedVirtualization: false,
            threadsPerCore: 0,
            visibleCoreCount: 0,
        },
        metadataStartupScript: "string",
        canIpForward: false,
        name: "string",
        allowStoppingForUpdate: false,
        networkPerformanceConfig: {
            totalEgressBandwidthTier: "string",
        },
        params: {
            resourceManagerTags: {
                string: "any",
            },
        },
        project: "string",
        reservationAffinity: {
            type: "string",
            specificReservation: {
                key: "string",
                values: ["string"],
            },
        },
        resourcePolicies: "string",
        scheduling: {
            automaticRestart: false,
            instanceTerminationAction: "string",
            localSsdRecoveryTimeout: {
                seconds: 0,
                nanos: 0,
            },
            maintenanceInterval: "string",
            maxRunDuration: {
                seconds: 0,
                nanos: 0,
            },
            minNodeCpus: 0,
            nodeAffinities: [{
                key: "string",
                operator: "string",
                values: ["string"],
            }],
            onHostMaintenance: "string",
            preemptible: false,
            provisioningModel: "string",
        },
        scratchDisks: [{
            "interface": "string",
            deviceName: "string",
            size: 0,
        }],
        serviceAccount: {
            scopes: ["string"],
            email: "string",
        },
        shieldedInstanceConfig: {
            enableIntegrityMonitoring: false,
            enableSecureBoot: false,
            enableVtpm: false,
        },
        tags: ["string"],
        zone: "string",
    });
    
    type: gcp:compute:Instance
    properties:
        advancedMachineFeatures:
            enableNestedVirtualization: false
            threadsPerCore: 0
            visibleCoreCount: 0
        allowStoppingForUpdate: false
        attachedDisks:
            - deviceName: string
              diskEncryptionKeyRaw: string
              diskEncryptionKeySha256: string
              kmsKeySelfLink: string
              mode: string
              source: string
        bootDisk:
            autoDelete: false
            deviceName: string
            diskEncryptionKeyRaw: string
            diskEncryptionKeySha256: string
            initializeParams:
                enableConfidentialCompute: false
                image: string
                labels:
                    string: any
                provisionedIops: 0
                provisionedThroughput: 0
                resourceManagerTags:
                    string: any
                size: 0
                type: string
            kmsKeySelfLink: string
            mode: string
            source: string
        canIpForward: false
        confidentialInstanceConfig:
            confidentialInstanceType: string
            enableConfidentialCompute: false
        deletionProtection: false
        description: string
        desiredStatus: string
        enableDisplay: false
        guestAccelerators:
            - count: 0
              type: string
        hostname: string
        labels:
            string: string
        machineType: string
        metadata:
            string: string
        metadataStartupScript: string
        minCpuPlatform: string
        name: string
        networkInterfaces:
            - accessConfigs:
                - natIp: string
                  networkTier: string
                  publicPtrDomainName: string
                  securityPolicy: string
              aliasIpRanges:
                - ipCidrRange: string
                  subnetworkRangeName: string
              internalIpv6PrefixLength: 0
              ipv6AccessConfigs:
                - externalIpv6: string
                  externalIpv6PrefixLength: string
                  name: string
                  networkTier: string
                  publicPtrDomainName: string
                  securityPolicy: string
              ipv6AccessType: string
              ipv6Address: string
              name: string
              network: string
              networkAttachment: string
              networkIp: string
              nicType: string
              queueCount: 0
              securityPolicy: string
              stackType: string
              subnetwork: string
              subnetworkProject: string
        networkPerformanceConfig:
            totalEgressBandwidthTier: string
        params:
            resourceManagerTags:
                string: any
        project: string
        reservationAffinity:
            specificReservation:
                key: string
                values:
                    - string
            type: string
        resourcePolicies: string
        scheduling:
            automaticRestart: false
            instanceTerminationAction: string
            localSsdRecoveryTimeout:
                nanos: 0
                seconds: 0
            maintenanceInterval: string
            maxRunDuration:
                nanos: 0
                seconds: 0
            minNodeCpus: 0
            nodeAffinities:
                - key: string
                  operator: string
                  values:
                    - string
            onHostMaintenance: string
            preemptible: false
            provisioningModel: string
        scratchDisks:
            - deviceName: string
              interface: string
              size: 0
        serviceAccount:
            email: string
            scopes:
                - string
        shieldedInstanceConfig:
            enableIntegrityMonitoring: false
            enableSecureBoot: false
            enableVtpm: false
        tags:
            - string
        zone: string
    

    Instance 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 Instance resource accepts the following input properties:

    BootDisk InstanceBootDisk
    The boot disk for the instance. Structure is documented below.
    MachineType string

    The machine type to create.

    Note: If you want to update this value (resize the VM) after initial creation, you must set allow_stopping_for_update to true.

    Custom machine types can be formatted as custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY_MB, e.g. custom-6-20480 for 6 vCPU and 20GB of RAM.

    There is a limit of 6.5 GB per CPU unless you add extended memory. You must do this explicitly by adding the suffix -ext, e.g. custom-2-15360-ext for 2 vCPU and 15 GB of memory.

    NetworkInterfaces List<InstanceNetworkInterface>
    Networks to attach to the instance. This can be specified multiple times. Structure is documented below.


    AdvancedMachineFeatures InstanceAdvancedMachineFeatures
    Configure Nested Virtualisation and Simultaneous Hyper Threading on this VM. Structure is documented below
    AllowStoppingForUpdate bool
    If true, allows this prvider to stop the instance to update its properties. If you try to update a property that requires stopping the instance without setting this field, the update will fail.
    AttachedDisks List<InstanceAttachedDisk>
    Additional disks to attach to the instance. Can be repeated multiple times for multiple disks. Structure is documented below.
    CanIpForward bool
    Whether to allow sending and receiving of packets with non-matching source or destination IPs. This defaults to false.
    ConfidentialInstanceConfig InstanceConfidentialInstanceConfig
    Enable Confidential Mode on this VM. Structure is documented below
    DeletionProtection bool
    Enable deletion protection on this instance. Defaults to false. Note: you must disable deletion protection before removing the resource (e.g., via pulumi destroy), or the instance cannot be deleted and the provider run will not complete successfully.
    Description string
    A brief description of this resource.
    DesiredStatus string
    Desired status of the instance. Either "RUNNING" or "TERMINATED".
    EnableDisplay bool
    Enable Virtual Displays on this instance. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    GuestAccelerators List<InstanceGuestAccelerator>
    List of the type and count of accelerator cards attached to the instance. Structure documented below. Note: GPU accelerators can only be used with on_host_maintenance option set to TERMINATE.
    Hostname string
    A custom hostname for the instance. Must be a fully qualified DNS name and RFC-1035-valid. Valid format is a series of labels 1-63 characters long matching the regular expression a-z, concatenated with periods. The entire hostname must not exceed 253 characters. Changing this forces a new resource to be created.
    Labels Dictionary<string, string>
    A map of key/value label pairs to assign to the instance. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.
    Metadata Dictionary<string, string>

    Metadata key/value pairs to make available from within the instance. Ssh keys attached in the Cloud Console will be removed. Add them to your config in order to keep them attached to your instance. A list of default metadata values (e.g. ssh-keys) can be found here

    Depending on the OS you choose for your instance, some metadata keys have special functionality. Most linux-based images will run the content of metadata.startup-script in a shell on every boot. At a minimum, Debian, CentOS, RHEL, SLES, Container-Optimized OS, and Ubuntu images support this key. Windows instances require other keys depending on the format of the script and the time you would like it to run - see this table. For the convenience of the users of metadata.startup-script, we provide a special attribute, metadata_startup_script, which is documented below.

    MetadataStartupScript string
    An alternative to using the startup-script metadata key, except this one forces the instance to be recreated (thus re-running the script) if it is changed. This replaces the startup-script metadata key on the created instance and thus the two mechanisms are not allowed to be used simultaneously. Users are free to use either mechanism - the only distinction is that this separate attribute will cause a recreate on modification. On import, metadata_startup_script will not be set - if you choose to specify it you will see a diff immediately after import causing a destroy/recreate operation. If importing an instance and specifying this value is desired, you will need to modify your state file.
    MinCpuPlatform string
    Specifies a minimum CPU platform for the VM instance. Applicable values are the friendly names of CPU platforms, such as Intel Haswell or Intel Skylake. See the complete list here. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    Name string
    A unique name for the resource, required by GCE. Changing this forces a new resource to be created.
    NetworkPerformanceConfig InstanceNetworkPerformanceConfig
    (Optional, Beta Configures network performance settings for the instance. Structure is documented below. Note: machine_type must be a supported type, the image used must include the GVNIC in guest-os-features, and network_interface.0.nic-type must be GVNIC in order for this setting to take effect.
    Params InstanceParams
    Additional instance parameters. .
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    ReservationAffinity InstanceReservationAffinity
    Specifies the reservations that this instance can consume from. Structure is documented below.
    ResourcePolicies string
    • A list of self_links of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported.
    Scheduling InstanceScheduling
    The scheduling strategy to use. More details about this configuration option are detailed below.
    ScratchDisks List<InstanceScratchDisk>
    Scratch disks to attach to the instance. This can be specified multiple times for multiple scratch disks. Structure is documented below.
    ServiceAccount InstanceServiceAccount
    Service account to attach to the instance. Structure is documented below. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    ShieldedInstanceConfig InstanceShieldedInstanceConfig
    Enable Shielded VM on this instance. Shielded VM provides verifiable integrity to prevent against malware and rootkits. Defaults to disabled. Structure is documented below. Note: shielded_instance_config can only be used with boot images with shielded vm support. See the complete list here. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    Tags List<string>
    A list of network tags to attach to the instance.
    Zone string
    The zone that the machine should be created in. If it is not provided, the provider zone is used.
    BootDisk InstanceBootDiskArgs
    The boot disk for the instance. Structure is documented below.
    MachineType string

    The machine type to create.

    Note: If you want to update this value (resize the VM) after initial creation, you must set allow_stopping_for_update to true.

    Custom machine types can be formatted as custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY_MB, e.g. custom-6-20480 for 6 vCPU and 20GB of RAM.

    There is a limit of 6.5 GB per CPU unless you add extended memory. You must do this explicitly by adding the suffix -ext, e.g. custom-2-15360-ext for 2 vCPU and 15 GB of memory.

    NetworkInterfaces []InstanceNetworkInterfaceArgs
    Networks to attach to the instance. This can be specified multiple times. Structure is documented below.


    AdvancedMachineFeatures InstanceAdvancedMachineFeaturesArgs
    Configure Nested Virtualisation and Simultaneous Hyper Threading on this VM. Structure is documented below
    AllowStoppingForUpdate bool
    If true, allows this prvider to stop the instance to update its properties. If you try to update a property that requires stopping the instance without setting this field, the update will fail.
    AttachedDisks []InstanceAttachedDiskArgs
    Additional disks to attach to the instance. Can be repeated multiple times for multiple disks. Structure is documented below.
    CanIpForward bool
    Whether to allow sending and receiving of packets with non-matching source or destination IPs. This defaults to false.
    ConfidentialInstanceConfig InstanceConfidentialInstanceConfigArgs
    Enable Confidential Mode on this VM. Structure is documented below
    DeletionProtection bool
    Enable deletion protection on this instance. Defaults to false. Note: you must disable deletion protection before removing the resource (e.g., via pulumi destroy), or the instance cannot be deleted and the provider run will not complete successfully.
    Description string
    A brief description of this resource.
    DesiredStatus string
    Desired status of the instance. Either "RUNNING" or "TERMINATED".
    EnableDisplay bool
    Enable Virtual Displays on this instance. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    GuestAccelerators []InstanceGuestAcceleratorArgs
    List of the type and count of accelerator cards attached to the instance. Structure documented below. Note: GPU accelerators can only be used with on_host_maintenance option set to TERMINATE.
    Hostname string
    A custom hostname for the instance. Must be a fully qualified DNS name and RFC-1035-valid. Valid format is a series of labels 1-63 characters long matching the regular expression a-z, concatenated with periods. The entire hostname must not exceed 253 characters. Changing this forces a new resource to be created.
    Labels map[string]string
    A map of key/value label pairs to assign to the instance. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.
    Metadata map[string]string

    Metadata key/value pairs to make available from within the instance. Ssh keys attached in the Cloud Console will be removed. Add them to your config in order to keep them attached to your instance. A list of default metadata values (e.g. ssh-keys) can be found here

    Depending on the OS you choose for your instance, some metadata keys have special functionality. Most linux-based images will run the content of metadata.startup-script in a shell on every boot. At a minimum, Debian, CentOS, RHEL, SLES, Container-Optimized OS, and Ubuntu images support this key. Windows instances require other keys depending on the format of the script and the time you would like it to run - see this table. For the convenience of the users of metadata.startup-script, we provide a special attribute, metadata_startup_script, which is documented below.

    MetadataStartupScript string
    An alternative to using the startup-script metadata key, except this one forces the instance to be recreated (thus re-running the script) if it is changed. This replaces the startup-script metadata key on the created instance and thus the two mechanisms are not allowed to be used simultaneously. Users are free to use either mechanism - the only distinction is that this separate attribute will cause a recreate on modification. On import, metadata_startup_script will not be set - if you choose to specify it you will see a diff immediately after import causing a destroy/recreate operation. If importing an instance and specifying this value is desired, you will need to modify your state file.
    MinCpuPlatform string
    Specifies a minimum CPU platform for the VM instance. Applicable values are the friendly names of CPU platforms, such as Intel Haswell or Intel Skylake. See the complete list here. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    Name string
    A unique name for the resource, required by GCE. Changing this forces a new resource to be created.
    NetworkPerformanceConfig InstanceNetworkPerformanceConfigArgs
    (Optional, Beta Configures network performance settings for the instance. Structure is documented below. Note: machine_type must be a supported type, the image used must include the GVNIC in guest-os-features, and network_interface.0.nic-type must be GVNIC in order for this setting to take effect.
    Params InstanceParamsArgs
    Additional instance parameters. .
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    ReservationAffinity InstanceReservationAffinityArgs
    Specifies the reservations that this instance can consume from. Structure is documented below.
    ResourcePolicies string
    • A list of self_links of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported.
    Scheduling InstanceSchedulingArgs
    The scheduling strategy to use. More details about this configuration option are detailed below.
    ScratchDisks []InstanceScratchDiskArgs
    Scratch disks to attach to the instance. This can be specified multiple times for multiple scratch disks. Structure is documented below.
    ServiceAccount InstanceServiceAccountArgs
    Service account to attach to the instance. Structure is documented below. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    ShieldedInstanceConfig InstanceShieldedInstanceConfigArgs
    Enable Shielded VM on this instance. Shielded VM provides verifiable integrity to prevent against malware and rootkits. Defaults to disabled. Structure is documented below. Note: shielded_instance_config can only be used with boot images with shielded vm support. See the complete list here. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    Tags []string
    A list of network tags to attach to the instance.
    Zone string
    The zone that the machine should be created in. If it is not provided, the provider zone is used.
    bootDisk InstanceBootDisk
    The boot disk for the instance. Structure is documented below.
    machineType String

    The machine type to create.

    Note: If you want to update this value (resize the VM) after initial creation, you must set allow_stopping_for_update to true.

    Custom machine types can be formatted as custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY_MB, e.g. custom-6-20480 for 6 vCPU and 20GB of RAM.

    There is a limit of 6.5 GB per CPU unless you add extended memory. You must do this explicitly by adding the suffix -ext, e.g. custom-2-15360-ext for 2 vCPU and 15 GB of memory.

    networkInterfaces List<InstanceNetworkInterface>
    Networks to attach to the instance. This can be specified multiple times. Structure is documented below.


    advancedMachineFeatures InstanceAdvancedMachineFeatures
    Configure Nested Virtualisation and Simultaneous Hyper Threading on this VM. Structure is documented below
    allowStoppingForUpdate Boolean
    If true, allows this prvider to stop the instance to update its properties. If you try to update a property that requires stopping the instance without setting this field, the update will fail.
    attachedDisks List<InstanceAttachedDisk>
    Additional disks to attach to the instance. Can be repeated multiple times for multiple disks. Structure is documented below.
    canIpForward Boolean
    Whether to allow sending and receiving of packets with non-matching source or destination IPs. This defaults to false.
    confidentialInstanceConfig InstanceConfidentialInstanceConfig
    Enable Confidential Mode on this VM. Structure is documented below
    deletionProtection Boolean
    Enable deletion protection on this instance. Defaults to false. Note: you must disable deletion protection before removing the resource (e.g., via pulumi destroy), or the instance cannot be deleted and the provider run will not complete successfully.
    description String
    A brief description of this resource.
    desiredStatus String
    Desired status of the instance. Either "RUNNING" or "TERMINATED".
    enableDisplay Boolean
    Enable Virtual Displays on this instance. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    guestAccelerators List<InstanceGuestAccelerator>
    List of the type and count of accelerator cards attached to the instance. Structure documented below. Note: GPU accelerators can only be used with on_host_maintenance option set to TERMINATE.
    hostname String
    A custom hostname for the instance. Must be a fully qualified DNS name and RFC-1035-valid. Valid format is a series of labels 1-63 characters long matching the regular expression a-z, concatenated with periods. The entire hostname must not exceed 253 characters. Changing this forces a new resource to be created.
    labels Map<String,String>
    A map of key/value label pairs to assign to the instance. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.
    metadata Map<String,String>

    Metadata key/value pairs to make available from within the instance. Ssh keys attached in the Cloud Console will be removed. Add them to your config in order to keep them attached to your instance. A list of default metadata values (e.g. ssh-keys) can be found here

    Depending on the OS you choose for your instance, some metadata keys have special functionality. Most linux-based images will run the content of metadata.startup-script in a shell on every boot. At a minimum, Debian, CentOS, RHEL, SLES, Container-Optimized OS, and Ubuntu images support this key. Windows instances require other keys depending on the format of the script and the time you would like it to run - see this table. For the convenience of the users of metadata.startup-script, we provide a special attribute, metadata_startup_script, which is documented below.

    metadataStartupScript String
    An alternative to using the startup-script metadata key, except this one forces the instance to be recreated (thus re-running the script) if it is changed. This replaces the startup-script metadata key on the created instance and thus the two mechanisms are not allowed to be used simultaneously. Users are free to use either mechanism - the only distinction is that this separate attribute will cause a recreate on modification. On import, metadata_startup_script will not be set - if you choose to specify it you will see a diff immediately after import causing a destroy/recreate operation. If importing an instance and specifying this value is desired, you will need to modify your state file.
    minCpuPlatform String
    Specifies a minimum CPU platform for the VM instance. Applicable values are the friendly names of CPU platforms, such as Intel Haswell or Intel Skylake. See the complete list here. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    name String
    A unique name for the resource, required by GCE. Changing this forces a new resource to be created.
    networkPerformanceConfig InstanceNetworkPerformanceConfig
    (Optional, Beta Configures network performance settings for the instance. Structure is documented below. Note: machine_type must be a supported type, the image used must include the GVNIC in guest-os-features, and network_interface.0.nic-type must be GVNIC in order for this setting to take effect.
    params InstanceParams
    Additional instance parameters. .
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    reservationAffinity InstanceReservationAffinity
    Specifies the reservations that this instance can consume from. Structure is documented below.
    resourcePolicies String
    • A list of self_links of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported.
    scheduling InstanceScheduling
    The scheduling strategy to use. More details about this configuration option are detailed below.
    scratchDisks List<InstanceScratchDisk>
    Scratch disks to attach to the instance. This can be specified multiple times for multiple scratch disks. Structure is documented below.
    serviceAccount InstanceServiceAccount
    Service account to attach to the instance. Structure is documented below. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    shieldedInstanceConfig InstanceShieldedInstanceConfig
    Enable Shielded VM on this instance. Shielded VM provides verifiable integrity to prevent against malware and rootkits. Defaults to disabled. Structure is documented below. Note: shielded_instance_config can only be used with boot images with shielded vm support. See the complete list here. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    tags List<String>
    A list of network tags to attach to the instance.
    zone String
    The zone that the machine should be created in. If it is not provided, the provider zone is used.
    bootDisk InstanceBootDisk
    The boot disk for the instance. Structure is documented below.
    machineType string

    The machine type to create.

    Note: If you want to update this value (resize the VM) after initial creation, you must set allow_stopping_for_update to true.

    Custom machine types can be formatted as custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY_MB, e.g. custom-6-20480 for 6 vCPU and 20GB of RAM.

    There is a limit of 6.5 GB per CPU unless you add extended memory. You must do this explicitly by adding the suffix -ext, e.g. custom-2-15360-ext for 2 vCPU and 15 GB of memory.

    networkInterfaces InstanceNetworkInterface[]
    Networks to attach to the instance. This can be specified multiple times. Structure is documented below.


    advancedMachineFeatures InstanceAdvancedMachineFeatures
    Configure Nested Virtualisation and Simultaneous Hyper Threading on this VM. Structure is documented below
    allowStoppingForUpdate boolean
    If true, allows this prvider to stop the instance to update its properties. If you try to update a property that requires stopping the instance without setting this field, the update will fail.
    attachedDisks InstanceAttachedDisk[]
    Additional disks to attach to the instance. Can be repeated multiple times for multiple disks. Structure is documented below.
    canIpForward boolean
    Whether to allow sending and receiving of packets with non-matching source or destination IPs. This defaults to false.
    confidentialInstanceConfig InstanceConfidentialInstanceConfig
    Enable Confidential Mode on this VM. Structure is documented below
    deletionProtection boolean
    Enable deletion protection on this instance. Defaults to false. Note: you must disable deletion protection before removing the resource (e.g., via pulumi destroy), or the instance cannot be deleted and the provider run will not complete successfully.
    description string
    A brief description of this resource.
    desiredStatus string
    Desired status of the instance. Either "RUNNING" or "TERMINATED".
    enableDisplay boolean
    Enable Virtual Displays on this instance. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    guestAccelerators InstanceGuestAccelerator[]
    List of the type and count of accelerator cards attached to the instance. Structure documented below. Note: GPU accelerators can only be used with on_host_maintenance option set to TERMINATE.
    hostname string
    A custom hostname for the instance. Must be a fully qualified DNS name and RFC-1035-valid. Valid format is a series of labels 1-63 characters long matching the regular expression a-z, concatenated with periods. The entire hostname must not exceed 253 characters. Changing this forces a new resource to be created.
    labels {[key: string]: string}
    A map of key/value label pairs to assign to the instance. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.
    metadata {[key: string]: string}

    Metadata key/value pairs to make available from within the instance. Ssh keys attached in the Cloud Console will be removed. Add them to your config in order to keep them attached to your instance. A list of default metadata values (e.g. ssh-keys) can be found here

    Depending on the OS you choose for your instance, some metadata keys have special functionality. Most linux-based images will run the content of metadata.startup-script in a shell on every boot. At a minimum, Debian, CentOS, RHEL, SLES, Container-Optimized OS, and Ubuntu images support this key. Windows instances require other keys depending on the format of the script and the time you would like it to run - see this table. For the convenience of the users of metadata.startup-script, we provide a special attribute, metadata_startup_script, which is documented below.

    metadataStartupScript string
    An alternative to using the startup-script metadata key, except this one forces the instance to be recreated (thus re-running the script) if it is changed. This replaces the startup-script metadata key on the created instance and thus the two mechanisms are not allowed to be used simultaneously. Users are free to use either mechanism - the only distinction is that this separate attribute will cause a recreate on modification. On import, metadata_startup_script will not be set - if you choose to specify it you will see a diff immediately after import causing a destroy/recreate operation. If importing an instance and specifying this value is desired, you will need to modify your state file.
    minCpuPlatform string
    Specifies a minimum CPU platform for the VM instance. Applicable values are the friendly names of CPU platforms, such as Intel Haswell or Intel Skylake. See the complete list here. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    name string
    A unique name for the resource, required by GCE. Changing this forces a new resource to be created.
    networkPerformanceConfig InstanceNetworkPerformanceConfig
    (Optional, Beta Configures network performance settings for the instance. Structure is documented below. Note: machine_type must be a supported type, the image used must include the GVNIC in guest-os-features, and network_interface.0.nic-type must be GVNIC in order for this setting to take effect.
    params InstanceParams
    Additional instance parameters. .
    project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    reservationAffinity InstanceReservationAffinity
    Specifies the reservations that this instance can consume from. Structure is documented below.
    resourcePolicies string
    • A list of self_links of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported.
    scheduling InstanceScheduling
    The scheduling strategy to use. More details about this configuration option are detailed below.
    scratchDisks InstanceScratchDisk[]
    Scratch disks to attach to the instance. This can be specified multiple times for multiple scratch disks. Structure is documented below.
    serviceAccount InstanceServiceAccount
    Service account to attach to the instance. Structure is documented below. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    shieldedInstanceConfig InstanceShieldedInstanceConfig
    Enable Shielded VM on this instance. Shielded VM provides verifiable integrity to prevent against malware and rootkits. Defaults to disabled. Structure is documented below. Note: shielded_instance_config can only be used with boot images with shielded vm support. See the complete list here. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    tags string[]
    A list of network tags to attach to the instance.
    zone string
    The zone that the machine should be created in. If it is not provided, the provider zone is used.
    boot_disk InstanceBootDiskArgs
    The boot disk for the instance. Structure is documented below.
    machine_type str

    The machine type to create.

    Note: If you want to update this value (resize the VM) after initial creation, you must set allow_stopping_for_update to true.

    Custom machine types can be formatted as custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY_MB, e.g. custom-6-20480 for 6 vCPU and 20GB of RAM.

    There is a limit of 6.5 GB per CPU unless you add extended memory. You must do this explicitly by adding the suffix -ext, e.g. custom-2-15360-ext for 2 vCPU and 15 GB of memory.

    network_interfaces Sequence[InstanceNetworkInterfaceArgs]
    Networks to attach to the instance. This can be specified multiple times. Structure is documented below.


    advanced_machine_features InstanceAdvancedMachineFeaturesArgs
    Configure Nested Virtualisation and Simultaneous Hyper Threading on this VM. Structure is documented below
    allow_stopping_for_update bool
    If true, allows this prvider to stop the instance to update its properties. If you try to update a property that requires stopping the instance without setting this field, the update will fail.
    attached_disks Sequence[InstanceAttachedDiskArgs]
    Additional disks to attach to the instance. Can be repeated multiple times for multiple disks. Structure is documented below.
    can_ip_forward bool
    Whether to allow sending and receiving of packets with non-matching source or destination IPs. This defaults to false.
    confidential_instance_config InstanceConfidentialInstanceConfigArgs
    Enable Confidential Mode on this VM. Structure is documented below
    deletion_protection bool
    Enable deletion protection on this instance. Defaults to false. Note: you must disable deletion protection before removing the resource (e.g., via pulumi destroy), or the instance cannot be deleted and the provider run will not complete successfully.
    description str
    A brief description of this resource.
    desired_status str
    Desired status of the instance. Either "RUNNING" or "TERMINATED".
    enable_display bool
    Enable Virtual Displays on this instance. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    guest_accelerators Sequence[InstanceGuestAcceleratorArgs]
    List of the type and count of accelerator cards attached to the instance. Structure documented below. Note: GPU accelerators can only be used with on_host_maintenance option set to TERMINATE.
    hostname str
    A custom hostname for the instance. Must be a fully qualified DNS name and RFC-1035-valid. Valid format is a series of labels 1-63 characters long matching the regular expression a-z, concatenated with periods. The entire hostname must not exceed 253 characters. Changing this forces a new resource to be created.
    labels Mapping[str, str]
    A map of key/value label pairs to assign to the instance. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.
    metadata Mapping[str, str]

    Metadata key/value pairs to make available from within the instance. Ssh keys attached in the Cloud Console will be removed. Add them to your config in order to keep them attached to your instance. A list of default metadata values (e.g. ssh-keys) can be found here

    Depending on the OS you choose for your instance, some metadata keys have special functionality. Most linux-based images will run the content of metadata.startup-script in a shell on every boot. At a minimum, Debian, CentOS, RHEL, SLES, Container-Optimized OS, and Ubuntu images support this key. Windows instances require other keys depending on the format of the script and the time you would like it to run - see this table. For the convenience of the users of metadata.startup-script, we provide a special attribute, metadata_startup_script, which is documented below.

    metadata_startup_script str
    An alternative to using the startup-script metadata key, except this one forces the instance to be recreated (thus re-running the script) if it is changed. This replaces the startup-script metadata key on the created instance and thus the two mechanisms are not allowed to be used simultaneously. Users are free to use either mechanism - the only distinction is that this separate attribute will cause a recreate on modification. On import, metadata_startup_script will not be set - if you choose to specify it you will see a diff immediately after import causing a destroy/recreate operation. If importing an instance and specifying this value is desired, you will need to modify your state file.
    min_cpu_platform str
    Specifies a minimum CPU platform for the VM instance. Applicable values are the friendly names of CPU platforms, such as Intel Haswell or Intel Skylake. See the complete list here. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    name str
    A unique name for the resource, required by GCE. Changing this forces a new resource to be created.
    network_performance_config InstanceNetworkPerformanceConfigArgs
    (Optional, Beta Configures network performance settings for the instance. Structure is documented below. Note: machine_type must be a supported type, the image used must include the GVNIC in guest-os-features, and network_interface.0.nic-type must be GVNIC in order for this setting to take effect.
    params InstanceParamsArgs
    Additional instance parameters. .
    project str
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    reservation_affinity InstanceReservationAffinityArgs
    Specifies the reservations that this instance can consume from. Structure is documented below.
    resource_policies str
    • A list of self_links of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported.
    scheduling InstanceSchedulingArgs
    The scheduling strategy to use. More details about this configuration option are detailed below.
    scratch_disks Sequence[InstanceScratchDiskArgs]
    Scratch disks to attach to the instance. This can be specified multiple times for multiple scratch disks. Structure is documented below.
    service_account InstanceServiceAccountArgs
    Service account to attach to the instance. Structure is documented below. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    shielded_instance_config InstanceShieldedInstanceConfigArgs
    Enable Shielded VM on this instance. Shielded VM provides verifiable integrity to prevent against malware and rootkits. Defaults to disabled. Structure is documented below. Note: shielded_instance_config can only be used with boot images with shielded vm support. See the complete list here. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    tags Sequence[str]
    A list of network tags to attach to the instance.
    zone str
    The zone that the machine should be created in. If it is not provided, the provider zone is used.
    bootDisk Property Map
    The boot disk for the instance. Structure is documented below.
    machineType String

    The machine type to create.

    Note: If you want to update this value (resize the VM) after initial creation, you must set allow_stopping_for_update to true.

    Custom machine types can be formatted as custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY_MB, e.g. custom-6-20480 for 6 vCPU and 20GB of RAM.

    There is a limit of 6.5 GB per CPU unless you add extended memory. You must do this explicitly by adding the suffix -ext, e.g. custom-2-15360-ext for 2 vCPU and 15 GB of memory.

    networkInterfaces List<Property Map>
    Networks to attach to the instance. This can be specified multiple times. Structure is documented below.


    advancedMachineFeatures Property Map
    Configure Nested Virtualisation and Simultaneous Hyper Threading on this VM. Structure is documented below
    allowStoppingForUpdate Boolean
    If true, allows this prvider to stop the instance to update its properties. If you try to update a property that requires stopping the instance without setting this field, the update will fail.
    attachedDisks List<Property Map>
    Additional disks to attach to the instance. Can be repeated multiple times for multiple disks. Structure is documented below.
    canIpForward Boolean
    Whether to allow sending and receiving of packets with non-matching source or destination IPs. This defaults to false.
    confidentialInstanceConfig Property Map
    Enable Confidential Mode on this VM. Structure is documented below
    deletionProtection Boolean
    Enable deletion protection on this instance. Defaults to false. Note: you must disable deletion protection before removing the resource (e.g., via pulumi destroy), or the instance cannot be deleted and the provider run will not complete successfully.
    description String
    A brief description of this resource.
    desiredStatus String
    Desired status of the instance. Either "RUNNING" or "TERMINATED".
    enableDisplay Boolean
    Enable Virtual Displays on this instance. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    guestAccelerators List<Property Map>
    List of the type and count of accelerator cards attached to the instance. Structure documented below. Note: GPU accelerators can only be used with on_host_maintenance option set to TERMINATE.
    hostname String
    A custom hostname for the instance. Must be a fully qualified DNS name and RFC-1035-valid. Valid format is a series of labels 1-63 characters long matching the regular expression a-z, concatenated with periods. The entire hostname must not exceed 253 characters. Changing this forces a new resource to be created.
    labels Map<String>
    A map of key/value label pairs to assign to the instance. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.
    metadata Map<String>

    Metadata key/value pairs to make available from within the instance. Ssh keys attached in the Cloud Console will be removed. Add them to your config in order to keep them attached to your instance. A list of default metadata values (e.g. ssh-keys) can be found here

    Depending on the OS you choose for your instance, some metadata keys have special functionality. Most linux-based images will run the content of metadata.startup-script in a shell on every boot. At a minimum, Debian, CentOS, RHEL, SLES, Container-Optimized OS, and Ubuntu images support this key. Windows instances require other keys depending on the format of the script and the time you would like it to run - see this table. For the convenience of the users of metadata.startup-script, we provide a special attribute, metadata_startup_script, which is documented below.

    metadataStartupScript String
    An alternative to using the startup-script metadata key, except this one forces the instance to be recreated (thus re-running the script) if it is changed. This replaces the startup-script metadata key on the created instance and thus the two mechanisms are not allowed to be used simultaneously. Users are free to use either mechanism - the only distinction is that this separate attribute will cause a recreate on modification. On import, metadata_startup_script will not be set - if you choose to specify it you will see a diff immediately after import causing a destroy/recreate operation. If importing an instance and specifying this value is desired, you will need to modify your state file.
    minCpuPlatform String
    Specifies a minimum CPU platform for the VM instance. Applicable values are the friendly names of CPU platforms, such as Intel Haswell or Intel Skylake. See the complete list here. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    name String
    A unique name for the resource, required by GCE. Changing this forces a new resource to be created.
    networkPerformanceConfig Property Map
    (Optional, Beta Configures network performance settings for the instance. Structure is documented below. Note: machine_type must be a supported type, the image used must include the GVNIC in guest-os-features, and network_interface.0.nic-type must be GVNIC in order for this setting to take effect.
    params Property Map
    Additional instance parameters. .
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    reservationAffinity Property Map
    Specifies the reservations that this instance can consume from. Structure is documented below.
    resourcePolicies String
    • A list of self_links of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported.
    scheduling Property Map
    The scheduling strategy to use. More details about this configuration option are detailed below.
    scratchDisks List<Property Map>
    Scratch disks to attach to the instance. This can be specified multiple times for multiple scratch disks. Structure is documented below.
    serviceAccount Property Map
    Service account to attach to the instance. Structure is documented below. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    shieldedInstanceConfig Property Map
    Enable Shielded VM on this instance. Shielded VM provides verifiable integrity to prevent against malware and rootkits. Defaults to disabled. Structure is documented below. Note: shielded_instance_config can only be used with boot images with shielded vm support. See the complete list here. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    tags List<String>
    A list of network tags to attach to the instance.
    zone String
    The zone that the machine should be created in. If it is not provided, the provider zone is used.

    Outputs

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

    CpuPlatform string
    The CPU platform used by this instance.
    CurrentStatus string
    The current status of the instance. This could be one of the following values: PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, REPAIRING, and TERMINATED. For more information about the status of the instance, see Instance life cycle.`,
    EffectiveLabels Dictionary<string, string>
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    Id string
    The provider-assigned unique ID for this managed resource.
    InstanceId string
    The server-assigned unique identifier of this instance.
    LabelFingerprint string
    The unique fingerprint of the labels.
    MetadataFingerprint string
    The unique fingerprint of the metadata.
    PulumiLabels Dictionary<string, string>
    The combination of labels configured directly on the resource and default labels configured on the provider.
    SelfLink string
    The URI of the created resource.
    TagsFingerprint string
    The unique fingerprint of the tags.
    CpuPlatform string
    The CPU platform used by this instance.
    CurrentStatus string
    The current status of the instance. This could be one of the following values: PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, REPAIRING, and TERMINATED. For more information about the status of the instance, see Instance life cycle.`,
    EffectiveLabels map[string]string
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    Id string
    The provider-assigned unique ID for this managed resource.
    InstanceId string
    The server-assigned unique identifier of this instance.
    LabelFingerprint string
    The unique fingerprint of the labels.
    MetadataFingerprint string
    The unique fingerprint of the metadata.
    PulumiLabels map[string]string
    The combination of labels configured directly on the resource and default labels configured on the provider.
    SelfLink string
    The URI of the created resource.
    TagsFingerprint string
    The unique fingerprint of the tags.
    cpuPlatform String
    The CPU platform used by this instance.
    currentStatus String
    The current status of the instance. This could be one of the following values: PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, REPAIRING, and TERMINATED. For more information about the status of the instance, see Instance life cycle.`,
    effectiveLabels Map<String,String>
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    id String
    The provider-assigned unique ID for this managed resource.
    instanceId String
    The server-assigned unique identifier of this instance.
    labelFingerprint String
    The unique fingerprint of the labels.
    metadataFingerprint String
    The unique fingerprint of the metadata.
    pulumiLabels Map<String,String>
    The combination of labels configured directly on the resource and default labels configured on the provider.
    selfLink String
    The URI of the created resource.
    tagsFingerprint String
    The unique fingerprint of the tags.
    cpuPlatform string
    The CPU platform used by this instance.
    currentStatus string
    The current status of the instance. This could be one of the following values: PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, REPAIRING, and TERMINATED. For more information about the status of the instance, see Instance life cycle.`,
    effectiveLabels {[key: string]: string}
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    id string
    The provider-assigned unique ID for this managed resource.
    instanceId string
    The server-assigned unique identifier of this instance.
    labelFingerprint string
    The unique fingerprint of the labels.
    metadataFingerprint string
    The unique fingerprint of the metadata.
    pulumiLabels {[key: string]: string}
    The combination of labels configured directly on the resource and default labels configured on the provider.
    selfLink string
    The URI of the created resource.
    tagsFingerprint string
    The unique fingerprint of the tags.
    cpu_platform str
    The CPU platform used by this instance.
    current_status str
    The current status of the instance. This could be one of the following values: PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, REPAIRING, and TERMINATED. For more information about the status of the instance, see Instance life cycle.`,
    effective_labels Mapping[str, str]
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    id str
    The provider-assigned unique ID for this managed resource.
    instance_id str
    The server-assigned unique identifier of this instance.
    label_fingerprint str
    The unique fingerprint of the labels.
    metadata_fingerprint str
    The unique fingerprint of the metadata.
    pulumi_labels Mapping[str, str]
    The combination of labels configured directly on the resource and default labels configured on the provider.
    self_link str
    The URI of the created resource.
    tags_fingerprint str
    The unique fingerprint of the tags.
    cpuPlatform String
    The CPU platform used by this instance.
    currentStatus String
    The current status of the instance. This could be one of the following values: PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, REPAIRING, and TERMINATED. For more information about the status of the instance, see Instance life cycle.`,
    effectiveLabels Map<String>
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    id String
    The provider-assigned unique ID for this managed resource.
    instanceId String
    The server-assigned unique identifier of this instance.
    labelFingerprint String
    The unique fingerprint of the labels.
    metadataFingerprint String
    The unique fingerprint of the metadata.
    pulumiLabels Map<String>
    The combination of labels configured directly on the resource and default labels configured on the provider.
    selfLink String
    The URI of the created resource.
    tagsFingerprint String
    The unique fingerprint of the tags.

    Look up Existing Instance Resource

    Get an existing Instance 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?: InstanceState, opts?: CustomResourceOptions): Instance
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            advanced_machine_features: Optional[InstanceAdvancedMachineFeaturesArgs] = None,
            allow_stopping_for_update: Optional[bool] = None,
            attached_disks: Optional[Sequence[InstanceAttachedDiskArgs]] = None,
            boot_disk: Optional[InstanceBootDiskArgs] = None,
            can_ip_forward: Optional[bool] = None,
            confidential_instance_config: Optional[InstanceConfidentialInstanceConfigArgs] = None,
            cpu_platform: Optional[str] = None,
            current_status: Optional[str] = None,
            deletion_protection: Optional[bool] = None,
            description: Optional[str] = None,
            desired_status: Optional[str] = None,
            effective_labels: Optional[Mapping[str, str]] = None,
            enable_display: Optional[bool] = None,
            guest_accelerators: Optional[Sequence[InstanceGuestAcceleratorArgs]] = None,
            hostname: Optional[str] = None,
            instance_id: Optional[str] = None,
            label_fingerprint: Optional[str] = None,
            labels: Optional[Mapping[str, str]] = None,
            machine_type: Optional[str] = None,
            metadata: Optional[Mapping[str, str]] = None,
            metadata_fingerprint: Optional[str] = None,
            metadata_startup_script: Optional[str] = None,
            min_cpu_platform: Optional[str] = None,
            name: Optional[str] = None,
            network_interfaces: Optional[Sequence[InstanceNetworkInterfaceArgs]] = None,
            network_performance_config: Optional[InstanceNetworkPerformanceConfigArgs] = None,
            params: Optional[InstanceParamsArgs] = None,
            project: Optional[str] = None,
            pulumi_labels: Optional[Mapping[str, str]] = None,
            reservation_affinity: Optional[InstanceReservationAffinityArgs] = None,
            resource_policies: Optional[str] = None,
            scheduling: Optional[InstanceSchedulingArgs] = None,
            scratch_disks: Optional[Sequence[InstanceScratchDiskArgs]] = None,
            self_link: Optional[str] = None,
            service_account: Optional[InstanceServiceAccountArgs] = None,
            shielded_instance_config: Optional[InstanceShieldedInstanceConfigArgs] = None,
            tags: Optional[Sequence[str]] = None,
            tags_fingerprint: Optional[str] = None,
            zone: Optional[str] = None) -> Instance
    func GetInstance(ctx *Context, name string, id IDInput, state *InstanceState, opts ...ResourceOption) (*Instance, error)
    public static Instance Get(string name, Input<string> id, InstanceState? state, CustomResourceOptions? opts = null)
    public static Instance get(String name, Output<String> id, InstanceState 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:
    AdvancedMachineFeatures InstanceAdvancedMachineFeatures
    Configure Nested Virtualisation and Simultaneous Hyper Threading on this VM. Structure is documented below
    AllowStoppingForUpdate bool
    If true, allows this prvider to stop the instance to update its properties. If you try to update a property that requires stopping the instance without setting this field, the update will fail.
    AttachedDisks List<InstanceAttachedDisk>
    Additional disks to attach to the instance. Can be repeated multiple times for multiple disks. Structure is documented below.
    BootDisk InstanceBootDisk
    The boot disk for the instance. Structure is documented below.
    CanIpForward bool
    Whether to allow sending and receiving of packets with non-matching source or destination IPs. This defaults to false.
    ConfidentialInstanceConfig InstanceConfidentialInstanceConfig
    Enable Confidential Mode on this VM. Structure is documented below
    CpuPlatform string
    The CPU platform used by this instance.
    CurrentStatus string
    The current status of the instance. This could be one of the following values: PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, REPAIRING, and TERMINATED. For more information about the status of the instance, see Instance life cycle.`,
    DeletionProtection bool
    Enable deletion protection on this instance. Defaults to false. Note: you must disable deletion protection before removing the resource (e.g., via pulumi destroy), or the instance cannot be deleted and the provider run will not complete successfully.
    Description string
    A brief description of this resource.
    DesiredStatus string
    Desired status of the instance. Either "RUNNING" or "TERMINATED".
    EffectiveLabels Dictionary<string, string>
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    EnableDisplay bool
    Enable Virtual Displays on this instance. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    GuestAccelerators List<InstanceGuestAccelerator>
    List of the type and count of accelerator cards attached to the instance. Structure documented below. Note: GPU accelerators can only be used with on_host_maintenance option set to TERMINATE.
    Hostname string
    A custom hostname for the instance. Must be a fully qualified DNS name and RFC-1035-valid. Valid format is a series of labels 1-63 characters long matching the regular expression a-z, concatenated with periods. The entire hostname must not exceed 253 characters. Changing this forces a new resource to be created.
    InstanceId string
    The server-assigned unique identifier of this instance.
    LabelFingerprint string
    The unique fingerprint of the labels.
    Labels Dictionary<string, string>
    A map of key/value label pairs to assign to the instance. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.
    MachineType string

    The machine type to create.

    Note: If you want to update this value (resize the VM) after initial creation, you must set allow_stopping_for_update to true.

    Custom machine types can be formatted as custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY_MB, e.g. custom-6-20480 for 6 vCPU and 20GB of RAM.

    There is a limit of 6.5 GB per CPU unless you add extended memory. You must do this explicitly by adding the suffix -ext, e.g. custom-2-15360-ext for 2 vCPU and 15 GB of memory.

    Metadata Dictionary<string, string>

    Metadata key/value pairs to make available from within the instance. Ssh keys attached in the Cloud Console will be removed. Add them to your config in order to keep them attached to your instance. A list of default metadata values (e.g. ssh-keys) can be found here

    Depending on the OS you choose for your instance, some metadata keys have special functionality. Most linux-based images will run the content of metadata.startup-script in a shell on every boot. At a minimum, Debian, CentOS, RHEL, SLES, Container-Optimized OS, and Ubuntu images support this key. Windows instances require other keys depending on the format of the script and the time you would like it to run - see this table. For the convenience of the users of metadata.startup-script, we provide a special attribute, metadata_startup_script, which is documented below.

    MetadataFingerprint string
    The unique fingerprint of the metadata.
    MetadataStartupScript string
    An alternative to using the startup-script metadata key, except this one forces the instance to be recreated (thus re-running the script) if it is changed. This replaces the startup-script metadata key on the created instance and thus the two mechanisms are not allowed to be used simultaneously. Users are free to use either mechanism - the only distinction is that this separate attribute will cause a recreate on modification. On import, metadata_startup_script will not be set - if you choose to specify it you will see a diff immediately after import causing a destroy/recreate operation. If importing an instance and specifying this value is desired, you will need to modify your state file.
    MinCpuPlatform string
    Specifies a minimum CPU platform for the VM instance. Applicable values are the friendly names of CPU platforms, such as Intel Haswell or Intel Skylake. See the complete list here. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    Name string
    A unique name for the resource, required by GCE. Changing this forces a new resource to be created.
    NetworkInterfaces List<InstanceNetworkInterface>
    Networks to attach to the instance. This can be specified multiple times. Structure is documented below.


    NetworkPerformanceConfig InstanceNetworkPerformanceConfig
    (Optional, Beta Configures network performance settings for the instance. Structure is documented below. Note: machine_type must be a supported type, the image used must include the GVNIC in guest-os-features, and network_interface.0.nic-type must be GVNIC in order for this setting to take effect.
    Params InstanceParams
    Additional instance parameters. .
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    PulumiLabels Dictionary<string, string>
    The combination of labels configured directly on the resource and default labels configured on the provider.
    ReservationAffinity InstanceReservationAffinity
    Specifies the reservations that this instance can consume from. Structure is documented below.
    ResourcePolicies string
    • A list of self_links of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported.
    Scheduling InstanceScheduling
    The scheduling strategy to use. More details about this configuration option are detailed below.
    ScratchDisks List<InstanceScratchDisk>
    Scratch disks to attach to the instance. This can be specified multiple times for multiple scratch disks. Structure is documented below.
    SelfLink string
    The URI of the created resource.
    ServiceAccount InstanceServiceAccount
    Service account to attach to the instance. Structure is documented below. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    ShieldedInstanceConfig InstanceShieldedInstanceConfig
    Enable Shielded VM on this instance. Shielded VM provides verifiable integrity to prevent against malware and rootkits. Defaults to disabled. Structure is documented below. Note: shielded_instance_config can only be used with boot images with shielded vm support. See the complete list here. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    Tags List<string>
    A list of network tags to attach to the instance.
    TagsFingerprint string
    The unique fingerprint of the tags.
    Zone string
    The zone that the machine should be created in. If it is not provided, the provider zone is used.
    AdvancedMachineFeatures InstanceAdvancedMachineFeaturesArgs
    Configure Nested Virtualisation and Simultaneous Hyper Threading on this VM. Structure is documented below
    AllowStoppingForUpdate bool
    If true, allows this prvider to stop the instance to update its properties. If you try to update a property that requires stopping the instance without setting this field, the update will fail.
    AttachedDisks []InstanceAttachedDiskArgs
    Additional disks to attach to the instance. Can be repeated multiple times for multiple disks. Structure is documented below.
    BootDisk InstanceBootDiskArgs
    The boot disk for the instance. Structure is documented below.
    CanIpForward bool
    Whether to allow sending and receiving of packets with non-matching source or destination IPs. This defaults to false.
    ConfidentialInstanceConfig InstanceConfidentialInstanceConfigArgs
    Enable Confidential Mode on this VM. Structure is documented below
    CpuPlatform string
    The CPU platform used by this instance.
    CurrentStatus string
    The current status of the instance. This could be one of the following values: PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, REPAIRING, and TERMINATED. For more information about the status of the instance, see Instance life cycle.`,
    DeletionProtection bool
    Enable deletion protection on this instance. Defaults to false. Note: you must disable deletion protection before removing the resource (e.g., via pulumi destroy), or the instance cannot be deleted and the provider run will not complete successfully.
    Description string
    A brief description of this resource.
    DesiredStatus string
    Desired status of the instance. Either "RUNNING" or "TERMINATED".
    EffectiveLabels map[string]string
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    EnableDisplay bool
    Enable Virtual Displays on this instance. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    GuestAccelerators []InstanceGuestAcceleratorArgs
    List of the type and count of accelerator cards attached to the instance. Structure documented below. Note: GPU accelerators can only be used with on_host_maintenance option set to TERMINATE.
    Hostname string
    A custom hostname for the instance. Must be a fully qualified DNS name and RFC-1035-valid. Valid format is a series of labels 1-63 characters long matching the regular expression a-z, concatenated with periods. The entire hostname must not exceed 253 characters. Changing this forces a new resource to be created.
    InstanceId string
    The server-assigned unique identifier of this instance.
    LabelFingerprint string
    The unique fingerprint of the labels.
    Labels map[string]string
    A map of key/value label pairs to assign to the instance. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.
    MachineType string

    The machine type to create.

    Note: If you want to update this value (resize the VM) after initial creation, you must set allow_stopping_for_update to true.

    Custom machine types can be formatted as custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY_MB, e.g. custom-6-20480 for 6 vCPU and 20GB of RAM.

    There is a limit of 6.5 GB per CPU unless you add extended memory. You must do this explicitly by adding the suffix -ext, e.g. custom-2-15360-ext for 2 vCPU and 15 GB of memory.

    Metadata map[string]string

    Metadata key/value pairs to make available from within the instance. Ssh keys attached in the Cloud Console will be removed. Add them to your config in order to keep them attached to your instance. A list of default metadata values (e.g. ssh-keys) can be found here

    Depending on the OS you choose for your instance, some metadata keys have special functionality. Most linux-based images will run the content of metadata.startup-script in a shell on every boot. At a minimum, Debian, CentOS, RHEL, SLES, Container-Optimized OS, and Ubuntu images support this key. Windows instances require other keys depending on the format of the script and the time you would like it to run - see this table. For the convenience of the users of metadata.startup-script, we provide a special attribute, metadata_startup_script, which is documented below.

    MetadataFingerprint string
    The unique fingerprint of the metadata.
    MetadataStartupScript string
    An alternative to using the startup-script metadata key, except this one forces the instance to be recreated (thus re-running the script) if it is changed. This replaces the startup-script metadata key on the created instance and thus the two mechanisms are not allowed to be used simultaneously. Users are free to use either mechanism - the only distinction is that this separate attribute will cause a recreate on modification. On import, metadata_startup_script will not be set - if you choose to specify it you will see a diff immediately after import causing a destroy/recreate operation. If importing an instance and specifying this value is desired, you will need to modify your state file.
    MinCpuPlatform string
    Specifies a minimum CPU platform for the VM instance. Applicable values are the friendly names of CPU platforms, such as Intel Haswell or Intel Skylake. See the complete list here. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    Name string
    A unique name for the resource, required by GCE. Changing this forces a new resource to be created.
    NetworkInterfaces []InstanceNetworkInterfaceArgs
    Networks to attach to the instance. This can be specified multiple times. Structure is documented below.


    NetworkPerformanceConfig InstanceNetworkPerformanceConfigArgs
    (Optional, Beta Configures network performance settings for the instance. Structure is documented below. Note: machine_type must be a supported type, the image used must include the GVNIC in guest-os-features, and network_interface.0.nic-type must be GVNIC in order for this setting to take effect.
    Params InstanceParamsArgs
    Additional instance parameters. .
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    PulumiLabels map[string]string
    The combination of labels configured directly on the resource and default labels configured on the provider.
    ReservationAffinity InstanceReservationAffinityArgs
    Specifies the reservations that this instance can consume from. Structure is documented below.
    ResourcePolicies string
    • A list of self_links of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported.
    Scheduling InstanceSchedulingArgs
    The scheduling strategy to use. More details about this configuration option are detailed below.
    ScratchDisks []InstanceScratchDiskArgs
    Scratch disks to attach to the instance. This can be specified multiple times for multiple scratch disks. Structure is documented below.
    SelfLink string
    The URI of the created resource.
    ServiceAccount InstanceServiceAccountArgs
    Service account to attach to the instance. Structure is documented below. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    ShieldedInstanceConfig InstanceShieldedInstanceConfigArgs
    Enable Shielded VM on this instance. Shielded VM provides verifiable integrity to prevent against malware and rootkits. Defaults to disabled. Structure is documented below. Note: shielded_instance_config can only be used with boot images with shielded vm support. See the complete list here. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    Tags []string
    A list of network tags to attach to the instance.
    TagsFingerprint string
    The unique fingerprint of the tags.
    Zone string
    The zone that the machine should be created in. If it is not provided, the provider zone is used.
    advancedMachineFeatures InstanceAdvancedMachineFeatures
    Configure Nested Virtualisation and Simultaneous Hyper Threading on this VM. Structure is documented below
    allowStoppingForUpdate Boolean
    If true, allows this prvider to stop the instance to update its properties. If you try to update a property that requires stopping the instance without setting this field, the update will fail.
    attachedDisks List<InstanceAttachedDisk>
    Additional disks to attach to the instance. Can be repeated multiple times for multiple disks. Structure is documented below.
    bootDisk InstanceBootDisk
    The boot disk for the instance. Structure is documented below.
    canIpForward Boolean
    Whether to allow sending and receiving of packets with non-matching source or destination IPs. This defaults to false.
    confidentialInstanceConfig InstanceConfidentialInstanceConfig
    Enable Confidential Mode on this VM. Structure is documented below
    cpuPlatform String
    The CPU platform used by this instance.
    currentStatus String
    The current status of the instance. This could be one of the following values: PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, REPAIRING, and TERMINATED. For more information about the status of the instance, see Instance life cycle.`,
    deletionProtection Boolean
    Enable deletion protection on this instance. Defaults to false. Note: you must disable deletion protection before removing the resource (e.g., via pulumi destroy), or the instance cannot be deleted and the provider run will not complete successfully.
    description String
    A brief description of this resource.
    desiredStatus String
    Desired status of the instance. Either "RUNNING" or "TERMINATED".
    effectiveLabels Map<String,String>
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    enableDisplay Boolean
    Enable Virtual Displays on this instance. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    guestAccelerators List<InstanceGuestAccelerator>
    List of the type and count of accelerator cards attached to the instance. Structure documented below. Note: GPU accelerators can only be used with on_host_maintenance option set to TERMINATE.
    hostname String
    A custom hostname for the instance. Must be a fully qualified DNS name and RFC-1035-valid. Valid format is a series of labels 1-63 characters long matching the regular expression a-z, concatenated with periods. The entire hostname must not exceed 253 characters. Changing this forces a new resource to be created.
    instanceId String
    The server-assigned unique identifier of this instance.
    labelFingerprint String
    The unique fingerprint of the labels.
    labels Map<String,String>
    A map of key/value label pairs to assign to the instance. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.
    machineType String

    The machine type to create.

    Note: If you want to update this value (resize the VM) after initial creation, you must set allow_stopping_for_update to true.

    Custom machine types can be formatted as custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY_MB, e.g. custom-6-20480 for 6 vCPU and 20GB of RAM.

    There is a limit of 6.5 GB per CPU unless you add extended memory. You must do this explicitly by adding the suffix -ext, e.g. custom-2-15360-ext for 2 vCPU and 15 GB of memory.

    metadata Map<String,String>

    Metadata key/value pairs to make available from within the instance. Ssh keys attached in the Cloud Console will be removed. Add them to your config in order to keep them attached to your instance. A list of default metadata values (e.g. ssh-keys) can be found here

    Depending on the OS you choose for your instance, some metadata keys have special functionality. Most linux-based images will run the content of metadata.startup-script in a shell on every boot. At a minimum, Debian, CentOS, RHEL, SLES, Container-Optimized OS, and Ubuntu images support this key. Windows instances require other keys depending on the format of the script and the time you would like it to run - see this table. For the convenience of the users of metadata.startup-script, we provide a special attribute, metadata_startup_script, which is documented below.

    metadataFingerprint String
    The unique fingerprint of the metadata.
    metadataStartupScript String
    An alternative to using the startup-script metadata key, except this one forces the instance to be recreated (thus re-running the script) if it is changed. This replaces the startup-script metadata key on the created instance and thus the two mechanisms are not allowed to be used simultaneously. Users are free to use either mechanism - the only distinction is that this separate attribute will cause a recreate on modification. On import, metadata_startup_script will not be set - if you choose to specify it you will see a diff immediately after import causing a destroy/recreate operation. If importing an instance and specifying this value is desired, you will need to modify your state file.
    minCpuPlatform String
    Specifies a minimum CPU platform for the VM instance. Applicable values are the friendly names of CPU platforms, such as Intel Haswell or Intel Skylake. See the complete list here. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    name String
    A unique name for the resource, required by GCE. Changing this forces a new resource to be created.
    networkInterfaces List<InstanceNetworkInterface>
    Networks to attach to the instance. This can be specified multiple times. Structure is documented below.


    networkPerformanceConfig InstanceNetworkPerformanceConfig
    (Optional, Beta Configures network performance settings for the instance. Structure is documented below. Note: machine_type must be a supported type, the image used must include the GVNIC in guest-os-features, and network_interface.0.nic-type must be GVNIC in order for this setting to take effect.
    params InstanceParams
    Additional instance parameters. .
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    pulumiLabels Map<String,String>
    The combination of labels configured directly on the resource and default labels configured on the provider.
    reservationAffinity InstanceReservationAffinity
    Specifies the reservations that this instance can consume from. Structure is documented below.
    resourcePolicies String
    • A list of self_links of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported.
    scheduling InstanceScheduling
    The scheduling strategy to use. More details about this configuration option are detailed below.
    scratchDisks List<InstanceScratchDisk>
    Scratch disks to attach to the instance. This can be specified multiple times for multiple scratch disks. Structure is documented below.
    selfLink String
    The URI of the created resource.
    serviceAccount InstanceServiceAccount
    Service account to attach to the instance. Structure is documented below. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    shieldedInstanceConfig InstanceShieldedInstanceConfig
    Enable Shielded VM on this instance. Shielded VM provides verifiable integrity to prevent against malware and rootkits. Defaults to disabled. Structure is documented below. Note: shielded_instance_config can only be used with boot images with shielded vm support. See the complete list here. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    tags List<String>
    A list of network tags to attach to the instance.
    tagsFingerprint String
    The unique fingerprint of the tags.
    zone String
    The zone that the machine should be created in. If it is not provided, the provider zone is used.
    advancedMachineFeatures InstanceAdvancedMachineFeatures
    Configure Nested Virtualisation and Simultaneous Hyper Threading on this VM. Structure is documented below
    allowStoppingForUpdate boolean
    If true, allows this prvider to stop the instance to update its properties. If you try to update a property that requires stopping the instance without setting this field, the update will fail.
    attachedDisks InstanceAttachedDisk[]
    Additional disks to attach to the instance. Can be repeated multiple times for multiple disks. Structure is documented below.
    bootDisk InstanceBootDisk
    The boot disk for the instance. Structure is documented below.
    canIpForward boolean
    Whether to allow sending and receiving of packets with non-matching source or destination IPs. This defaults to false.
    confidentialInstanceConfig InstanceConfidentialInstanceConfig
    Enable Confidential Mode on this VM. Structure is documented below
    cpuPlatform string
    The CPU platform used by this instance.
    currentStatus string
    The current status of the instance. This could be one of the following values: PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, REPAIRING, and TERMINATED. For more information about the status of the instance, see Instance life cycle.`,
    deletionProtection boolean
    Enable deletion protection on this instance. Defaults to false. Note: you must disable deletion protection before removing the resource (e.g., via pulumi destroy), or the instance cannot be deleted and the provider run will not complete successfully.
    description string
    A brief description of this resource.
    desiredStatus string
    Desired status of the instance. Either "RUNNING" or "TERMINATED".
    effectiveLabels {[key: string]: string}
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    enableDisplay boolean
    Enable Virtual Displays on this instance. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    guestAccelerators InstanceGuestAccelerator[]
    List of the type and count of accelerator cards attached to the instance. Structure documented below. Note: GPU accelerators can only be used with on_host_maintenance option set to TERMINATE.
    hostname string
    A custom hostname for the instance. Must be a fully qualified DNS name and RFC-1035-valid. Valid format is a series of labels 1-63 characters long matching the regular expression a-z, concatenated with periods. The entire hostname must not exceed 253 characters. Changing this forces a new resource to be created.
    instanceId string
    The server-assigned unique identifier of this instance.
    labelFingerprint string
    The unique fingerprint of the labels.
    labels {[key: string]: string}
    A map of key/value label pairs to assign to the instance. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.
    machineType string

    The machine type to create.

    Note: If you want to update this value (resize the VM) after initial creation, you must set allow_stopping_for_update to true.

    Custom machine types can be formatted as custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY_MB, e.g. custom-6-20480 for 6 vCPU and 20GB of RAM.

    There is a limit of 6.5 GB per CPU unless you add extended memory. You must do this explicitly by adding the suffix -ext, e.g. custom-2-15360-ext for 2 vCPU and 15 GB of memory.

    metadata {[key: string]: string}

    Metadata key/value pairs to make available from within the instance. Ssh keys attached in the Cloud Console will be removed. Add them to your config in order to keep them attached to your instance. A list of default metadata values (e.g. ssh-keys) can be found here

    Depending on the OS you choose for your instance, some metadata keys have special functionality. Most linux-based images will run the content of metadata.startup-script in a shell on every boot. At a minimum, Debian, CentOS, RHEL, SLES, Container-Optimized OS, and Ubuntu images support this key. Windows instances require other keys depending on the format of the script and the time you would like it to run - see this table. For the convenience of the users of metadata.startup-script, we provide a special attribute, metadata_startup_script, which is documented below.

    metadataFingerprint string
    The unique fingerprint of the metadata.
    metadataStartupScript string
    An alternative to using the startup-script metadata key, except this one forces the instance to be recreated (thus re-running the script) if it is changed. This replaces the startup-script metadata key on the created instance and thus the two mechanisms are not allowed to be used simultaneously. Users are free to use either mechanism - the only distinction is that this separate attribute will cause a recreate on modification. On import, metadata_startup_script will not be set - if you choose to specify it you will see a diff immediately after import causing a destroy/recreate operation. If importing an instance and specifying this value is desired, you will need to modify your state file.
    minCpuPlatform string
    Specifies a minimum CPU platform for the VM instance. Applicable values are the friendly names of CPU platforms, such as Intel Haswell or Intel Skylake. See the complete list here. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    name string
    A unique name for the resource, required by GCE. Changing this forces a new resource to be created.
    networkInterfaces InstanceNetworkInterface[]
    Networks to attach to the instance. This can be specified multiple times. Structure is documented below.


    networkPerformanceConfig InstanceNetworkPerformanceConfig
    (Optional, Beta Configures network performance settings for the instance. Structure is documented below. Note: machine_type must be a supported type, the image used must include the GVNIC in guest-os-features, and network_interface.0.nic-type must be GVNIC in order for this setting to take effect.
    params InstanceParams
    Additional instance parameters. .
    project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    pulumiLabels {[key: string]: string}
    The combination of labels configured directly on the resource and default labels configured on the provider.
    reservationAffinity InstanceReservationAffinity
    Specifies the reservations that this instance can consume from. Structure is documented below.
    resourcePolicies string
    • A list of self_links of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported.
    scheduling InstanceScheduling
    The scheduling strategy to use. More details about this configuration option are detailed below.
    scratchDisks InstanceScratchDisk[]
    Scratch disks to attach to the instance. This can be specified multiple times for multiple scratch disks. Structure is documented below.
    selfLink string
    The URI of the created resource.
    serviceAccount InstanceServiceAccount
    Service account to attach to the instance. Structure is documented below. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    shieldedInstanceConfig InstanceShieldedInstanceConfig
    Enable Shielded VM on this instance. Shielded VM provides verifiable integrity to prevent against malware and rootkits. Defaults to disabled. Structure is documented below. Note: shielded_instance_config can only be used with boot images with shielded vm support. See the complete list here. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    tags string[]
    A list of network tags to attach to the instance.
    tagsFingerprint string
    The unique fingerprint of the tags.
    zone string
    The zone that the machine should be created in. If it is not provided, the provider zone is used.
    advanced_machine_features InstanceAdvancedMachineFeaturesArgs
    Configure Nested Virtualisation and Simultaneous Hyper Threading on this VM. Structure is documented below
    allow_stopping_for_update bool
    If true, allows this prvider to stop the instance to update its properties. If you try to update a property that requires stopping the instance without setting this field, the update will fail.
    attached_disks Sequence[InstanceAttachedDiskArgs]
    Additional disks to attach to the instance. Can be repeated multiple times for multiple disks. Structure is documented below.
    boot_disk InstanceBootDiskArgs
    The boot disk for the instance. Structure is documented below.
    can_ip_forward bool
    Whether to allow sending and receiving of packets with non-matching source or destination IPs. This defaults to false.
    confidential_instance_config InstanceConfidentialInstanceConfigArgs
    Enable Confidential Mode on this VM. Structure is documented below
    cpu_platform str
    The CPU platform used by this instance.
    current_status str
    The current status of the instance. This could be one of the following values: PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, REPAIRING, and TERMINATED. For more information about the status of the instance, see Instance life cycle.`,
    deletion_protection bool
    Enable deletion protection on this instance. Defaults to false. Note: you must disable deletion protection before removing the resource (e.g., via pulumi destroy), or the instance cannot be deleted and the provider run will not complete successfully.
    description str
    A brief description of this resource.
    desired_status str
    Desired status of the instance. Either "RUNNING" or "TERMINATED".
    effective_labels Mapping[str, str]
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    enable_display bool
    Enable Virtual Displays on this instance. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    guest_accelerators Sequence[InstanceGuestAcceleratorArgs]
    List of the type and count of accelerator cards attached to the instance. Structure documented below. Note: GPU accelerators can only be used with on_host_maintenance option set to TERMINATE.
    hostname str
    A custom hostname for the instance. Must be a fully qualified DNS name and RFC-1035-valid. Valid format is a series of labels 1-63 characters long matching the regular expression a-z, concatenated with periods. The entire hostname must not exceed 253 characters. Changing this forces a new resource to be created.
    instance_id str
    The server-assigned unique identifier of this instance.
    label_fingerprint str
    The unique fingerprint of the labels.
    labels Mapping[str, str]
    A map of key/value label pairs to assign to the instance. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.
    machine_type str

    The machine type to create.

    Note: If you want to update this value (resize the VM) after initial creation, you must set allow_stopping_for_update to true.

    Custom machine types can be formatted as custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY_MB, e.g. custom-6-20480 for 6 vCPU and 20GB of RAM.

    There is a limit of 6.5 GB per CPU unless you add extended memory. You must do this explicitly by adding the suffix -ext, e.g. custom-2-15360-ext for 2 vCPU and 15 GB of memory.

    metadata Mapping[str, str]

    Metadata key/value pairs to make available from within the instance. Ssh keys attached in the Cloud Console will be removed. Add them to your config in order to keep them attached to your instance. A list of default metadata values (e.g. ssh-keys) can be found here

    Depending on the OS you choose for your instance, some metadata keys have special functionality. Most linux-based images will run the content of metadata.startup-script in a shell on every boot. At a minimum, Debian, CentOS, RHEL, SLES, Container-Optimized OS, and Ubuntu images support this key. Windows instances require other keys depending on the format of the script and the time you would like it to run - see this table. For the convenience of the users of metadata.startup-script, we provide a special attribute, metadata_startup_script, which is documented below.

    metadata_fingerprint str
    The unique fingerprint of the metadata.
    metadata_startup_script str
    An alternative to using the startup-script metadata key, except this one forces the instance to be recreated (thus re-running the script) if it is changed. This replaces the startup-script metadata key on the created instance and thus the two mechanisms are not allowed to be used simultaneously. Users are free to use either mechanism - the only distinction is that this separate attribute will cause a recreate on modification. On import, metadata_startup_script will not be set - if you choose to specify it you will see a diff immediately after import causing a destroy/recreate operation. If importing an instance and specifying this value is desired, you will need to modify your state file.
    min_cpu_platform str
    Specifies a minimum CPU platform for the VM instance. Applicable values are the friendly names of CPU platforms, such as Intel Haswell or Intel Skylake. See the complete list here. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    name str
    A unique name for the resource, required by GCE. Changing this forces a new resource to be created.
    network_interfaces Sequence[InstanceNetworkInterfaceArgs]
    Networks to attach to the instance. This can be specified multiple times. Structure is documented below.


    network_performance_config InstanceNetworkPerformanceConfigArgs
    (Optional, Beta Configures network performance settings for the instance. Structure is documented below. Note: machine_type must be a supported type, the image used must include the GVNIC in guest-os-features, and network_interface.0.nic-type must be GVNIC in order for this setting to take effect.
    params InstanceParamsArgs
    Additional instance parameters. .
    project str
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    pulumi_labels Mapping[str, str]
    The combination of labels configured directly on the resource and default labels configured on the provider.
    reservation_affinity InstanceReservationAffinityArgs
    Specifies the reservations that this instance can consume from. Structure is documented below.
    resource_policies str
    • A list of self_links of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported.
    scheduling InstanceSchedulingArgs
    The scheduling strategy to use. More details about this configuration option are detailed below.
    scratch_disks Sequence[InstanceScratchDiskArgs]
    Scratch disks to attach to the instance. This can be specified multiple times for multiple scratch disks. Structure is documented below.
    self_link str
    The URI of the created resource.
    service_account InstanceServiceAccountArgs
    Service account to attach to the instance. Structure is documented below. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    shielded_instance_config InstanceShieldedInstanceConfigArgs
    Enable Shielded VM on this instance. Shielded VM provides verifiable integrity to prevent against malware and rootkits. Defaults to disabled. Structure is documented below. Note: shielded_instance_config can only be used with boot images with shielded vm support. See the complete list here. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    tags Sequence[str]
    A list of network tags to attach to the instance.
    tags_fingerprint str
    The unique fingerprint of the tags.
    zone str
    The zone that the machine should be created in. If it is not provided, the provider zone is used.
    advancedMachineFeatures Property Map
    Configure Nested Virtualisation and Simultaneous Hyper Threading on this VM. Structure is documented below
    allowStoppingForUpdate Boolean
    If true, allows this prvider to stop the instance to update its properties. If you try to update a property that requires stopping the instance without setting this field, the update will fail.
    attachedDisks List<Property Map>
    Additional disks to attach to the instance. Can be repeated multiple times for multiple disks. Structure is documented below.
    bootDisk Property Map
    The boot disk for the instance. Structure is documented below.
    canIpForward Boolean
    Whether to allow sending and receiving of packets with non-matching source or destination IPs. This defaults to false.
    confidentialInstanceConfig Property Map
    Enable Confidential Mode on this VM. Structure is documented below
    cpuPlatform String
    The CPU platform used by this instance.
    currentStatus String
    The current status of the instance. This could be one of the following values: PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, REPAIRING, and TERMINATED. For more information about the status of the instance, see Instance life cycle.`,
    deletionProtection Boolean
    Enable deletion protection on this instance. Defaults to false. Note: you must disable deletion protection before removing the resource (e.g., via pulumi destroy), or the instance cannot be deleted and the provider run will not complete successfully.
    description String
    A brief description of this resource.
    desiredStatus String
    Desired status of the instance. Either "RUNNING" or "TERMINATED".
    effectiveLabels Map<String>
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    enableDisplay Boolean
    Enable Virtual Displays on this instance. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    guestAccelerators List<Property Map>
    List of the type and count of accelerator cards attached to the instance. Structure documented below. Note: GPU accelerators can only be used with on_host_maintenance option set to TERMINATE.
    hostname String
    A custom hostname for the instance. Must be a fully qualified DNS name and RFC-1035-valid. Valid format is a series of labels 1-63 characters long matching the regular expression a-z, concatenated with periods. The entire hostname must not exceed 253 characters. Changing this forces a new resource to be created.
    instanceId String
    The server-assigned unique identifier of this instance.
    labelFingerprint String
    The unique fingerprint of the labels.
    labels Map<String>
    A map of key/value label pairs to assign to the instance. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.
    machineType String

    The machine type to create.

    Note: If you want to update this value (resize the VM) after initial creation, you must set allow_stopping_for_update to true.

    Custom machine types can be formatted as custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY_MB, e.g. custom-6-20480 for 6 vCPU and 20GB of RAM.

    There is a limit of 6.5 GB per CPU unless you add extended memory. You must do this explicitly by adding the suffix -ext, e.g. custom-2-15360-ext for 2 vCPU and 15 GB of memory.

    metadata Map<String>

    Metadata key/value pairs to make available from within the instance. Ssh keys attached in the Cloud Console will be removed. Add them to your config in order to keep them attached to your instance. A list of default metadata values (e.g. ssh-keys) can be found here

    Depending on the OS you choose for your instance, some metadata keys have special functionality. Most linux-based images will run the content of metadata.startup-script in a shell on every boot. At a minimum, Debian, CentOS, RHEL, SLES, Container-Optimized OS, and Ubuntu images support this key. Windows instances require other keys depending on the format of the script and the time you would like it to run - see this table. For the convenience of the users of metadata.startup-script, we provide a special attribute, metadata_startup_script, which is documented below.

    metadataFingerprint String
    The unique fingerprint of the metadata.
    metadataStartupScript String
    An alternative to using the startup-script metadata key, except this one forces the instance to be recreated (thus re-running the script) if it is changed. This replaces the startup-script metadata key on the created instance and thus the two mechanisms are not allowed to be used simultaneously. Users are free to use either mechanism - the only distinction is that this separate attribute will cause a recreate on modification. On import, metadata_startup_script will not be set - if you choose to specify it you will see a diff immediately after import causing a destroy/recreate operation. If importing an instance and specifying this value is desired, you will need to modify your state file.
    minCpuPlatform String
    Specifies a minimum CPU platform for the VM instance. Applicable values are the friendly names of CPU platforms, such as Intel Haswell or Intel Skylake. See the complete list here. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    name String
    A unique name for the resource, required by GCE. Changing this forces a new resource to be created.
    networkInterfaces List<Property Map>
    Networks to attach to the instance. This can be specified multiple times. Structure is documented below.


    networkPerformanceConfig Property Map
    (Optional, Beta Configures network performance settings for the instance. Structure is documented below. Note: machine_type must be a supported type, the image used must include the GVNIC in guest-os-features, and network_interface.0.nic-type must be GVNIC in order for this setting to take effect.
    params Property Map
    Additional instance parameters. .
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    pulumiLabels Map<String>
    The combination of labels configured directly on the resource and default labels configured on the provider.
    reservationAffinity Property Map
    Specifies the reservations that this instance can consume from. Structure is documented below.
    resourcePolicies String
    • A list of self_links of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported.
    scheduling Property Map
    The scheduling strategy to use. More details about this configuration option are detailed below.
    scratchDisks List<Property Map>
    Scratch disks to attach to the instance. This can be specified multiple times for multiple scratch disks. Structure is documented below.
    selfLink String
    The URI of the created resource.
    serviceAccount Property Map
    Service account to attach to the instance. Structure is documented below. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    shieldedInstanceConfig Property Map
    Enable Shielded VM on this instance. Shielded VM provides verifiable integrity to prevent against malware and rootkits. Defaults to disabled. Structure is documented below. Note: shielded_instance_config can only be used with boot images with shielded vm support. See the complete list here. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    tags List<String>
    A list of network tags to attach to the instance.
    tagsFingerprint String
    The unique fingerprint of the tags.
    zone String
    The zone that the machine should be created in. If it is not provided, the provider zone is used.

    Supporting Types

    InstanceAdvancedMachineFeatures, InstanceAdvancedMachineFeaturesArgs

    EnableNestedVirtualization bool
    Defines whether the instance should have nested virtualization enabled. Defaults to false.
    ThreadsPerCore int
    he number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1.
    VisibleCoreCount int
    The number of physical cores to expose to an instance. visible cores info (VC).
    EnableNestedVirtualization bool
    Defines whether the instance should have nested virtualization enabled. Defaults to false.
    ThreadsPerCore int
    he number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1.
    VisibleCoreCount int
    The number of physical cores to expose to an instance. visible cores info (VC).
    enableNestedVirtualization Boolean
    Defines whether the instance should have nested virtualization enabled. Defaults to false.
    threadsPerCore Integer
    he number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1.
    visibleCoreCount Integer
    The number of physical cores to expose to an instance. visible cores info (VC).
    enableNestedVirtualization boolean
    Defines whether the instance should have nested virtualization enabled. Defaults to false.
    threadsPerCore number
    he number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1.
    visibleCoreCount number
    The number of physical cores to expose to an instance. visible cores info (VC).
    enable_nested_virtualization bool
    Defines whether the instance should have nested virtualization enabled. Defaults to false.
    threads_per_core int
    he number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1.
    visible_core_count int
    The number of physical cores to expose to an instance. visible cores info (VC).
    enableNestedVirtualization Boolean
    Defines whether the instance should have nested virtualization enabled. Defaults to false.
    threadsPerCore Number
    he number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1.
    visibleCoreCount Number
    The number of physical cores to expose to an instance. visible cores info (VC).

    InstanceAttachedDisk, InstanceAttachedDiskArgs

    Source string
    The name or self_link of the disk to attach to this instance.
    DeviceName string
    Name with which the attached disk will be accessible under /dev/disk/by-id/google-*
    DiskEncryptionKeyRaw string
    A 256-bit [customer-supplied encryption key] (https://cloud.google.com/compute/docs/disks/customer-supplied-encryption), encoded in RFC 4648 base64 to encrypt this disk. Only one of kms_key_self_link and disk_encryption_key_raw may be set.
    DiskEncryptionKeySha256 string
    The RFC 4648 base64 encoded SHA-256 hash of the [customer-supplied encryption key] (https://cloud.google.com/compute/docs/disks/customer-supplied-encryption) that protects this resource.
    KmsKeySelfLink string
    The self_link of the encryption key that is stored in Google Cloud KMS to encrypt this disk. Only one of kms_key_self_link and disk_encryption_key_raw may be set.
    Mode string
    Either "READ_ONLY" or "READ_WRITE", defaults to "READ_WRITE" If you have a persistent disk with data that you want to share between multiple instances, detach it from any read-write instances and attach it to one or more instances in read-only mode.
    Source string
    The name or self_link of the disk to attach to this instance.
    DeviceName string
    Name with which the attached disk will be accessible under /dev/disk/by-id/google-*
    DiskEncryptionKeyRaw string
    A 256-bit [customer-supplied encryption key] (https://cloud.google.com/compute/docs/disks/customer-supplied-encryption), encoded in RFC 4648 base64 to encrypt this disk. Only one of kms_key_self_link and disk_encryption_key_raw may be set.
    DiskEncryptionKeySha256 string
    The RFC 4648 base64 encoded SHA-256 hash of the [customer-supplied encryption key] (https://cloud.google.com/compute/docs/disks/customer-supplied-encryption) that protects this resource.
    KmsKeySelfLink string
    The self_link of the encryption key that is stored in Google Cloud KMS to encrypt this disk. Only one of kms_key_self_link and disk_encryption_key_raw may be set.
    Mode string
    Either "READ_ONLY" or "READ_WRITE", defaults to "READ_WRITE" If you have a persistent disk with data that you want to share between multiple instances, detach it from any read-write instances and attach it to one or more instances in read-only mode.
    source String
    The name or self_link of the disk to attach to this instance.
    deviceName String
    Name with which the attached disk will be accessible under /dev/disk/by-id/google-*
    diskEncryptionKeyRaw String
    A 256-bit [customer-supplied encryption key] (https://cloud.google.com/compute/docs/disks/customer-supplied-encryption), encoded in RFC 4648 base64 to encrypt this disk. Only one of kms_key_self_link and disk_encryption_key_raw may be set.
    diskEncryptionKeySha256 String
    The RFC 4648 base64 encoded SHA-256 hash of the [customer-supplied encryption key] (https://cloud.google.com/compute/docs/disks/customer-supplied-encryption) that protects this resource.
    kmsKeySelfLink String
    The self_link of the encryption key that is stored in Google Cloud KMS to encrypt this disk. Only one of kms_key_self_link and disk_encryption_key_raw may be set.
    mode String
    Either "READ_ONLY" or "READ_WRITE", defaults to "READ_WRITE" If you have a persistent disk with data that you want to share between multiple instances, detach it from any read-write instances and attach it to one or more instances in read-only mode.
    source string
    The name or self_link of the disk to attach to this instance.
    deviceName string
    Name with which the attached disk will be accessible under /dev/disk/by-id/google-*
    diskEncryptionKeyRaw string
    A 256-bit [customer-supplied encryption key] (https://cloud.google.com/compute/docs/disks/customer-supplied-encryption), encoded in RFC 4648 base64 to encrypt this disk. Only one of kms_key_self_link and disk_encryption_key_raw may be set.
    diskEncryptionKeySha256 string
    The RFC 4648 base64 encoded SHA-256 hash of the [customer-supplied encryption key] (https://cloud.google.com/compute/docs/disks/customer-supplied-encryption) that protects this resource.
    kmsKeySelfLink string
    The self_link of the encryption key that is stored in Google Cloud KMS to encrypt this disk. Only one of kms_key_self_link and disk_encryption_key_raw may be set.
    mode string
    Either "READ_ONLY" or "READ_WRITE", defaults to "READ_WRITE" If you have a persistent disk with data that you want to share between multiple instances, detach it from any read-write instances and attach it to one or more instances in read-only mode.
    source str
    The name or self_link of the disk to attach to this instance.
    device_name str
    Name with which the attached disk will be accessible under /dev/disk/by-id/google-*
    disk_encryption_key_raw str
    A 256-bit [customer-supplied encryption key] (https://cloud.google.com/compute/docs/disks/customer-supplied-encryption), encoded in RFC 4648 base64 to encrypt this disk. Only one of kms_key_self_link and disk_encryption_key_raw may be set.
    disk_encryption_key_sha256 str
    The RFC 4648 base64 encoded SHA-256 hash of the [customer-supplied encryption key] (https://cloud.google.com/compute/docs/disks/customer-supplied-encryption) that protects this resource.
    kms_key_self_link str
    The self_link of the encryption key that is stored in Google Cloud KMS to encrypt this disk. Only one of kms_key_self_link and disk_encryption_key_raw may be set.
    mode str
    Either "READ_ONLY" or "READ_WRITE", defaults to "READ_WRITE" If you have a persistent disk with data that you want to share between multiple instances, detach it from any read-write instances and attach it to one or more instances in read-only mode.
    source String
    The name or self_link of the disk to attach to this instance.
    deviceName String
    Name with which the attached disk will be accessible under /dev/disk/by-id/google-*
    diskEncryptionKeyRaw String
    A 256-bit [customer-supplied encryption key] (https://cloud.google.com/compute/docs/disks/customer-supplied-encryption), encoded in RFC 4648 base64 to encrypt this disk. Only one of kms_key_self_link and disk_encryption_key_raw may be set.
    diskEncryptionKeySha256 String
    The RFC 4648 base64 encoded SHA-256 hash of the [customer-supplied encryption key] (https://cloud.google.com/compute/docs/disks/customer-supplied-encryption) that protects this resource.
    kmsKeySelfLink String
    The self_link of the encryption key that is stored in Google Cloud KMS to encrypt this disk. Only one of kms_key_self_link and disk_encryption_key_raw may be set.
    mode String
    Either "READ_ONLY" or "READ_WRITE", defaults to "READ_WRITE" If you have a persistent disk with data that you want to share between multiple instances, detach it from any read-write instances and attach it to one or more instances in read-only mode.

    InstanceBootDisk, InstanceBootDiskArgs

    AutoDelete bool
    Whether the disk will be auto-deleted when the instance is deleted. Defaults to true.
    DeviceName string
    Name with which attached disk will be accessible. On the instance, this device will be /dev/disk/by-id/google-{{device_name}}.
    DiskEncryptionKeyRaw string
    A 256-bit [customer-supplied encryption key] (https://cloud.google.com/compute/docs/disks/customer-supplied-encryption), encoded in RFC 4648 base64 to encrypt this disk. Only one of kms_key_self_link and disk_encryption_key_raw may be set.
    DiskEncryptionKeySha256 string
    The RFC 4648 base64 encoded SHA-256 hash of the [customer-supplied encryption key] (https://cloud.google.com/compute/docs/disks/customer-supplied-encryption) that protects this resource.
    InitializeParams InstanceBootDiskInitializeParams
    Parameters for a new disk that will be created alongside the new instance. Either initialize_params or source must be set. Structure is documented below.
    KmsKeySelfLink string
    The self_link of the encryption key that is stored in Google Cloud KMS to encrypt this disk. Only one of kms_key_self_link and disk_encryption_key_raw may be set.
    Mode string
    The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If not specified, the default is to attach the disk in READ_WRITE mode.
    Source string
    The name or self_link of the existing disk (such as those managed by gcp.compute.Disk) or disk image. To create an instance from a snapshot, first create a gcp.compute.Disk from a snapshot and reference it here.
    AutoDelete bool
    Whether the disk will be auto-deleted when the instance is deleted. Defaults to true.
    DeviceName string
    Name with which attached disk will be accessible. On the instance, this device will be /dev/disk/by-id/google-{{device_name}}.
    DiskEncryptionKeyRaw string
    A 256-bit [customer-supplied encryption key] (https://cloud.google.com/compute/docs/disks/customer-supplied-encryption), encoded in RFC 4648 base64 to encrypt this disk. Only one of kms_key_self_link and disk_encryption_key_raw may be set.
    DiskEncryptionKeySha256 string
    The RFC 4648 base64 encoded SHA-256 hash of the [customer-supplied encryption key] (https://cloud.google.com/compute/docs/disks/customer-supplied-encryption) that protects this resource.
    InitializeParams InstanceBootDiskInitializeParams
    Parameters for a new disk that will be created alongside the new instance. Either initialize_params or source must be set. Structure is documented below.
    KmsKeySelfLink string
    The self_link of the encryption key that is stored in Google Cloud KMS to encrypt this disk. Only one of kms_key_self_link and disk_encryption_key_raw may be set.
    Mode string
    The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If not specified, the default is to attach the disk in READ_WRITE mode.
    Source string
    The name or self_link of the existing disk (such as those managed by gcp.compute.Disk) or disk image. To create an instance from a snapshot, first create a gcp.compute.Disk from a snapshot and reference it here.
    autoDelete Boolean
    Whether the disk will be auto-deleted when the instance is deleted. Defaults to true.
    deviceName String
    Name with which attached disk will be accessible. On the instance, this device will be /dev/disk/by-id/google-{{device_name}}.
    diskEncryptionKeyRaw String
    A 256-bit [customer-supplied encryption key] (https://cloud.google.com/compute/docs/disks/customer-supplied-encryption), encoded in RFC 4648 base64 to encrypt this disk. Only one of kms_key_self_link and disk_encryption_key_raw may be set.
    diskEncryptionKeySha256 String
    The RFC 4648 base64 encoded SHA-256 hash of the [customer-supplied encryption key] (https://cloud.google.com/compute/docs/disks/customer-supplied-encryption) that protects this resource.
    initializeParams InstanceBootDiskInitializeParams
    Parameters for a new disk that will be created alongside the new instance. Either initialize_params or source must be set. Structure is documented below.
    kmsKeySelfLink String
    The self_link of the encryption key that is stored in Google Cloud KMS to encrypt this disk. Only one of kms_key_self_link and disk_encryption_key_raw may be set.
    mode String
    The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If not specified, the default is to attach the disk in READ_WRITE mode.
    source String
    The name or self_link of the existing disk (such as those managed by gcp.compute.Disk) or disk image. To create an instance from a snapshot, first create a gcp.compute.Disk from a snapshot and reference it here.
    autoDelete boolean
    Whether the disk will be auto-deleted when the instance is deleted. Defaults to true.
    deviceName string
    Name with which attached disk will be accessible. On the instance, this device will be /dev/disk/by-id/google-{{device_name}}.
    diskEncryptionKeyRaw string
    A 256-bit [customer-supplied encryption key] (https://cloud.google.com/compute/docs/disks/customer-supplied-encryption), encoded in RFC 4648 base64 to encrypt this disk. Only one of kms_key_self_link and disk_encryption_key_raw may be set.
    diskEncryptionKeySha256 string
    The RFC 4648 base64 encoded SHA-256 hash of the [customer-supplied encryption key] (https://cloud.google.com/compute/docs/disks/customer-supplied-encryption) that protects this resource.
    initializeParams InstanceBootDiskInitializeParams
    Parameters for a new disk that will be created alongside the new instance. Either initialize_params or source must be set. Structure is documented below.
    kmsKeySelfLink string
    The self_link of the encryption key that is stored in Google Cloud KMS to encrypt this disk. Only one of kms_key_self_link and disk_encryption_key_raw may be set.
    mode string
    The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If not specified, the default is to attach the disk in READ_WRITE mode.
    source string
    The name or self_link of the existing disk (such as those managed by gcp.compute.Disk) or disk image. To create an instance from a snapshot, first create a gcp.compute.Disk from a snapshot and reference it here.
    auto_delete bool
    Whether the disk will be auto-deleted when the instance is deleted. Defaults to true.
    device_name str
    Name with which attached disk will be accessible. On the instance, this device will be /dev/disk/by-id/google-{{device_name}}.
    disk_encryption_key_raw str
    A 256-bit [customer-supplied encryption key] (https://cloud.google.com/compute/docs/disks/customer-supplied-encryption), encoded in RFC 4648 base64 to encrypt this disk. Only one of kms_key_self_link and disk_encryption_key_raw may be set.
    disk_encryption_key_sha256 str
    The RFC 4648 base64 encoded SHA-256 hash of the [customer-supplied encryption key] (https://cloud.google.com/compute/docs/disks/customer-supplied-encryption) that protects this resource.
    initialize_params InstanceBootDiskInitializeParams
    Parameters for a new disk that will be created alongside the new instance. Either initialize_params or source must be set. Structure is documented below.
    kms_key_self_link str
    The self_link of the encryption key that is stored in Google Cloud KMS to encrypt this disk. Only one of kms_key_self_link and disk_encryption_key_raw may be set.
    mode str
    The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If not specified, the default is to attach the disk in READ_WRITE mode.
    source str
    The name or self_link of the existing disk (such as those managed by gcp.compute.Disk) or disk image. To create an instance from a snapshot, first create a gcp.compute.Disk from a snapshot and reference it here.
    autoDelete Boolean
    Whether the disk will be auto-deleted when the instance is deleted. Defaults to true.
    deviceName String
    Name with which attached disk will be accessible. On the instance, this device will be /dev/disk/by-id/google-{{device_name}}.
    diskEncryptionKeyRaw String
    A 256-bit [customer-supplied encryption key] (https://cloud.google.com/compute/docs/disks/customer-supplied-encryption), encoded in RFC 4648 base64 to encrypt this disk. Only one of kms_key_self_link and disk_encryption_key_raw may be set.
    diskEncryptionKeySha256 String
    The RFC 4648 base64 encoded SHA-256 hash of the [customer-supplied encryption key] (https://cloud.google.com/compute/docs/disks/customer-supplied-encryption) that protects this resource.
    initializeParams Property Map
    Parameters for a new disk that will be created alongside the new instance. Either initialize_params or source must be set. Structure is documented below.
    kmsKeySelfLink String
    The self_link of the encryption key that is stored in Google Cloud KMS to encrypt this disk. Only one of kms_key_self_link and disk_encryption_key_raw may be set.
    mode String
    The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If not specified, the default is to attach the disk in READ_WRITE mode.
    source String
    The name or self_link of the existing disk (such as those managed by gcp.compute.Disk) or disk image. To create an instance from a snapshot, first create a gcp.compute.Disk from a snapshot and reference it here.

    InstanceBootDiskInitializeParams, InstanceBootDiskInitializeParamsArgs

    EnableConfidentialCompute bool
    Whether this disk is using confidential compute mode. Note: Only supported on hyperdisk skus, disk_encryption_key is required when setting to true.
    Image string
    The image from which to initialize this disk. This can be one of: the image's self_link, projects/{project}/global/images/{image}, projects/{project}/global/images/family/{family}, global/images/{image}, global/images/family/{family}, family/{family}, {project}/{family}, {project}/{image}, {family}, or {image}. If referred by family, the images names must include the family name. If they don't, use the gcp.compute.Image data source. For instance, the image centos-6-v20180104 includes its family name centos-6. These images can be referred by family name here.
    Labels Dictionary<string, object>
    A set of key/value label pairs assigned to the disk. This field is only applicable for persistent disks.
    ProvisionedIops int
    Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle. For more details,see the Hyperdisk documentation. Note: Updating currently is only supported for hyperdisk skus via disk update api/gcloud without the need to delete and recreate the disk, hyperdisk allows for an update of IOPS every 4 hours. To update your hyperdisk more frequently, you'll need to manually delete and recreate it.
    ProvisionedThroughput int
    Indicates how much throughput to provision for the disk. This sets the number of throughput mb per second that the disk can handle. For more details,see the Hyperdisk documentation. Note: Updating currently is only supported for hyperdisk skus via disk update api/gcloud without the need to delete and recreate the disk, hyperdisk allows for an update of throughput every 4 hours. To update your hyperdisk more frequently, you'll need to manually delete and recreate it.
    ResourceManagerTags Dictionary<string, object>
    A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT & PATCH) when empty.
    Size int
    The size of the image in gigabytes. If not specified, it will inherit the size of its base image.
    Type string
    The GCE disk type. Such as pd-standard, pd-balanced or pd-ssd.
    EnableConfidentialCompute bool
    Whether this disk is using confidential compute mode. Note: Only supported on hyperdisk skus, disk_encryption_key is required when setting to true.
    Image string
    The image from which to initialize this disk. This can be one of: the image's self_link, projects/{project}/global/images/{image}, projects/{project}/global/images/family/{family}, global/images/{image}, global/images/family/{family}, family/{family}, {project}/{family}, {project}/{image}, {family}, or {image}. If referred by family, the images names must include the family name. If they don't, use the gcp.compute.Image data source. For instance, the image centos-6-v20180104 includes its family name centos-6. These images can be referred by family name here.
    Labels map[string]interface{}
    A set of key/value label pairs assigned to the disk. This field is only applicable for persistent disks.
    ProvisionedIops int
    Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle. For more details,see the Hyperdisk documentation. Note: Updating currently is only supported for hyperdisk skus via disk update api/gcloud without the need to delete and recreate the disk, hyperdisk allows for an update of IOPS every 4 hours. To update your hyperdisk more frequently, you'll need to manually delete and recreate it.
    ProvisionedThroughput int
    Indicates how much throughput to provision for the disk. This sets the number of throughput mb per second that the disk can handle. For more details,see the Hyperdisk documentation. Note: Updating currently is only supported for hyperdisk skus via disk update api/gcloud without the need to delete and recreate the disk, hyperdisk allows for an update of throughput every 4 hours. To update your hyperdisk more frequently, you'll need to manually delete and recreate it.
    ResourceManagerTags map[string]interface{}
    A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT & PATCH) when empty.
    Size int
    The size of the image in gigabytes. If not specified, it will inherit the size of its base image.
    Type string
    The GCE disk type. Such as pd-standard, pd-balanced or pd-ssd.
    enableConfidentialCompute Boolean
    Whether this disk is using confidential compute mode. Note: Only supported on hyperdisk skus, disk_encryption_key is required when setting to true.
    image String
    The image from which to initialize this disk. This can be one of: the image's self_link, projects/{project}/global/images/{image}, projects/{project}/global/images/family/{family}, global/images/{image}, global/images/family/{family}, family/{family}, {project}/{family}, {project}/{image}, {family}, or {image}. If referred by family, the images names must include the family name. If they don't, use the gcp.compute.Image data source. For instance, the image centos-6-v20180104 includes its family name centos-6. These images can be referred by family name here.
    labels Map<String,Object>
    A set of key/value label pairs assigned to the disk. This field is only applicable for persistent disks.
    provisionedIops Integer
    Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle. For more details,see the Hyperdisk documentation. Note: Updating currently is only supported for hyperdisk skus via disk update api/gcloud without the need to delete and recreate the disk, hyperdisk allows for an update of IOPS every 4 hours. To update your hyperdisk more frequently, you'll need to manually delete and recreate it.
    provisionedThroughput Integer
    Indicates how much throughput to provision for the disk. This sets the number of throughput mb per second that the disk can handle. For more details,see the Hyperdisk documentation. Note: Updating currently is only supported for hyperdisk skus via disk update api/gcloud without the need to delete and recreate the disk, hyperdisk allows for an update of throughput every 4 hours. To update your hyperdisk more frequently, you'll need to manually delete and recreate it.
    resourceManagerTags Map<String,Object>
    A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT & PATCH) when empty.
    size Integer
    The size of the image in gigabytes. If not specified, it will inherit the size of its base image.
    type String
    The GCE disk type. Such as pd-standard, pd-balanced or pd-ssd.
    enableConfidentialCompute boolean
    Whether this disk is using confidential compute mode. Note: Only supported on hyperdisk skus, disk_encryption_key is required when setting to true.
    image string
    The image from which to initialize this disk. This can be one of: the image's self_link, projects/{project}/global/images/{image}, projects/{project}/global/images/family/{family}, global/images/{image}, global/images/family/{family}, family/{family}, {project}/{family}, {project}/{image}, {family}, or {image}. If referred by family, the images names must include the family name. If they don't, use the gcp.compute.Image data source. For instance, the image centos-6-v20180104 includes its family name centos-6. These images can be referred by family name here.
    labels {[key: string]: any}
    A set of key/value label pairs assigned to the disk. This field is only applicable for persistent disks.
    provisionedIops number
    Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle. For more details,see the Hyperdisk documentation. Note: Updating currently is only supported for hyperdisk skus via disk update api/gcloud without the need to delete and recreate the disk, hyperdisk allows for an update of IOPS every 4 hours. To update your hyperdisk more frequently, you'll need to manually delete and recreate it.
    provisionedThroughput number
    Indicates how much throughput to provision for the disk. This sets the number of throughput mb per second that the disk can handle. For more details,see the Hyperdisk documentation. Note: Updating currently is only supported for hyperdisk skus via disk update api/gcloud without the need to delete and recreate the disk, hyperdisk allows for an update of throughput every 4 hours. To update your hyperdisk more frequently, you'll need to manually delete and recreate it.
    resourceManagerTags {[key: string]: any}
    A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT & PATCH) when empty.
    size number
    The size of the image in gigabytes. If not specified, it will inherit the size of its base image.
    type string
    The GCE disk type. Such as pd-standard, pd-balanced or pd-ssd.
    enable_confidential_compute bool
    Whether this disk is using confidential compute mode. Note: Only supported on hyperdisk skus, disk_encryption_key is required when setting to true.
    image str
    The image from which to initialize this disk. This can be one of: the image's self_link, projects/{project}/global/images/{image}, projects/{project}/global/images/family/{family}, global/images/{image}, global/images/family/{family}, family/{family}, {project}/{family}, {project}/{image}, {family}, or {image}. If referred by family, the images names must include the family name. If they don't, use the gcp.compute.Image data source. For instance, the image centos-6-v20180104 includes its family name centos-6. These images can be referred by family name here.
    labels Mapping[str, Any]
    A set of key/value label pairs assigned to the disk. This field is only applicable for persistent disks.
    provisioned_iops int
    Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle. For more details,see the Hyperdisk documentation. Note: Updating currently is only supported for hyperdisk skus via disk update api/gcloud without the need to delete and recreate the disk, hyperdisk allows for an update of IOPS every 4 hours. To update your hyperdisk more frequently, you'll need to manually delete and recreate it.
    provisioned_throughput int
    Indicates how much throughput to provision for the disk. This sets the number of throughput mb per second that the disk can handle. For more details,see the Hyperdisk documentation. Note: Updating currently is only supported for hyperdisk skus via disk update api/gcloud without the need to delete and recreate the disk, hyperdisk allows for an update of throughput every 4 hours. To update your hyperdisk more frequently, you'll need to manually delete and recreate it.
    resource_manager_tags Mapping[str, Any]
    A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT & PATCH) when empty.
    size int
    The size of the image in gigabytes. If not specified, it will inherit the size of its base image.
    type str
    The GCE disk type. Such as pd-standard, pd-balanced or pd-ssd.
    enableConfidentialCompute Boolean
    Whether this disk is using confidential compute mode. Note: Only supported on hyperdisk skus, disk_encryption_key is required when setting to true.
    image String
    The image from which to initialize this disk. This can be one of: the image's self_link, projects/{project}/global/images/{image}, projects/{project}/global/images/family/{family}, global/images/{image}, global/images/family/{family}, family/{family}, {project}/{family}, {project}/{image}, {family}, or {image}. If referred by family, the images names must include the family name. If they don't, use the gcp.compute.Image data source. For instance, the image centos-6-v20180104 includes its family name centos-6. These images can be referred by family name here.
    labels Map<Any>
    A set of key/value label pairs assigned to the disk. This field is only applicable for persistent disks.
    provisionedIops Number
    Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle. For more details,see the Hyperdisk documentation. Note: Updating currently is only supported for hyperdisk skus via disk update api/gcloud without the need to delete and recreate the disk, hyperdisk allows for an update of IOPS every 4 hours. To update your hyperdisk more frequently, you'll need to manually delete and recreate it.
    provisionedThroughput Number
    Indicates how much throughput to provision for the disk. This sets the number of throughput mb per second that the disk can handle. For more details,see the Hyperdisk documentation. Note: Updating currently is only supported for hyperdisk skus via disk update api/gcloud without the need to delete and recreate the disk, hyperdisk allows for an update of throughput every 4 hours. To update your hyperdisk more frequently, you'll need to manually delete and recreate it.
    resourceManagerTags Map<Any>
    A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT & PATCH) when empty.
    size Number
    The size of the image in gigabytes. If not specified, it will inherit the size of its base image.
    type String
    The GCE disk type. Such as pd-standard, pd-balanced or pd-ssd.

    InstanceConfidentialInstanceConfig, InstanceConfidentialInstanceConfigArgs

    ConfidentialInstanceType string
    Defines the confidential computing technology the instance uses. SEV is an AMD feature. One of the following values: SEV, SEV_SNP. on_host_maintenance has to be set to TERMINATE or this will fail to create the VM. If SEV_SNP, currently min_cpu_platform has to be set to "AMD Milan" or this will fail to create the VM.
    EnableConfidentialCompute bool
    Defines whether the instance should have confidential compute enabled with AMD SEV. on_host_maintenance has to be set to TERMINATE or this will fail to create the VM.
    ConfidentialInstanceType string
    Defines the confidential computing technology the instance uses. SEV is an AMD feature. One of the following values: SEV, SEV_SNP. on_host_maintenance has to be set to TERMINATE or this will fail to create the VM. If SEV_SNP, currently min_cpu_platform has to be set to "AMD Milan" or this will fail to create the VM.
    EnableConfidentialCompute bool
    Defines whether the instance should have confidential compute enabled with AMD SEV. on_host_maintenance has to be set to TERMINATE or this will fail to create the VM.
    confidentialInstanceType String
    Defines the confidential computing technology the instance uses. SEV is an AMD feature. One of the following values: SEV, SEV_SNP. on_host_maintenance has to be set to TERMINATE or this will fail to create the VM. If SEV_SNP, currently min_cpu_platform has to be set to "AMD Milan" or this will fail to create the VM.
    enableConfidentialCompute Boolean
    Defines whether the instance should have confidential compute enabled with AMD SEV. on_host_maintenance has to be set to TERMINATE or this will fail to create the VM.
    confidentialInstanceType string
    Defines the confidential computing technology the instance uses. SEV is an AMD feature. One of the following values: SEV, SEV_SNP. on_host_maintenance has to be set to TERMINATE or this will fail to create the VM. If SEV_SNP, currently min_cpu_platform has to be set to "AMD Milan" or this will fail to create the VM.
    enableConfidentialCompute boolean
    Defines whether the instance should have confidential compute enabled with AMD SEV. on_host_maintenance has to be set to TERMINATE or this will fail to create the VM.
    confidential_instance_type str
    Defines the confidential computing technology the instance uses. SEV is an AMD feature. One of the following values: SEV, SEV_SNP. on_host_maintenance has to be set to TERMINATE or this will fail to create the VM. If SEV_SNP, currently min_cpu_platform has to be set to "AMD Milan" or this will fail to create the VM.
    enable_confidential_compute bool
    Defines whether the instance should have confidential compute enabled with AMD SEV. on_host_maintenance has to be set to TERMINATE or this will fail to create the VM.
    confidentialInstanceType String
    Defines the confidential computing technology the instance uses. SEV is an AMD feature. One of the following values: SEV, SEV_SNP. on_host_maintenance has to be set to TERMINATE or this will fail to create the VM. If SEV_SNP, currently min_cpu_platform has to be set to "AMD Milan" or this will fail to create the VM.
    enableConfidentialCompute Boolean
    Defines whether the instance should have confidential compute enabled with AMD SEV. on_host_maintenance has to be set to TERMINATE or this will fail to create the VM.

    InstanceGuestAccelerator, InstanceGuestAcceleratorArgs

    Count int
    The number of the guest accelerator cards exposed to this instance.
    Type string
    The accelerator type resource to expose to this instance. E.g. nvidia-tesla-k80.
    Count int
    The number of the guest accelerator cards exposed to this instance.
    Type string
    The accelerator type resource to expose to this instance. E.g. nvidia-tesla-k80.
    count Integer
    The number of the guest accelerator cards exposed to this instance.
    type String
    The accelerator type resource to expose to this instance. E.g. nvidia-tesla-k80.
    count number
    The number of the guest accelerator cards exposed to this instance.
    type string
    The accelerator type resource to expose to this instance. E.g. nvidia-tesla-k80.
    count int
    The number of the guest accelerator cards exposed to this instance.
    type str
    The accelerator type resource to expose to this instance. E.g. nvidia-tesla-k80.
    count Number
    The number of the guest accelerator cards exposed to this instance.
    type String
    The accelerator type resource to expose to this instance. E.g. nvidia-tesla-k80.

    InstanceNetworkInterface, InstanceNetworkInterfaceArgs

    AccessConfigs List<InstanceNetworkInterfaceAccessConfig>
    Access configurations, i.e. IPs via which this instance can be accessed via the Internet.
    AliasIpRanges List<InstanceNetworkInterfaceAliasIpRange>
    An array of alias IP ranges for this network interface. Can only be specified for network interfaces on subnet-mode networks. Structure documented below.
    InternalIpv6PrefixLength int
    The prefix length of the primary internal IPv6 range.
    Ipv6AccessConfigs List<InstanceNetworkInterfaceIpv6AccessConfig>
    An array of IPv6 access configurations for this interface. Currently, only one IPv6 access config, DIRECT_IPV6, is supported. If there is no ipv6AccessConfig specified, then this instance will have no external IPv6 Internet access. Structure documented below.
    Ipv6AccessType string
    One of EXTERNAL, INTERNAL to indicate whether the IP can be accessed from the Internet. This field is always inherited from its subnetwork.
    Ipv6Address string
    An IPv6 internal network address for this network interface. If not specified, Google Cloud will automatically assign an internal IPv6 address from the instance's subnetwork.
    Name string
    A unique name for the resource, required by GCE. Changing this forces a new resource to be created.
    Network string
    The name or self_link of the network to attach this interface to. Either network or subnetwork must be provided. If network isn't provided it will be inferred from the subnetwork.
    NetworkAttachment string
    The URL of the network attachment that this interface should connect to in the following format: projects/{projectNumber}/regions/{region_name}/networkAttachments/{network_attachment_name}.
    NetworkIp string
    The private IP address to assign to the instance. If empty, the address will be automatically assigned.
    NicType string
    The type of vNIC to be used on this interface. Possible values: GVNIC, VIRTIO_NET.
    QueueCount int
    The networking queue count that's specified by users for the network interface. Both Rx and Tx queues will be set to this number. It will be empty if not specified.
    SecurityPolicy string
    A full or partial URL to a security policy to add to this instance. If this field is set to an empty string it will remove the associated security policy.
    StackType string
    The stack type for this network interface to identify whether the IPv6 feature is enabled or not. Values are IPV4_IPV6 or IPV4_ONLY. If not specified, IPV4_ONLY will be used.
    Subnetwork string
    The name or self_link of the subnetwork to attach this interface to. Either network or subnetwork must be provided. If network isn't provided it will be inferred from the subnetwork. The subnetwork must exist in the same region this instance will be created in. If the network resource is in legacy mode, do not specify this field. If the network is in auto subnet mode, specifying the subnetwork is optional. If the network is in custom subnet mode, specifying the subnetwork is required.
    SubnetworkProject string
    The project in which the subnetwork belongs. If the subnetwork is a self_link, this field is ignored in favor of the project defined in the subnetwork self_link. If the subnetwork is a name and this field is not provided, the provider project is used.
    AccessConfigs []InstanceNetworkInterfaceAccessConfig
    Access configurations, i.e. IPs via which this instance can be accessed via the Internet.
    AliasIpRanges []InstanceNetworkInterfaceAliasIpRange
    An array of alias IP ranges for this network interface. Can only be specified for network interfaces on subnet-mode networks. Structure documented below.
    InternalIpv6PrefixLength int
    The prefix length of the primary internal IPv6 range.
    Ipv6AccessConfigs []InstanceNetworkInterfaceIpv6AccessConfig
    An array of IPv6 access configurations for this interface. Currently, only one IPv6 access config, DIRECT_IPV6, is supported. If there is no ipv6AccessConfig specified, then this instance will have no external IPv6 Internet access. Structure documented below.
    Ipv6AccessType string
    One of EXTERNAL, INTERNAL to indicate whether the IP can be accessed from the Internet. This field is always inherited from its subnetwork.
    Ipv6Address string
    An IPv6 internal network address for this network interface. If not specified, Google Cloud will automatically assign an internal IPv6 address from the instance's subnetwork.
    Name string
    A unique name for the resource, required by GCE. Changing this forces a new resource to be created.
    Network string
    The name or self_link of the network to attach this interface to. Either network or subnetwork must be provided. If network isn't provided it will be inferred from the subnetwork.
    NetworkAttachment string
    The URL of the network attachment that this interface should connect to in the following format: projects/{projectNumber}/regions/{region_name}/networkAttachments/{network_attachment_name}.
    NetworkIp string
    The private IP address to assign to the instance. If empty, the address will be automatically assigned.
    NicType string
    The type of vNIC to be used on this interface. Possible values: GVNIC, VIRTIO_NET.
    QueueCount int
    The networking queue count that's specified by users for the network interface. Both Rx and Tx queues will be set to this number. It will be empty if not specified.
    SecurityPolicy string
    A full or partial URL to a security policy to add to this instance. If this field is set to an empty string it will remove the associated security policy.
    StackType string
    The stack type for this network interface to identify whether the IPv6 feature is enabled or not. Values are IPV4_IPV6 or IPV4_ONLY. If not specified, IPV4_ONLY will be used.
    Subnetwork string
    The name or self_link of the subnetwork to attach this interface to. Either network or subnetwork must be provided. If network isn't provided it will be inferred from the subnetwork. The subnetwork must exist in the same region this instance will be created in. If the network resource is in legacy mode, do not specify this field. If the network is in auto subnet mode, specifying the subnetwork is optional. If the network is in custom subnet mode, specifying the subnetwork is required.
    SubnetworkProject string
    The project in which the subnetwork belongs. If the subnetwork is a self_link, this field is ignored in favor of the project defined in the subnetwork self_link. If the subnetwork is a name and this field is not provided, the provider project is used.
    accessConfigs List<InstanceNetworkInterfaceAccessConfig>
    Access configurations, i.e. IPs via which this instance can be accessed via the Internet.
    aliasIpRanges List<InstanceNetworkInterfaceAliasIpRange>
    An array of alias IP ranges for this network interface. Can only be specified for network interfaces on subnet-mode networks. Structure documented below.
    internalIpv6PrefixLength Integer
    The prefix length of the primary internal IPv6 range.
    ipv6AccessConfigs List<InstanceNetworkInterfaceIpv6AccessConfig>
    An array of IPv6 access configurations for this interface. Currently, only one IPv6 access config, DIRECT_IPV6, is supported. If there is no ipv6AccessConfig specified, then this instance will have no external IPv6 Internet access. Structure documented below.
    ipv6AccessType String
    One of EXTERNAL, INTERNAL to indicate whether the IP can be accessed from the Internet. This field is always inherited from its subnetwork.
    ipv6Address String
    An IPv6 internal network address for this network interface. If not specified, Google Cloud will automatically assign an internal IPv6 address from the instance's subnetwork.
    name String
    A unique name for the resource, required by GCE. Changing this forces a new resource to be created.
    network String
    The name or self_link of the network to attach this interface to. Either network or subnetwork must be provided. If network isn't provided it will be inferred from the subnetwork.
    networkAttachment String
    The URL of the network attachment that this interface should connect to in the following format: projects/{projectNumber}/regions/{region_name}/networkAttachments/{network_attachment_name}.
    networkIp String
    The private IP address to assign to the instance. If empty, the address will be automatically assigned.
    nicType String
    The type of vNIC to be used on this interface. Possible values: GVNIC, VIRTIO_NET.
    queueCount Integer
    The networking queue count that's specified by users for the network interface. Both Rx and Tx queues will be set to this number. It will be empty if not specified.
    securityPolicy String
    A full or partial URL to a security policy to add to this instance. If this field is set to an empty string it will remove the associated security policy.
    stackType String
    The stack type for this network interface to identify whether the IPv6 feature is enabled or not. Values are IPV4_IPV6 or IPV4_ONLY. If not specified, IPV4_ONLY will be used.
    subnetwork String
    The name or self_link of the subnetwork to attach this interface to. Either network or subnetwork must be provided. If network isn't provided it will be inferred from the subnetwork. The subnetwork must exist in the same region this instance will be created in. If the network resource is in legacy mode, do not specify this field. If the network is in auto subnet mode, specifying the subnetwork is optional. If the network is in custom subnet mode, specifying the subnetwork is required.
    subnetworkProject String
    The project in which the subnetwork belongs. If the subnetwork is a self_link, this field is ignored in favor of the project defined in the subnetwork self_link. If the subnetwork is a name and this field is not provided, the provider project is used.
    accessConfigs InstanceNetworkInterfaceAccessConfig[]
    Access configurations, i.e. IPs via which this instance can be accessed via the Internet.
    aliasIpRanges InstanceNetworkInterfaceAliasIpRange[]
    An array of alias IP ranges for this network interface. Can only be specified for network interfaces on subnet-mode networks. Structure documented below.
    internalIpv6PrefixLength number
    The prefix length of the primary internal IPv6 range.
    ipv6AccessConfigs InstanceNetworkInterfaceIpv6AccessConfig[]
    An array of IPv6 access configurations for this interface. Currently, only one IPv6 access config, DIRECT_IPV6, is supported. If there is no ipv6AccessConfig specified, then this instance will have no external IPv6 Internet access. Structure documented below.
    ipv6AccessType string
    One of EXTERNAL, INTERNAL to indicate whether the IP can be accessed from the Internet. This field is always inherited from its subnetwork.
    ipv6Address string
    An IPv6 internal network address for this network interface. If not specified, Google Cloud will automatically assign an internal IPv6 address from the instance's subnetwork.
    name string
    A unique name for the resource, required by GCE. Changing this forces a new resource to be created.
    network string
    The name or self_link of the network to attach this interface to. Either network or subnetwork must be provided. If network isn't provided it will be inferred from the subnetwork.
    networkAttachment string
    The URL of the network attachment that this interface should connect to in the following format: projects/{projectNumber}/regions/{region_name}/networkAttachments/{network_attachment_name}.
    networkIp string
    The private IP address to assign to the instance. If empty, the address will be automatically assigned.
    nicType string
    The type of vNIC to be used on this interface. Possible values: GVNIC, VIRTIO_NET.
    queueCount number
    The networking queue count that's specified by users for the network interface. Both Rx and Tx queues will be set to this number. It will be empty if not specified.
    securityPolicy string
    A full or partial URL to a security policy to add to this instance. If this field is set to an empty string it will remove the associated security policy.
    stackType string
    The stack type for this network interface to identify whether the IPv6 feature is enabled or not. Values are IPV4_IPV6 or IPV4_ONLY. If not specified, IPV4_ONLY will be used.
    subnetwork string
    The name or self_link of the subnetwork to attach this interface to. Either network or subnetwork must be provided. If network isn't provided it will be inferred from the subnetwork. The subnetwork must exist in the same region this instance will be created in. If the network resource is in legacy mode, do not specify this field. If the network is in auto subnet mode, specifying the subnetwork is optional. If the network is in custom subnet mode, specifying the subnetwork is required.
    subnetworkProject string
    The project in which the subnetwork belongs. If the subnetwork is a self_link, this field is ignored in favor of the project defined in the subnetwork self_link. If the subnetwork is a name and this field is not provided, the provider project is used.
    access_configs Sequence[InstanceNetworkInterfaceAccessConfig]
    Access configurations, i.e. IPs via which this instance can be accessed via the Internet.
    alias_ip_ranges Sequence[InstanceNetworkInterfaceAliasIpRange]
    An array of alias IP ranges for this network interface. Can only be specified for network interfaces on subnet-mode networks. Structure documented below.
    internal_ipv6_prefix_length int
    The prefix length of the primary internal IPv6 range.
    ipv6_access_configs Sequence[InstanceNetworkInterfaceIpv6AccessConfig]
    An array of IPv6 access configurations for this interface. Currently, only one IPv6 access config, DIRECT_IPV6, is supported. If there is no ipv6AccessConfig specified, then this instance will have no external IPv6 Internet access. Structure documented below.
    ipv6_access_type str
    One of EXTERNAL, INTERNAL to indicate whether the IP can be accessed from the Internet. This field is always inherited from its subnetwork.
    ipv6_address str
    An IPv6 internal network address for this network interface. If not specified, Google Cloud will automatically assign an internal IPv6 address from the instance's subnetwork.
    name str
    A unique name for the resource, required by GCE. Changing this forces a new resource to be created.
    network str
    The name or self_link of the network to attach this interface to. Either network or subnetwork must be provided. If network isn't provided it will be inferred from the subnetwork.
    network_attachment str
    The URL of the network attachment that this interface should connect to in the following format: projects/{projectNumber}/regions/{region_name}/networkAttachments/{network_attachment_name}.
    network_ip str
    The private IP address to assign to the instance. If empty, the address will be automatically assigned.
    nic_type str
    The type of vNIC to be used on this interface. Possible values: GVNIC, VIRTIO_NET.
    queue_count int
    The networking queue count that's specified by users for the network interface. Both Rx and Tx queues will be set to this number. It will be empty if not specified.
    security_policy str
    A full or partial URL to a security policy to add to this instance. If this field is set to an empty string it will remove the associated security policy.
    stack_type str
    The stack type for this network interface to identify whether the IPv6 feature is enabled or not. Values are IPV4_IPV6 or IPV4_ONLY. If not specified, IPV4_ONLY will be used.
    subnetwork str
    The name or self_link of the subnetwork to attach this interface to. Either network or subnetwork must be provided. If network isn't provided it will be inferred from the subnetwork. The subnetwork must exist in the same region this instance will be created in. If the network resource is in legacy mode, do not specify this field. If the network is in auto subnet mode, specifying the subnetwork is optional. If the network is in custom subnet mode, specifying the subnetwork is required.
    subnetwork_project str
    The project in which the subnetwork belongs. If the subnetwork is a self_link, this field is ignored in favor of the project defined in the subnetwork self_link. If the subnetwork is a name and this field is not provided, the provider project is used.
    accessConfigs List<Property Map>
    Access configurations, i.e. IPs via which this instance can be accessed via the Internet.
    aliasIpRanges List<Property Map>
    An array of alias IP ranges for this network interface. Can only be specified for network interfaces on subnet-mode networks. Structure documented below.
    internalIpv6PrefixLength Number
    The prefix length of the primary internal IPv6 range.
    ipv6AccessConfigs List<Property Map>
    An array of IPv6 access configurations for this interface. Currently, only one IPv6 access config, DIRECT_IPV6, is supported. If there is no ipv6AccessConfig specified, then this instance will have no external IPv6 Internet access. Structure documented below.
    ipv6AccessType String
    One of EXTERNAL, INTERNAL to indicate whether the IP can be accessed from the Internet. This field is always inherited from its subnetwork.
    ipv6Address String
    An IPv6 internal network address for this network interface. If not specified, Google Cloud will automatically assign an internal IPv6 address from the instance's subnetwork.
    name String
    A unique name for the resource, required by GCE. Changing this forces a new resource to be created.
    network String
    The name or self_link of the network to attach this interface to. Either network or subnetwork must be provided. If network isn't provided it will be inferred from the subnetwork.
    networkAttachment String
    The URL of the network attachment that this interface should connect to in the following format: projects/{projectNumber}/regions/{region_name}/networkAttachments/{network_attachment_name}.
    networkIp String
    The private IP address to assign to the instance. If empty, the address will be automatically assigned.
    nicType String
    The type of vNIC to be used on this interface. Possible values: GVNIC, VIRTIO_NET.
    queueCount Number
    The networking queue count that's specified by users for the network interface. Both Rx and Tx queues will be set to this number. It will be empty if not specified.
    securityPolicy String
    A full or partial URL to a security policy to add to this instance. If this field is set to an empty string it will remove the associated security policy.
    stackType String
    The stack type for this network interface to identify whether the IPv6 feature is enabled or not. Values are IPV4_IPV6 or IPV4_ONLY. If not specified, IPV4_ONLY will be used.
    subnetwork String
    The name or self_link of the subnetwork to attach this interface to. Either network or subnetwork must be provided. If network isn't provided it will be inferred from the subnetwork. The subnetwork must exist in the same region this instance will be created in. If the network resource is in legacy mode, do not specify this field. If the network is in auto subnet mode, specifying the subnetwork is optional. If the network is in custom subnet mode, specifying the subnetwork is required.
    subnetworkProject String
    The project in which the subnetwork belongs. If the subnetwork is a self_link, this field is ignored in favor of the project defined in the subnetwork self_link. If the subnetwork is a name and this field is not provided, the provider project is used.

    InstanceNetworkInterfaceAccessConfig, InstanceNetworkInterfaceAccessConfigArgs

    NatIp string
    The IP address that will be 1:1 mapped to the instance's network ip. If not given, one will be generated.
    NetworkTier string
    The service-level to be provided for IPv6 traffic when the subnet has an external subnet. Only PREMIUM or STANDARD tier is valid for IPv6.
    PublicPtrDomainName string
    The domain name to be used when creating DNSv6 records for the external IPv6 ranges..
    SecurityPolicy string
    A full or partial URL to a security policy to add to this instance. If this field is set to an empty string it will remove the associated security policy.
    NatIp string
    The IP address that will be 1:1 mapped to the instance's network ip. If not given, one will be generated.
    NetworkTier string
    The service-level to be provided for IPv6 traffic when the subnet has an external subnet. Only PREMIUM or STANDARD tier is valid for IPv6.
    PublicPtrDomainName string
    The domain name to be used when creating DNSv6 records for the external IPv6 ranges..
    SecurityPolicy string
    A full or partial URL to a security policy to add to this instance. If this field is set to an empty string it will remove the associated security policy.
    natIp String
    The IP address that will be 1:1 mapped to the instance's network ip. If not given, one will be generated.
    networkTier String
    The service-level to be provided for IPv6 traffic when the subnet has an external subnet. Only PREMIUM or STANDARD tier is valid for IPv6.
    publicPtrDomainName String
    The domain name to be used when creating DNSv6 records for the external IPv6 ranges..
    securityPolicy String
    A full or partial URL to a security policy to add to this instance. If this field is set to an empty string it will remove the associated security policy.
    natIp string
    The IP address that will be 1:1 mapped to the instance's network ip. If not given, one will be generated.
    networkTier string
    The service-level to be provided for IPv6 traffic when the subnet has an external subnet. Only PREMIUM or STANDARD tier is valid for IPv6.
    publicPtrDomainName string
    The domain name to be used when creating DNSv6 records for the external IPv6 ranges..
    securityPolicy string
    A full or partial URL to a security policy to add to this instance. If this field is set to an empty string it will remove the associated security policy.
    nat_ip str
    The IP address that will be 1:1 mapped to the instance's network ip. If not given, one will be generated.
    network_tier str
    The service-level to be provided for IPv6 traffic when the subnet has an external subnet. Only PREMIUM or STANDARD tier is valid for IPv6.
    public_ptr_domain_name str
    The domain name to be used when creating DNSv6 records for the external IPv6 ranges..
    security_policy str
    A full or partial URL to a security policy to add to this instance. If this field is set to an empty string it will remove the associated security policy.
    natIp String
    The IP address that will be 1:1 mapped to the instance's network ip. If not given, one will be generated.
    networkTier String
    The service-level to be provided for IPv6 traffic when the subnet has an external subnet. Only PREMIUM or STANDARD tier is valid for IPv6.
    publicPtrDomainName String
    The domain name to be used when creating DNSv6 records for the external IPv6 ranges..
    securityPolicy String
    A full or partial URL to a security policy to add to this instance. If this field is set to an empty string it will remove the associated security policy.

    InstanceNetworkInterfaceAliasIpRange, InstanceNetworkInterfaceAliasIpRangeArgs

    IpCidrRange string
    The IP CIDR range represented by this alias IP range. This IP CIDR range must belong to the specified subnetwork and cannot contain IP addresses reserved by system or used by other network interfaces. This range may be a single IP address (e.g. 10.2.3.4), a netmask (e.g. /24) or a CIDR format string (e.g. 10.1.2.0/24).
    SubnetworkRangeName string
    The subnetwork secondary range name specifying the secondary range from which to allocate the IP CIDR range for this alias IP range. If left unspecified, the primary range of the subnetwork will be used.
    IpCidrRange string
    The IP CIDR range represented by this alias IP range. This IP CIDR range must belong to the specified subnetwork and cannot contain IP addresses reserved by system or used by other network interfaces. This range may be a single IP address (e.g. 10.2.3.4), a netmask (e.g. /24) or a CIDR format string (e.g. 10.1.2.0/24).
    SubnetworkRangeName string
    The subnetwork secondary range name specifying the secondary range from which to allocate the IP CIDR range for this alias IP range. If left unspecified, the primary range of the subnetwork will be used.
    ipCidrRange String
    The IP CIDR range represented by this alias IP range. This IP CIDR range must belong to the specified subnetwork and cannot contain IP addresses reserved by system or used by other network interfaces. This range may be a single IP address (e.g. 10.2.3.4), a netmask (e.g. /24) or a CIDR format string (e.g. 10.1.2.0/24).
    subnetworkRangeName String
    The subnetwork secondary range name specifying the secondary range from which to allocate the IP CIDR range for this alias IP range. If left unspecified, the primary range of the subnetwork will be used.
    ipCidrRange string
    The IP CIDR range represented by this alias IP range. This IP CIDR range must belong to the specified subnetwork and cannot contain IP addresses reserved by system or used by other network interfaces. This range may be a single IP address (e.g. 10.2.3.4), a netmask (e.g. /24) or a CIDR format string (e.g. 10.1.2.0/24).
    subnetworkRangeName string
    The subnetwork secondary range name specifying the secondary range from which to allocate the IP CIDR range for this alias IP range. If left unspecified, the primary range of the subnetwork will be used.
    ip_cidr_range str
    The IP CIDR range represented by this alias IP range. This IP CIDR range must belong to the specified subnetwork and cannot contain IP addresses reserved by system or used by other network interfaces. This range may be a single IP address (e.g. 10.2.3.4), a netmask (e.g. /24) or a CIDR format string (e.g. 10.1.2.0/24).
    subnetwork_range_name str
    The subnetwork secondary range name specifying the secondary range from which to allocate the IP CIDR range for this alias IP range. If left unspecified, the primary range of the subnetwork will be used.
    ipCidrRange String
    The IP CIDR range represented by this alias IP range. This IP CIDR range must belong to the specified subnetwork and cannot contain IP addresses reserved by system or used by other network interfaces. This range may be a single IP address (e.g. 10.2.3.4), a netmask (e.g. /24) or a CIDR format string (e.g. 10.1.2.0/24).
    subnetworkRangeName String
    The subnetwork secondary range name specifying the secondary range from which to allocate the IP CIDR range for this alias IP range. If left unspecified, the primary range of the subnetwork will be used.

    InstanceNetworkInterfaceIpv6AccessConfig, InstanceNetworkInterfaceIpv6AccessConfigArgs

    NetworkTier string
    The service-level to be provided for IPv6 traffic when the subnet has an external subnet. Only PREMIUM or STANDARD tier is valid for IPv6.
    ExternalIpv6 string
    The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. To use a static external IP address, it must be unused and in the same region as the instance's zone. If not specified, Google Cloud will automatically assign an external IPv6 address from the instance's subnetwork.
    ExternalIpv6PrefixLength string
    The prefix length of the external IPv6 range.
    Name string
    A unique name for the resource, required by GCE. Changing this forces a new resource to be created.
    PublicPtrDomainName string
    The domain name to be used when creating DNSv6 records for the external IPv6 ranges..
    SecurityPolicy string
    A full or partial URL to a security policy to add to this instance. If this field is set to an empty string it will remove the associated security policy.
    NetworkTier string
    The service-level to be provided for IPv6 traffic when the subnet has an external subnet. Only PREMIUM or STANDARD tier is valid for IPv6.
    ExternalIpv6 string
    The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. To use a static external IP address, it must be unused and in the same region as the instance's zone. If not specified, Google Cloud will automatically assign an external IPv6 address from the instance's subnetwork.
    ExternalIpv6PrefixLength string
    The prefix length of the external IPv6 range.
    Name string
    A unique name for the resource, required by GCE. Changing this forces a new resource to be created.
    PublicPtrDomainName string
    The domain name to be used when creating DNSv6 records for the external IPv6 ranges..
    SecurityPolicy string
    A full or partial URL to a security policy to add to this instance. If this field is set to an empty string it will remove the associated security policy.
    networkTier String
    The service-level to be provided for IPv6 traffic when the subnet has an external subnet. Only PREMIUM or STANDARD tier is valid for IPv6.
    externalIpv6 String
    The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. To use a static external IP address, it must be unused and in the same region as the instance's zone. If not specified, Google Cloud will automatically assign an external IPv6 address from the instance's subnetwork.
    externalIpv6PrefixLength String
    The prefix length of the external IPv6 range.
    name String
    A unique name for the resource, required by GCE. Changing this forces a new resource to be created.
    publicPtrDomainName String
    The domain name to be used when creating DNSv6 records for the external IPv6 ranges..
    securityPolicy String
    A full or partial URL to a security policy to add to this instance. If this field is set to an empty string it will remove the associated security policy.
    networkTier string
    The service-level to be provided for IPv6 traffic when the subnet has an external subnet. Only PREMIUM or STANDARD tier is valid for IPv6.
    externalIpv6 string
    The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. To use a static external IP address, it must be unused and in the same region as the instance's zone. If not specified, Google Cloud will automatically assign an external IPv6 address from the instance's subnetwork.
    externalIpv6PrefixLength string
    The prefix length of the external IPv6 range.
    name string
    A unique name for the resource, required by GCE. Changing this forces a new resource to be created.
    publicPtrDomainName string
    The domain name to be used when creating DNSv6 records for the external IPv6 ranges..
    securityPolicy string
    A full or partial URL to a security policy to add to this instance. If this field is set to an empty string it will remove the associated security policy.
    network_tier str
    The service-level to be provided for IPv6 traffic when the subnet has an external subnet. Only PREMIUM or STANDARD tier is valid for IPv6.
    external_ipv6 str
    The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. To use a static external IP address, it must be unused and in the same region as the instance's zone. If not specified, Google Cloud will automatically assign an external IPv6 address from the instance's subnetwork.
    external_ipv6_prefix_length str
    The prefix length of the external IPv6 range.
    name str
    A unique name for the resource, required by GCE. Changing this forces a new resource to be created.
    public_ptr_domain_name str
    The domain name to be used when creating DNSv6 records for the external IPv6 ranges..
    security_policy str
    A full or partial URL to a security policy to add to this instance. If this field is set to an empty string it will remove the associated security policy.
    networkTier String
    The service-level to be provided for IPv6 traffic when the subnet has an external subnet. Only PREMIUM or STANDARD tier is valid for IPv6.
    externalIpv6 String
    The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. To use a static external IP address, it must be unused and in the same region as the instance's zone. If not specified, Google Cloud will automatically assign an external IPv6 address from the instance's subnetwork.
    externalIpv6PrefixLength String
    The prefix length of the external IPv6 range.
    name String
    A unique name for the resource, required by GCE. Changing this forces a new resource to be created.
    publicPtrDomainName String
    The domain name to be used when creating DNSv6 records for the external IPv6 ranges..
    securityPolicy String
    A full or partial URL to a security policy to add to this instance. If this field is set to an empty string it will remove the associated security policy.

    InstanceNetworkPerformanceConfig, InstanceNetworkPerformanceConfigArgs

    TotalEgressBandwidthTier string
    The egress bandwidth tier to enable. Possible values: TIER_1, DEFAULT
    TotalEgressBandwidthTier string
    The egress bandwidth tier to enable. Possible values: TIER_1, DEFAULT
    totalEgressBandwidthTier String
    The egress bandwidth tier to enable. Possible values: TIER_1, DEFAULT
    totalEgressBandwidthTier string
    The egress bandwidth tier to enable. Possible values: TIER_1, DEFAULT
    total_egress_bandwidth_tier str
    The egress bandwidth tier to enable. Possible values: TIER_1, DEFAULT
    totalEgressBandwidthTier String
    The egress bandwidth tier to enable. Possible values: TIER_1, DEFAULT

    InstanceParams, InstanceParamsArgs

    ResourceManagerTags Dictionary<string, object>
    A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT & PATCH) when empty.
    ResourceManagerTags map[string]interface{}
    A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT & PATCH) when empty.
    resourceManagerTags Map<String,Object>
    A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT & PATCH) when empty.
    resourceManagerTags {[key: string]: any}
    A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT & PATCH) when empty.
    resource_manager_tags Mapping[str, Any]
    A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT & PATCH) when empty.
    resourceManagerTags Map<Any>
    A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT & PATCH) when empty.

    InstanceReservationAffinity, InstanceReservationAffinityArgs

    Type string
    The type of reservation from which this instance can consume resources.
    SpecificReservation InstanceReservationAffinitySpecificReservation
    Specifies the label selector for the reservation to use.. Structure is documented below.
    Type string
    The type of reservation from which this instance can consume resources.
    SpecificReservation InstanceReservationAffinitySpecificReservation
    Specifies the label selector for the reservation to use.. Structure is documented below.
    type String
    The type of reservation from which this instance can consume resources.
    specificReservation InstanceReservationAffinitySpecificReservation
    Specifies the label selector for the reservation to use.. Structure is documented below.
    type string
    The type of reservation from which this instance can consume resources.
    specificReservation InstanceReservationAffinitySpecificReservation
    Specifies the label selector for the reservation to use.. Structure is documented below.
    type str
    The type of reservation from which this instance can consume resources.
    specific_reservation InstanceReservationAffinitySpecificReservation
    Specifies the label selector for the reservation to use.. Structure is documented below.
    type String
    The type of reservation from which this instance can consume resources.
    specificReservation Property Map
    Specifies the label selector for the reservation to use.. Structure is documented below.

    InstanceReservationAffinitySpecificReservation, InstanceReservationAffinitySpecificReservationArgs

    Key string
    Corresponds to the label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify compute.googleapis.com/reservation-name as the key and specify the name of your reservation as the only value.
    Values List<string>
    Corresponds to the label values of a reservation resource.
    Key string
    Corresponds to the label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify compute.googleapis.com/reservation-name as the key and specify the name of your reservation as the only value.
    Values []string
    Corresponds to the label values of a reservation resource.
    key String
    Corresponds to the label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify compute.googleapis.com/reservation-name as the key and specify the name of your reservation as the only value.
    values List<String>
    Corresponds to the label values of a reservation resource.
    key string
    Corresponds to the label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify compute.googleapis.com/reservation-name as the key and specify the name of your reservation as the only value.
    values string[]
    Corresponds to the label values of a reservation resource.
    key str
    Corresponds to the label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify compute.googleapis.com/reservation-name as the key and specify the name of your reservation as the only value.
    values Sequence[str]
    Corresponds to the label values of a reservation resource.
    key String
    Corresponds to the label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify compute.googleapis.com/reservation-name as the key and specify the name of your reservation as the only value.
    values List<String>
    Corresponds to the label values of a reservation resource.

    InstanceScheduling, InstanceSchedulingArgs

    AutomaticRestart bool
    Specifies if the instance should be restarted if it was terminated by Compute Engine (not a user). Defaults to true.
    InstanceTerminationAction string
    Describe the type of termination action for VM. Can be STOP or DELETE. Read more on here
    LocalSsdRecoveryTimeout InstanceSchedulingLocalSsdRecoveryTimeout
    Specifies the maximum amount of time a Local Ssd Vm should wait while recovery of the Local Ssd state is attempted. Its value should be in between 0 and 168 hours with hour granularity and the default value being 1 hour.
    MaintenanceInterval string
    Specifies the frequency of planned maintenance events. The accepted values are: PERIODIC.
    MaxRunDuration InstanceSchedulingMaxRunDuration
    The duration of the instance. Instance will run and be terminated after then, the termination action could be defined in instance_termination_action. Only support DELETE instance_termination_action at this point. Structure is documented below. The max_run_duration block supports:
    MinNodeCpus int
    The minimum number of virtual CPUs this instance will consume when running on a sole-tenant node.
    NodeAffinities List<InstanceSchedulingNodeAffinity>
    Specifies node affinities or anti-affinities to determine which sole-tenant nodes your instances and managed instance groups will use as host systems. Read more on sole-tenant node creation here. Structure documented below.
    OnHostMaintenance string
    Describes maintenance behavior for the instance. Can be MIGRATE or TERMINATE, for more info, read here.
    Preemptible bool
    Specifies if the instance is preemptible. If this field is set to true, then automatic_restart must be set to false. Defaults to false.
    ProvisioningModel string
    Describe the type of preemptible VM. This field accepts the value STANDARD or SPOT. If the value is STANDARD, there will be no discount. If this is set to SPOT, preemptible should be true and automatic_restart should be false. For more info about SPOT, read here
    AutomaticRestart bool
    Specifies if the instance should be restarted if it was terminated by Compute Engine (not a user). Defaults to true.
    InstanceTerminationAction string
    Describe the type of termination action for VM. Can be STOP or DELETE. Read more on here
    LocalSsdRecoveryTimeout InstanceSchedulingLocalSsdRecoveryTimeout
    Specifies the maximum amount of time a Local Ssd Vm should wait while recovery of the Local Ssd state is attempted. Its value should be in between 0 and 168 hours with hour granularity and the default value being 1 hour.
    MaintenanceInterval string
    Specifies the frequency of planned maintenance events. The accepted values are: PERIODIC.
    MaxRunDuration InstanceSchedulingMaxRunDuration
    The duration of the instance. Instance will run and be terminated after then, the termination action could be defined in instance_termination_action. Only support DELETE instance_termination_action at this point. Structure is documented below. The max_run_duration block supports:
    MinNodeCpus int
    The minimum number of virtual CPUs this instance will consume when running on a sole-tenant node.
    NodeAffinities []InstanceSchedulingNodeAffinity
    Specifies node affinities or anti-affinities to determine which sole-tenant nodes your instances and managed instance groups will use as host systems. Read more on sole-tenant node creation here. Structure documented below.
    OnHostMaintenance string
    Describes maintenance behavior for the instance. Can be MIGRATE or TERMINATE, for more info, read here.
    Preemptible bool
    Specifies if the instance is preemptible. If this field is set to true, then automatic_restart must be set to false. Defaults to false.
    ProvisioningModel string
    Describe the type of preemptible VM. This field accepts the value STANDARD or SPOT. If the value is STANDARD, there will be no discount. If this is set to SPOT, preemptible should be true and automatic_restart should be false. For more info about SPOT, read here
    automaticRestart Boolean
    Specifies if the instance should be restarted if it was terminated by Compute Engine (not a user). Defaults to true.
    instanceTerminationAction String
    Describe the type of termination action for VM. Can be STOP or DELETE. Read more on here
    localSsdRecoveryTimeout InstanceSchedulingLocalSsdRecoveryTimeout
    Specifies the maximum amount of time a Local Ssd Vm should wait while recovery of the Local Ssd state is attempted. Its value should be in between 0 and 168 hours with hour granularity and the default value being 1 hour.
    maintenanceInterval String
    Specifies the frequency of planned maintenance events. The accepted values are: PERIODIC.
    maxRunDuration InstanceSchedulingMaxRunDuration
    The duration of the instance. Instance will run and be terminated after then, the termination action could be defined in instance_termination_action. Only support DELETE instance_termination_action at this point. Structure is documented below. The max_run_duration block supports:
    minNodeCpus Integer
    The minimum number of virtual CPUs this instance will consume when running on a sole-tenant node.
    nodeAffinities List<InstanceSchedulingNodeAffinity>
    Specifies node affinities or anti-affinities to determine which sole-tenant nodes your instances and managed instance groups will use as host systems. Read more on sole-tenant node creation here. Structure documented below.
    onHostMaintenance String
    Describes maintenance behavior for the instance. Can be MIGRATE or TERMINATE, for more info, read here.
    preemptible Boolean
    Specifies if the instance is preemptible. If this field is set to true, then automatic_restart must be set to false. Defaults to false.
    provisioningModel String
    Describe the type of preemptible VM. This field accepts the value STANDARD or SPOT. If the value is STANDARD, there will be no discount. If this is set to SPOT, preemptible should be true and automatic_restart should be false. For more info about SPOT, read here
    automaticRestart boolean
    Specifies if the instance should be restarted if it was terminated by Compute Engine (not a user). Defaults to true.
    instanceTerminationAction string
    Describe the type of termination action for VM. Can be STOP or DELETE. Read more on here
    localSsdRecoveryTimeout InstanceSchedulingLocalSsdRecoveryTimeout
    Specifies the maximum amount of time a Local Ssd Vm should wait while recovery of the Local Ssd state is attempted. Its value should be in between 0 and 168 hours with hour granularity and the default value being 1 hour.
    maintenanceInterval string
    Specifies the frequency of planned maintenance events. The accepted values are: PERIODIC.
    maxRunDuration InstanceSchedulingMaxRunDuration
    The duration of the instance. Instance will run and be terminated after then, the termination action could be defined in instance_termination_action. Only support DELETE instance_termination_action at this point. Structure is documented below. The max_run_duration block supports:
    minNodeCpus number
    The minimum number of virtual CPUs this instance will consume when running on a sole-tenant node.
    nodeAffinities InstanceSchedulingNodeAffinity[]
    Specifies node affinities or anti-affinities to determine which sole-tenant nodes your instances and managed instance groups will use as host systems. Read more on sole-tenant node creation here. Structure documented below.
    onHostMaintenance string
    Describes maintenance behavior for the instance. Can be MIGRATE or TERMINATE, for more info, read here.
    preemptible boolean
    Specifies if the instance is preemptible. If this field is set to true, then automatic_restart must be set to false. Defaults to false.
    provisioningModel string
    Describe the type of preemptible VM. This field accepts the value STANDARD or SPOT. If the value is STANDARD, there will be no discount. If this is set to SPOT, preemptible should be true and automatic_restart should be false. For more info about SPOT, read here
    automatic_restart bool
    Specifies if the instance should be restarted if it was terminated by Compute Engine (not a user). Defaults to true.
    instance_termination_action str
    Describe the type of termination action for VM. Can be STOP or DELETE. Read more on here
    local_ssd_recovery_timeout InstanceSchedulingLocalSsdRecoveryTimeout
    Specifies the maximum amount of time a Local Ssd Vm should wait while recovery of the Local Ssd state is attempted. Its value should be in between 0 and 168 hours with hour granularity and the default value being 1 hour.
    maintenance_interval str
    Specifies the frequency of planned maintenance events. The accepted values are: PERIODIC.
    max_run_duration InstanceSchedulingMaxRunDuration
    The duration of the instance. Instance will run and be terminated after then, the termination action could be defined in instance_termination_action. Only support DELETE instance_termination_action at this point. Structure is documented below. The max_run_duration block supports:
    min_node_cpus int
    The minimum number of virtual CPUs this instance will consume when running on a sole-tenant node.
    node_affinities Sequence[InstanceSchedulingNodeAffinity]
    Specifies node affinities or anti-affinities to determine which sole-tenant nodes your instances and managed instance groups will use as host systems. Read more on sole-tenant node creation here. Structure documented below.
    on_host_maintenance str
    Describes maintenance behavior for the instance. Can be MIGRATE or TERMINATE, for more info, read here.
    preemptible bool
    Specifies if the instance is preemptible. If this field is set to true, then automatic_restart must be set to false. Defaults to false.
    provisioning_model str
    Describe the type of preemptible VM. This field accepts the value STANDARD or SPOT. If the value is STANDARD, there will be no discount. If this is set to SPOT, preemptible should be true and automatic_restart should be false. For more info about SPOT, read here
    automaticRestart Boolean
    Specifies if the instance should be restarted if it was terminated by Compute Engine (not a user). Defaults to true.
    instanceTerminationAction String
    Describe the type of termination action for VM. Can be STOP or DELETE. Read more on here
    localSsdRecoveryTimeout Property Map
    Specifies the maximum amount of time a Local Ssd Vm should wait while recovery of the Local Ssd state is attempted. Its value should be in between 0 and 168 hours with hour granularity and the default value being 1 hour.
    maintenanceInterval String
    Specifies the frequency of planned maintenance events. The accepted values are: PERIODIC.
    maxRunDuration Property Map
    The duration of the instance. Instance will run and be terminated after then, the termination action could be defined in instance_termination_action. Only support DELETE instance_termination_action at this point. Structure is documented below. The max_run_duration block supports:
    minNodeCpus Number
    The minimum number of virtual CPUs this instance will consume when running on a sole-tenant node.
    nodeAffinities List<Property Map>
    Specifies node affinities or anti-affinities to determine which sole-tenant nodes your instances and managed instance groups will use as host systems. Read more on sole-tenant node creation here. Structure documented below.
    onHostMaintenance String
    Describes maintenance behavior for the instance. Can be MIGRATE or TERMINATE, for more info, read here.
    preemptible Boolean
    Specifies if the instance is preemptible. If this field is set to true, then automatic_restart must be set to false. Defaults to false.
    provisioningModel String
    Describe the type of preemptible VM. This field accepts the value STANDARD or SPOT. If the value is STANDARD, there will be no discount. If this is set to SPOT, preemptible should be true and automatic_restart should be false. For more info about SPOT, read here

    InstanceSchedulingLocalSsdRecoveryTimeout, InstanceSchedulingLocalSsdRecoveryTimeoutArgs

    Seconds int
    Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years.
    Nanos int
    Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
    Seconds int
    Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years.
    Nanos int
    Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
    seconds Integer
    Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years.
    nanos Integer
    Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
    seconds number
    Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years.
    nanos number
    Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
    seconds int
    Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years.
    nanos int
    Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
    seconds Number
    Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years.
    nanos Number
    Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.

    InstanceSchedulingMaxRunDuration, InstanceSchedulingMaxRunDurationArgs

    Seconds int
    Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years.
    Nanos int
    Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
    Seconds int
    Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years.
    Nanos int
    Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
    seconds Integer
    Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years.
    nanos Integer
    Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
    seconds number
    Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years.
    nanos number
    Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
    seconds int
    Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years.
    nanos int
    Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
    seconds Number
    Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years.
    nanos Number
    Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.

    InstanceSchedulingNodeAffinity, InstanceSchedulingNodeAffinityArgs

    Key string
    The key for the node affinity label.
    Operator string
    The operator. Can be IN for node-affinities or NOT_IN for anti-affinities.
    Values List<string>
    The values for the node affinity label.
    Key string
    The key for the node affinity label.
    Operator string
    The operator. Can be IN for node-affinities or NOT_IN for anti-affinities.
    Values []string
    The values for the node affinity label.
    key String
    The key for the node affinity label.
    operator String
    The operator. Can be IN for node-affinities or NOT_IN for anti-affinities.
    values List<String>
    The values for the node affinity label.
    key string
    The key for the node affinity label.
    operator string
    The operator. Can be IN for node-affinities or NOT_IN for anti-affinities.
    values string[]
    The values for the node affinity label.
    key str
    The key for the node affinity label.
    operator str
    The operator. Can be IN for node-affinities or NOT_IN for anti-affinities.
    values Sequence[str]
    The values for the node affinity label.
    key String
    The key for the node affinity label.
    operator String
    The operator. Can be IN for node-affinities or NOT_IN for anti-affinities.
    values List<String>
    The values for the node affinity label.

    InstanceScratchDisk, InstanceScratchDiskArgs

    Interface string
    The disk interface to use for attaching this disk; either SCSI or NVME.
    DeviceName string
    Name with which the attached disk will be accessible under /dev/disk/by-id/google-*
    Size int
    The size of the image in gigabytes. If not specified, it will inherit the size of its base image.
    Interface string
    The disk interface to use for attaching this disk; either SCSI or NVME.
    DeviceName string
    Name with which the attached disk will be accessible under /dev/disk/by-id/google-*
    Size int
    The size of the image in gigabytes. If not specified, it will inherit the size of its base image.
    interface_ String
    The disk interface to use for attaching this disk; either SCSI or NVME.
    deviceName String
    Name with which the attached disk will be accessible under /dev/disk/by-id/google-*
    size Integer
    The size of the image in gigabytes. If not specified, it will inherit the size of its base image.
    interface string
    The disk interface to use for attaching this disk; either SCSI or NVME.
    deviceName string
    Name with which the attached disk will be accessible under /dev/disk/by-id/google-*
    size number
    The size of the image in gigabytes. If not specified, it will inherit the size of its base image.
    interface str
    The disk interface to use for attaching this disk; either SCSI or NVME.
    device_name str
    Name with which the attached disk will be accessible under /dev/disk/by-id/google-*
    size int
    The size of the image in gigabytes. If not specified, it will inherit the size of its base image.
    interface String
    The disk interface to use for attaching this disk; either SCSI or NVME.
    deviceName String
    Name with which the attached disk will be accessible under /dev/disk/by-id/google-*
    size Number
    The size of the image in gigabytes. If not specified, it will inherit the size of its base image.

    InstanceServiceAccount, InstanceServiceAccountArgs

    Scopes List<string>
    A list of service scopes. Both OAuth2 URLs and gcloud short names are supported. To allow full access to all Cloud APIs, use the cloud-platform scope. See a complete list of scopes here. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    Email string
    The service account e-mail address. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    Scopes []string
    A list of service scopes. Both OAuth2 URLs and gcloud short names are supported. To allow full access to all Cloud APIs, use the cloud-platform scope. See a complete list of scopes here. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    Email string
    The service account e-mail address. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    scopes List<String>
    A list of service scopes. Both OAuth2 URLs and gcloud short names are supported. To allow full access to all Cloud APIs, use the cloud-platform scope. See a complete list of scopes here. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    email String
    The service account e-mail address. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    scopes string[]
    A list of service scopes. Both OAuth2 URLs and gcloud short names are supported. To allow full access to all Cloud APIs, use the cloud-platform scope. See a complete list of scopes here. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    email string
    The service account e-mail address. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    scopes Sequence[str]
    A list of service scopes. Both OAuth2 URLs and gcloud short names are supported. To allow full access to all Cloud APIs, use the cloud-platform scope. See a complete list of scopes here. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    email str
    The service account e-mail address. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    scopes List<String>
    A list of service scopes. Both OAuth2 URLs and gcloud short names are supported. To allow full access to all Cloud APIs, use the cloud-platform scope. See a complete list of scopes here. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    email String
    The service account e-mail address. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.

    InstanceShieldedInstanceConfig, InstanceShieldedInstanceConfigArgs

    EnableIntegrityMonitoring bool
    • Compare the most recent boot measurements to the integrity policy baseline and return a pair of pass/fail results depending on whether they match or not. Defaults to true. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    EnableSecureBoot bool
    • Verify the digital signature of all boot components, and halt the boot process if signature verification fails. Defaults to false. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    EnableVtpm bool
    • Use a virtualized trusted platform module, which is a specialized computer chip you can use to encrypt objects like keys and certificates. Defaults to true. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    EnableIntegrityMonitoring bool
    • Compare the most recent boot measurements to the integrity policy baseline and return a pair of pass/fail results depending on whether they match or not. Defaults to true. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    EnableSecureBoot bool
    • Verify the digital signature of all boot components, and halt the boot process if signature verification fails. Defaults to false. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    EnableVtpm bool
    • Use a virtualized trusted platform module, which is a specialized computer chip you can use to encrypt objects like keys and certificates. Defaults to true. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    enableIntegrityMonitoring Boolean
    • Compare the most recent boot measurements to the integrity policy baseline and return a pair of pass/fail results depending on whether they match or not. Defaults to true. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    enableSecureBoot Boolean
    • Verify the digital signature of all boot components, and halt the boot process if signature verification fails. Defaults to false. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    enableVtpm Boolean
    • Use a virtualized trusted platform module, which is a specialized computer chip you can use to encrypt objects like keys and certificates. Defaults to true. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    enableIntegrityMonitoring boolean
    • Compare the most recent boot measurements to the integrity policy baseline and return a pair of pass/fail results depending on whether they match or not. Defaults to true. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    enableSecureBoot boolean
    • Verify the digital signature of all boot components, and halt the boot process if signature verification fails. Defaults to false. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    enableVtpm boolean
    • Use a virtualized trusted platform module, which is a specialized computer chip you can use to encrypt objects like keys and certificates. Defaults to true. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    enable_integrity_monitoring bool
    • Compare the most recent boot measurements to the integrity policy baseline and return a pair of pass/fail results depending on whether they match or not. Defaults to true. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    enable_secure_boot bool
    • Verify the digital signature of all boot components, and halt the boot process if signature verification fails. Defaults to false. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    enable_vtpm bool
    • Use a virtualized trusted platform module, which is a specialized computer chip you can use to encrypt objects like keys and certificates. Defaults to true. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    enableIntegrityMonitoring Boolean
    • Compare the most recent boot measurements to the integrity policy baseline and return a pair of pass/fail results depending on whether they match or not. Defaults to true. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    enableSecureBoot Boolean
    • Verify the digital signature of all boot components, and halt the boot process if signature verification fails. Defaults to false. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.
    enableVtpm Boolean
    • Use a virtualized trusted platform module, which is a specialized computer chip you can use to encrypt objects like keys and certificates. Defaults to true. Note: allow_stopping_for_update must be set to true or your instance must have a desired_status of TERMINATED in order to update this field.

    Import

    Instances can be imported using any of these accepted formats:

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

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

    • {{name}}

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

    $ pulumi import gcp:compute/instance:Instance default projects/{{project}}/zones/{{zone}}/instances/{{name}}
    
    $ pulumi import gcp:compute/instance:Instance default {{project}}/{{zone}}/{{name}}
    
    $ pulumi import gcp:compute/instance:Instance 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 v7.19.0 published on Thursday, Apr 18, 2024 by Pulumi