1. Packages
  2. Google Cloud (GCP) Classic
  3. API Docs
  4. compute
  5. Instance
Google Cloud Classic v6.67.0 published on Wednesday, Sep 27, 2023 by Pulumi

gcp.compute.Instance

Explore with Pulumi AI

gcp logo
Google Cloud Classic v6.67.0 published on Wednesday, Sep 27, 2023 by Pulumi

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

    Example Usage

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    
    return await Deployment.RunAsync(() => 
    {
        var defaultAccount = new Gcp.ServiceAccount.Account("defaultAccount", new()
        {
            AccountId = "service_account_id",
            DisplayName = "Service Account",
        });
    
        var defaultInstance = new Gcp.Compute.Instance("defaultInstance", new()
        {
            MachineType = "e2-medium",
            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 = "SCSI",
                },
            },
            NetworkInterfaces = new[]
            {
                new Gcp.Compute.Inputs.InstanceNetworkInterfaceArgs
                {
                    Network = "default",
                    AccessConfigs = new[]
                    {
                        null,
                    },
                },
            },
            Metadata = 
            {
                { "foo", "bar" },
            },
            MetadataStartupScript = "echo hi > /test.txt",
            ServiceAccount = new Gcp.Compute.Inputs.InstanceServiceAccountArgs
            {
                Email = defaultAccount.Email,
                Scopes = new[]
                {
                    "cloud-platform",
                },
            },
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/compute"
    	"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/serviceAccount"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		defaultAccount, err := serviceAccount.NewAccount(ctx, "defaultAccount", &serviceAccount.AccountArgs{
    			AccountId:   pulumi.String("service_account_id"),
    			DisplayName: pulumi.String("Service Account"),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = compute.NewInstance(ctx, "defaultInstance", &compute.InstanceArgs{
    			MachineType: pulumi.String("e2-medium"),
    			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.AnyMap{
    						"my_label": pulumi.Any("value"),
    					},
    				},
    			},
    			ScratchDisks: compute.InstanceScratchDiskArray{
    				&compute.InstanceScratchDiskArgs{
    					Interface: pulumi.String("SCSI"),
    				},
    			},
    			NetworkInterfaces: compute.InstanceNetworkInterfaceArray{
    				&compute.InstanceNetworkInterfaceArgs{
    					Network: pulumi.String("default"),
    					AccessConfigs: compute.InstanceNetworkInterfaceAccessConfigArray{
    						nil,
    					},
    				},
    			},
    			Metadata: pulumi.StringMap{
    				"foo": pulumi.String("bar"),
    			},
    			MetadataStartupScript: pulumi.String("echo hi > /test.txt"),
    			ServiceAccount: &compute.InstanceServiceAccountArgs{
    				Email: defaultAccount.Email,
    				Scopes: pulumi.StringArray{
    					pulumi.String("cloud-platform"),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    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.InstanceBootDiskArgs;
    import com.pulumi.gcp.compute.inputs.InstanceBootDiskInitializeParamsArgs;
    import com.pulumi.gcp.compute.inputs.InstanceScratchDiskArgs;
    import com.pulumi.gcp.compute.inputs.InstanceNetworkInterfaceArgs;
    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 defaultAccount = new Account("defaultAccount", AccountArgs.builder()        
                .accountId("service_account_id")
                .displayName("Service Account")
                .build());
    
            var defaultInstance = new Instance("defaultInstance", InstanceArgs.builder()        
                .machineType("e2-medium")
                .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_("SCSI")
                    .build())
                .networkInterfaces(InstanceNetworkInterfaceArgs.builder()
                    .network("default")
                    .accessConfigs()
                    .build())
                .metadata(Map.of("foo", "bar"))
                .metadataStartupScript("echo hi > /test.txt")
                .serviceAccount(InstanceServiceAccountArgs.builder()
                    .email(defaultAccount.email())
                    .scopes("cloud-platform")
                    .build())
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_gcp as gcp
    
    default_account = gcp.service_account.Account("defaultAccount",
        account_id="service_account_id",
        display_name="Service Account")
    default_instance = gcp.compute.Instance("defaultInstance",
        machine_type="e2-medium",
        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="SCSI",
        )],
        network_interfaces=[gcp.compute.InstanceNetworkInterfaceArgs(
            network="default",
            access_configs=[gcp.compute.InstanceNetworkInterfaceAccessConfigArgs()],
        )],
        metadata={
            "foo": "bar",
        },
        metadata_startup_script="echo hi > /test.txt",
        service_account=gcp.compute.InstanceServiceAccountArgs(
            email=default_account.email,
            scopes=["cloud-platform"],
        ))
    
    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const defaultAccount = new gcp.serviceaccount.Account("defaultAccount", {
        accountId: "service_account_id",
        displayName: "Service Account",
    });
    const defaultInstance = new gcp.compute.Instance("defaultInstance", {
        machineType: "e2-medium",
        zone: "us-central1-a",
        tags: [
            "foo",
            "bar",
        ],
        bootDisk: {
            initializeParams: {
                image: "debian-cloud/debian-11",
                labels: {
                    my_label: "value",
                },
            },
        },
        scratchDisks: [{
            "interface": "SCSI",
        }],
        networkInterfaces: [{
            network: "default",
            accessConfigs: [{}],
        }],
        metadata: {
            foo: "bar",
        },
        metadataStartupScript: "echo hi > /test.txt",
        serviceAccount: {
            email: defaultAccount.email,
            scopes: ["cloud-platform"],
        },
    });
    
    resources:
      defaultAccount:
        type: gcp:serviceAccount:Account
        properties:
          accountId: service_account_id
          displayName: Service Account
      defaultInstance:
        type: gcp:compute:Instance
        properties:
          machineType: e2-medium
          zone: us-central1-a
          tags:
            - foo
            - bar
          bootDisk:
            initializeParams:
              image: debian-cloud/debian-11
              labels:
                my_label: value
          # Local SSD disk
          scratchDisks:
            - interface: SCSI
          networkInterfaces:
            - network: default
              accessConfigs:
                - {}
          metadata:
            foo: bar
          metadataStartupScript: echo hi > /test.txt
          serviceAccount:
            email: ${defaultAccount.email}
            scopes:
              - cloud-platform
    

    Create Instance Resource

    new Instance(name: string, args: InstanceArgs, opts?: CustomResourceOptions);
    @overload
    def Instance(resource_name: 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,
                 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,
                 machine_type: Optional[str] = None,
                 metadata: Optional[Mapping[str, 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,
                 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)
    @overload
    def Instance(resource_name: str,
                 args: InstanceArgs,
                 opts: Optional[ResourceOptions] = 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.
    
    
    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.

    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][custom-vm-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][extended-custom-vm-type]. 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.

    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

    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][custom-vm-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][extended-custom-vm-type]. 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.

    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

    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][custom-vm-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][extended-custom-vm-type]. 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.

    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

    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][custom-vm-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][extended-custom-vm-type]. 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.

    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

    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][custom-vm-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][extended-custom-vm-type]. 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.

    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

    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][custom-vm-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][extended-custom-vm-type]. 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.

    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

    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.`,

    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.

    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.`,

    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.

    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.`,

    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.

    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.`,

    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.

    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.`,

    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.

    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.`,

    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.

    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,
            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,
            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".

    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.

    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][custom-vm-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][extended-custom-vm-type]. 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

    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.

    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".

    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.

    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][custom-vm-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][extended-custom-vm-type]. 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

    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.

    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".

    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.

    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][custom-vm-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][extended-custom-vm-type]. 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

    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.

    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".

    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.

    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][custom-vm-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][extended-custom-vm-type]. 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

    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.

    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".

    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.

    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][custom-vm-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][extended-custom-vm-type]. 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

    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.

    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".

    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.

    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][custom-vm-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][extended-custom-vm-type]. 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

    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.

    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
    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
    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
    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
    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
    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
    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
    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
    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
    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
    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
    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
    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

    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.

    ResourceManagerTags Dictionary<string, object>
    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.

    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.

    ResourceManagerTags map[string]interface{}
    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.

    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.

    resourceManagerTags Map<String,Object>
    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.

    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.

    resourceManagerTags {[key: string]: any}
    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.

    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.

    resource_manager_tags Mapping[str, Any]
    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.

    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.

    resourceManagerTags Map<Any>
    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

    EnableConfidentialCompute bool

    Defines whether the instance should have confidential compute enabled. on_host_maintenance has to be set to TERMINATE or this will fail to create the VM.

    EnableConfidentialCompute bool

    Defines whether the instance should have confidential compute enabled. on_host_maintenance has to be set to TERMINATE or this will fail to create the VM.

    enableConfidentialCompute Boolean

    Defines whether the instance should have confidential compute enabled. on_host_maintenance has to be set to TERMINATE or this will fail to create the VM.

    enableConfidentialCompute boolean

    Defines whether the instance should have confidential compute enabled. on_host_maintenance has to be set to TERMINATE or this will fail to create the VM.

    enable_confidential_compute bool

    Defines whether the instance should have confidential compute enabled. on_host_maintenance has to be set to TERMINATE or this will fail to create the VM.

    enableConfidentialCompute Boolean

    Defines whether the instance should have confidential compute enabled. 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 GCE disk type. Such as pd-standard, pd-balanced or pd-ssd.

    Count int

    The number of the guest accelerator cards exposed to this instance.

    Type string

    The GCE disk type. Such as pd-standard, pd-balanced or pd-ssd.

    count Integer

    The number of the guest accelerator cards exposed to this instance.

    type String

    The GCE disk type. Such as pd-standard, pd-balanced or pd-ssd.

    count number

    The number of the guest accelerator cards exposed to this instance.

    type string

    The GCE disk type. Such as pd-standard, pd-balanced or pd-ssd.

    count int

    The number of the guest accelerator cards exposed to this instance.

    type str

    The GCE disk type. Such as pd-standard, pd-balanced or pd-ssd.

    count Number

    The number of the guest accelerator cards exposed to this instance.

    type String

    The GCE disk type. Such as pd-standard, pd-balanced or pd-ssd.

    InstanceNetworkInterface, InstanceNetworkInterfaceArgs

    AccessConfigs List<InstanceNetworkInterfaceAccessConfig>
    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
    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
    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.

    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.

    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
    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
    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
    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.

    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.

    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>
    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
    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
    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.

    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.

    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[]
    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
    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
    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.

    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.

    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]
    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
    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
    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_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.

    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>
    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
    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
    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.

    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.

    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..

    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..

    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..

    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..

    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..

    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..

    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 [networking tier][network-tier] used for configuring this instance. This field can take the following values: PREMIUM, FIXED_STANDARD or STANDARD. If this field is not specified, it is assumed to be PREMIUM.

    The ipv6_access_config block supports:

    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 DNS domain name for the public PTR record. To set this field on an instance, you must be verified as the owner of the domain. See the docs for how to become verified as a domain owner.

    records for the external IPv6 ranges..

    NetworkTier string

    The [networking tier][network-tier] used for configuring this instance. This field can take the following values: PREMIUM, FIXED_STANDARD or STANDARD. If this field is not specified, it is assumed to be PREMIUM.

    The ipv6_access_config block supports:

    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 DNS domain name for the public PTR record. To set this field on an instance, you must be verified as the owner of the domain. See the docs for how to become verified as a domain owner.

    records for the external IPv6 ranges..

    networkTier String

    The [networking tier][network-tier] used for configuring this instance. This field can take the following values: PREMIUM, FIXED_STANDARD or STANDARD. If this field is not specified, it is assumed to be PREMIUM.

    The ipv6_access_config block supports:

    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 DNS domain name for the public PTR record. To set this field on an instance, you must be verified as the owner of the domain. See the docs for how to become verified as a domain owner.

    records for the external IPv6 ranges..

    networkTier string

    The [networking tier][network-tier] used for configuring this instance. This field can take the following values: PREMIUM, FIXED_STANDARD or STANDARD. If this field is not specified, it is assumed to be PREMIUM.

    The ipv6_access_config block supports:

    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 DNS domain name for the public PTR record. To set this field on an instance, you must be verified as the owner of the domain. See the docs for how to become verified as a domain owner.

    records for the external IPv6 ranges..

    network_tier str

    The [networking tier][network-tier] used for configuring this instance. This field can take the following values: PREMIUM, FIXED_STANDARD or STANDARD. If this field is not specified, it is assumed to be PREMIUM.

    The ipv6_access_config block supports:

    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 DNS domain name for the public PTR record. To set this field on an instance, you must be verified as the owner of the domain. See the docs for how to become verified as a domain owner.

    records for the external IPv6 ranges..

    networkTier String

    The [networking tier][network-tier] used for configuring this instance. This field can take the following values: PREMIUM, FIXED_STANDARD or STANDARD. If this field is not specified, it is assumed to be PREMIUM.

    The ipv6_access_config block supports:

    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 DNS domain name for the public PTR record. To set this field on an instance, you must be verified as the owner of the domain. See the docs for how to become verified as a domain owner.

    records for the external IPv6 ranges..

    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>
    ResourceManagerTags map[string]interface{}
    resourceManagerTags Map<String,Object>
    resourceManagerTags {[key: string]: any}
    resource_manager_tags Mapping[str, Any]

    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
    MaintenanceInterval string
    MaxRunDuration InstanceSchedulingMaxRunDuration
    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
    MaintenanceInterval string
    MaxRunDuration InstanceSchedulingMaxRunDuration
    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
    maintenanceInterval String
    maxRunDuration InstanceSchedulingMaxRunDuration
    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
    maintenanceInterval string
    maxRunDuration InstanceSchedulingMaxRunDuration
    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
    maintenance_interval str
    max_run_duration InstanceSchedulingMaxRunDuration
    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
    maintenanceInterval String
    maxRunDuration Property Map
    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.

    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.

    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.

    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.

    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.

    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.

    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.

    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.

    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.

    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.

    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.

    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.

    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.

    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.

    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.

    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.

    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.

    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.

    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.

    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.

    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.

    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.

    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.

    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.

    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.

    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.

    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.

    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.

    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.

    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.

    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

     $ 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}}
    

    [custom-vm-types]https://cloud.google.com/dataproc/docs/concepts/compute/custom-machine-types [network-tier]https://cloud.google.com/network-tiers/docs/overview [extended-custom-vm-type]https://cloud.google.com/compute/docs/instances/creating-instance-with-custom-machine-type#extendedmemory

    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 v6.67.0 published on Wednesday, Sep 27, 2023 by Pulumi