1. Packages
  2. Google Cloud (GCP) Classic
  3. API Docs
  4. compute
  5. InstanceTemplate
Google Cloud v8.26.0 published on Thursday, Apr 10, 2025 by Pulumi

gcp.compute.InstanceTemplate

Explore with Pulumi AI

Note: Global instance templates can be used in any region. To lower the impact of outages outside your region and gain data residency within your region, use google_compute_region_instance_template.

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

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";

const _default = new gcp.serviceaccount.Account("default", {
    accountId: "service-account-id",
    displayName: "Service Account",
});
const myImage = gcp.compute.getImage({
    family: "debian-11",
    project: "debian-cloud",
});
const foobar = new gcp.compute.Disk("foobar", {
    name: "existing-disk",
    image: myImage.then(myImage => myImage.selfLink),
    size: 10,
    type: "pd-ssd",
    zone: "us-central1-a",
});
const dailyBackup = new gcp.compute.ResourcePolicy("daily_backup", {
    name: "every-day-4am",
    region: "us-central1",
    snapshotSchedulePolicy: {
        schedule: {
            dailySchedule: {
                daysInCycle: 1,
                startTime: "04:00",
            },
        },
    },
});
const defaultInstanceTemplate = new gcp.compute.InstanceTemplate("default", {
    name: "appserver-template",
    description: "This template is used to create app server instances.",
    tags: [
        "foo",
        "bar",
    ],
    labels: {
        environment: "dev",
    },
    instanceDescription: "description assigned to instances",
    machineType: "e2-medium",
    canIpForward: false,
    scheduling: {
        automaticRestart: true,
        onHostMaintenance: "MIGRATE",
    },
    disks: [
        {
            sourceImage: "debian-cloud/debian-11",
            autoDelete: true,
            boot: true,
            resourcePolicies: dailyBackup.id,
        },
        {
            source: foobar.name,
            autoDelete: false,
            boot: false,
        },
    ],
    networkInterfaces: [{
        network: "default",
    }],
    metadata: {
        foo: "bar",
    },
    serviceAccount: {
        email: _default.email,
        scopes: ["cloud-platform"],
    },
});
Copy
import pulumi
import pulumi_gcp as gcp

default = gcp.serviceaccount.Account("default",
    account_id="service-account-id",
    display_name="Service Account")
my_image = gcp.compute.get_image(family="debian-11",
    project="debian-cloud")
foobar = gcp.compute.Disk("foobar",
    name="existing-disk",
    image=my_image.self_link,
    size=10,
    type="pd-ssd",
    zone="us-central1-a")
daily_backup = gcp.compute.ResourcePolicy("daily_backup",
    name="every-day-4am",
    region="us-central1",
    snapshot_schedule_policy={
        "schedule": {
            "daily_schedule": {
                "days_in_cycle": 1,
                "start_time": "04:00",
            },
        },
    })
default_instance_template = gcp.compute.InstanceTemplate("default",
    name="appserver-template",
    description="This template is used to create app server instances.",
    tags=[
        "foo",
        "bar",
    ],
    labels={
        "environment": "dev",
    },
    instance_description="description assigned to instances",
    machine_type="e2-medium",
    can_ip_forward=False,
    scheduling={
        "automatic_restart": True,
        "on_host_maintenance": "MIGRATE",
    },
    disks=[
        {
            "source_image": "debian-cloud/debian-11",
            "auto_delete": True,
            "boot": True,
            "resource_policies": daily_backup.id,
        },
        {
            "source": foobar.name,
            "auto_delete": False,
            "boot": False,
        },
    ],
    network_interfaces=[{
        "network": "default",
    }],
    metadata={
        "foo": "bar",
    },
    service_account={
        "email": default.email,
        "scopes": ["cloud-platform"],
    })
Copy
package main

import (
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/compute"
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/serviceaccount"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_default, err := serviceaccount.NewAccount(ctx, "default", &serviceaccount.AccountArgs{
			AccountId:   pulumi.String("service-account-id"),
			DisplayName: pulumi.String("Service Account"),
		})
		if err != nil {
			return err
		}
		myImage, err := compute.LookupImage(ctx, &compute.LookupImageArgs{
			Family:  pulumi.StringRef("debian-11"),
			Project: pulumi.StringRef("debian-cloud"),
		}, nil)
		if err != nil {
			return err
		}
		foobar, err := compute.NewDisk(ctx, "foobar", &compute.DiskArgs{
			Name:  pulumi.String("existing-disk"),
			Image: pulumi.String(myImage.SelfLink),
			Size:  pulumi.Int(10),
			Type:  pulumi.String("pd-ssd"),
			Zone:  pulumi.String("us-central1-a"),
		})
		if err != nil {
			return err
		}
		dailyBackup, err := compute.NewResourcePolicy(ctx, "daily_backup", &compute.ResourcePolicyArgs{
			Name:   pulumi.String("every-day-4am"),
			Region: pulumi.String("us-central1"),
			SnapshotSchedulePolicy: &compute.ResourcePolicySnapshotSchedulePolicyArgs{
				Schedule: &compute.ResourcePolicySnapshotSchedulePolicyScheduleArgs{
					DailySchedule: &compute.ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs{
						DaysInCycle: pulumi.Int(1),
						StartTime:   pulumi.String("04:00"),
					},
				},
			},
		})
		if err != nil {
			return err
		}
		_, err = compute.NewInstanceTemplate(ctx, "default", &compute.InstanceTemplateArgs{
			Name:        pulumi.String("appserver-template"),
			Description: pulumi.String("This template is used to create app server instances."),
			Tags: pulumi.StringArray{
				pulumi.String("foo"),
				pulumi.String("bar"),
			},
			Labels: pulumi.StringMap{
				"environment": pulumi.String("dev"),
			},
			InstanceDescription: pulumi.String("description assigned to instances"),
			MachineType:         pulumi.String("e2-medium"),
			CanIpForward:        pulumi.Bool(false),
			Scheduling: &compute.InstanceTemplateSchedulingArgs{
				AutomaticRestart:  pulumi.Bool(true),
				OnHostMaintenance: pulumi.String("MIGRATE"),
			},
			Disks: compute.InstanceTemplateDiskArray{
				&compute.InstanceTemplateDiskArgs{
					SourceImage:      pulumi.String("debian-cloud/debian-11"),
					AutoDelete:       pulumi.Bool(true),
					Boot:             pulumi.Bool(true),
					ResourcePolicies: dailyBackup.ID(),
				},
				&compute.InstanceTemplateDiskArgs{
					Source:     foobar.Name,
					AutoDelete: pulumi.Bool(false),
					Boot:       pulumi.Bool(false),
				},
			},
			NetworkInterfaces: compute.InstanceTemplateNetworkInterfaceArray{
				&compute.InstanceTemplateNetworkInterfaceArgs{
					Network: pulumi.String("default"),
				},
			},
			Metadata: pulumi.StringMap{
				"foo": pulumi.String("bar"),
			},
			ServiceAccount: &compute.InstanceTemplateServiceAccountArgs{
				Email: _default.Email,
				Scopes: pulumi.StringArray{
					pulumi.String("cloud-platform"),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;

return await Deployment.RunAsync(() => 
{
    var @default = new Gcp.ServiceAccount.Account("default", new()
    {
        AccountId = "service-account-id",
        DisplayName = "Service Account",
    });

    var myImage = Gcp.Compute.GetImage.Invoke(new()
    {
        Family = "debian-11",
        Project = "debian-cloud",
    });

    var foobar = new Gcp.Compute.Disk("foobar", new()
    {
        Name = "existing-disk",
        Image = myImage.Apply(getImageResult => getImageResult.SelfLink),
        Size = 10,
        Type = "pd-ssd",
        Zone = "us-central1-a",
    });

    var dailyBackup = new Gcp.Compute.ResourcePolicy("daily_backup", new()
    {
        Name = "every-day-4am",
        Region = "us-central1",
        SnapshotSchedulePolicy = new Gcp.Compute.Inputs.ResourcePolicySnapshotSchedulePolicyArgs
        {
            Schedule = new Gcp.Compute.Inputs.ResourcePolicySnapshotSchedulePolicyScheduleArgs
            {
                DailySchedule = new Gcp.Compute.Inputs.ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs
                {
                    DaysInCycle = 1,
                    StartTime = "04:00",
                },
            },
        },
    });

    var defaultInstanceTemplate = new Gcp.Compute.InstanceTemplate("default", new()
    {
        Name = "appserver-template",
        Description = "This template is used to create app server instances.",
        Tags = new[]
        {
            "foo",
            "bar",
        },
        Labels = 
        {
            { "environment", "dev" },
        },
        InstanceDescription = "description assigned to instances",
        MachineType = "e2-medium",
        CanIpForward = false,
        Scheduling = new Gcp.Compute.Inputs.InstanceTemplateSchedulingArgs
        {
            AutomaticRestart = true,
            OnHostMaintenance = "MIGRATE",
        },
        Disks = new[]
        {
            new Gcp.Compute.Inputs.InstanceTemplateDiskArgs
            {
                SourceImage = "debian-cloud/debian-11",
                AutoDelete = true,
                Boot = true,
                ResourcePolicies = dailyBackup.Id,
            },
            new Gcp.Compute.Inputs.InstanceTemplateDiskArgs
            {
                Source = foobar.Name,
                AutoDelete = false,
                Boot = false,
            },
        },
        NetworkInterfaces = new[]
        {
            new Gcp.Compute.Inputs.InstanceTemplateNetworkInterfaceArgs
            {
                Network = "default",
            },
        },
        Metadata = 
        {
            { "foo", "bar" },
        },
        ServiceAccount = new Gcp.Compute.Inputs.InstanceTemplateServiceAccountArgs
        {
            Email = @default.Email,
            Scopes = new[]
            {
                "cloud-platform",
            },
        },
    });

});
Copy
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.ComputeFunctions;
import com.pulumi.gcp.compute.inputs.GetImageArgs;
import com.pulumi.gcp.compute.Disk;
import com.pulumi.gcp.compute.DiskArgs;
import com.pulumi.gcp.compute.ResourcePolicy;
import com.pulumi.gcp.compute.ResourcePolicyArgs;
import com.pulumi.gcp.compute.inputs.ResourcePolicySnapshotSchedulePolicyArgs;
import com.pulumi.gcp.compute.inputs.ResourcePolicySnapshotSchedulePolicyScheduleArgs;
import com.pulumi.gcp.compute.inputs.ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs;
import com.pulumi.gcp.compute.InstanceTemplate;
import com.pulumi.gcp.compute.InstanceTemplateArgs;
import com.pulumi.gcp.compute.inputs.InstanceTemplateSchedulingArgs;
import com.pulumi.gcp.compute.inputs.InstanceTemplateDiskArgs;
import com.pulumi.gcp.compute.inputs.InstanceTemplateNetworkInterfaceArgs;
import com.pulumi.gcp.compute.inputs.InstanceTemplateServiceAccountArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var default_ = new Account("default", AccountArgs.builder()
            .accountId("service-account-id")
            .displayName("Service Account")
            .build());

        final var myImage = ComputeFunctions.getImage(GetImageArgs.builder()
            .family("debian-11")
            .project("debian-cloud")
            .build());

        var foobar = new Disk("foobar", DiskArgs.builder()
            .name("existing-disk")
            .image(myImage.selfLink())
            .size(10)
            .type("pd-ssd")
            .zone("us-central1-a")
            .build());

        var dailyBackup = new ResourcePolicy("dailyBackup", ResourcePolicyArgs.builder()
            .name("every-day-4am")
            .region("us-central1")
            .snapshotSchedulePolicy(ResourcePolicySnapshotSchedulePolicyArgs.builder()
                .schedule(ResourcePolicySnapshotSchedulePolicyScheduleArgs.builder()
                    .dailySchedule(ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs.builder()
                        .daysInCycle(1)
                        .startTime("04:00")
                        .build())
                    .build())
                .build())
            .build());

        var defaultInstanceTemplate = new InstanceTemplate("defaultInstanceTemplate", InstanceTemplateArgs.builder()
            .name("appserver-template")
            .description("This template is used to create app server instances.")
            .tags(            
                "foo",
                "bar")
            .labels(Map.of("environment", "dev"))
            .instanceDescription("description assigned to instances")
            .machineType("e2-medium")
            .canIpForward(false)
            .scheduling(InstanceTemplateSchedulingArgs.builder()
                .automaticRestart(true)
                .onHostMaintenance("MIGRATE")
                .build())
            .disks(            
                InstanceTemplateDiskArgs.builder()
                    .sourceImage("debian-cloud/debian-11")
                    .autoDelete(true)
                    .boot(true)
                    .resourcePolicies(dailyBackup.id())
                    .build(),
                InstanceTemplateDiskArgs.builder()
                    .source(foobar.name())
                    .autoDelete(false)
                    .boot(false)
                    .build())
            .networkInterfaces(InstanceTemplateNetworkInterfaceArgs.builder()
                .network("default")
                .build())
            .metadata(Map.of("foo", "bar"))
            .serviceAccount(InstanceTemplateServiceAccountArgs.builder()
                .email(default_.email())
                .scopes("cloud-platform")
                .build())
            .build());

    }
}
Copy
resources:
  default:
    type: gcp:serviceaccount:Account
    properties:
      accountId: service-account-id
      displayName: Service Account
  defaultInstanceTemplate:
    type: gcp:compute:InstanceTemplate
    name: default
    properties:
      name: appserver-template
      description: This template is used to create app server instances.
      tags:
        - foo
        - bar
      labels:
        environment: dev
      instanceDescription: description assigned to instances
      machineType: e2-medium
      canIpForward: false
      scheduling:
        automaticRestart: true
        onHostMaintenance: MIGRATE
      disks:
        - sourceImage: debian-cloud/debian-11
          autoDelete: true
          boot: true
          resourcePolicies: ${dailyBackup.id}
        - source: ${foobar.name}
          autoDelete: false
          boot: false
      networkInterfaces:
        - network: default
      metadata:
        foo: bar
      serviceAccount:
        email: ${default.email}
        scopes:
          - cloud-platform
  foobar:
    type: gcp:compute:Disk
    properties:
      name: existing-disk
      image: ${myImage.selfLink}
      size: 10
      type: pd-ssd
      zone: us-central1-a
  dailyBackup:
    type: gcp:compute:ResourcePolicy
    name: daily_backup
    properties:
      name: every-day-4am
      region: us-central1
      snapshotSchedulePolicy:
        schedule:
          dailySchedule:
            daysInCycle: 1
            startTime: 04:00
variables:
  myImage:
    fn::invoke:
      function: gcp:compute:getImage
      arguments:
        family: debian-11
        project: debian-cloud
Copy

Automatic Envoy Deployment

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";

const _default = gcp.compute.getDefaultServiceAccount({});
const myImage = gcp.compute.getImage({
    family: "debian-11",
    project: "debian-cloud",
});
const foobar = new gcp.compute.InstanceTemplate("foobar", {
    name: "appserver-template",
    machineType: "e2-medium",
    canIpForward: false,
    tags: [
        "foo",
        "bar",
    ],
    disks: [{
        sourceImage: myImage.then(myImage => myImage.selfLink),
        autoDelete: true,
        boot: true,
    }],
    networkInterfaces: [{
        network: "default",
    }],
    scheduling: {
        preemptible: false,
        automaticRestart: true,
    },
    metadata: {
        "gce-software-declaration": `{
  "softwareRecipes": [{
    "name": "install-gce-service-proxy-agent",
    "desired_state": "INSTALLED",
    "installSteps": [{
      "scriptRun": {
        "script": "#! /bin/bash\\nZONE=(curl --silent http://metadata.google.internal/computeMetadata/v1/instance/zone -H Metadata-Flavor:Google | cut -d/ -f4 )\\nexport SERVICE_PROXY_AGENT_DIRECTORY=(mktemp -d)\\nsudo gsutil cp   gs://gce-service-proxy-"ZONE"/service-proxy-agent/releases/service-proxy-agent-0.2.tgz   "SERVICE_PROXY_AGENT_DIRECTORY"   || sudo gsutil cp     gs://gce-service-proxy/service-proxy-agent/releases/service-proxy-agent-0.2.tgz     "SERVICE_PROXY_AGENT_DIRECTORY"\\nsudo tar -xzf "SERVICE_PROXY_AGENT_DIRECTORY"/service-proxy-agent-0.2.tgz -C "SERVICE_PROXY_AGENT_DIRECTORY"\\n"SERVICE_PROXY_AGENT_DIRECTORY"/service-proxy-agent/service-proxy-agent-bootstrap.sh"
      }
    }]
  }]
}
`,
        "gce-service-proxy": `{
  "api-version": "0.2",
  "proxy-spec": {
    "proxy-port": 15001,
    "network": "my-network",
    "tracing": "ON",
    "access-log": "/var/log/envoy/access.log"
  }
  "service": {
    "serving-ports": [80, 81]
  },
 "labels": {
   "app_name": "bookserver_app",
   "app_version": "STABLE"
  }
}
`,
        "enable-guest-attributes": "true",
        "enable-osconfig": "true",
    },
    serviceAccount: {
        email: _default.then(_default => _default.email),
        scopes: ["cloud-platform"],
    },
    labels: {
        "gce-service-proxy": "on",
    },
});
Copy
import pulumi
import pulumi_gcp as gcp

default = gcp.compute.get_default_service_account()
my_image = gcp.compute.get_image(family="debian-11",
    project="debian-cloud")
foobar = gcp.compute.InstanceTemplate("foobar",
    name="appserver-template",
    machine_type="e2-medium",
    can_ip_forward=False,
    tags=[
        "foo",
        "bar",
    ],
    disks=[{
        "source_image": my_image.self_link,
        "auto_delete": True,
        "boot": True,
    }],
    network_interfaces=[{
        "network": "default",
    }],
    scheduling={
        "preemptible": False,
        "automatic_restart": True,
    },
    metadata={
        "gce-software-declaration": """{
  "softwareRecipes": [{
    "name": "install-gce-service-proxy-agent",
    "desired_state": "INSTALLED",
    "installSteps": [{
      "scriptRun": {
        "script": "#! /bin/bash\nZONE=$(curl --silent http://metadata.google.internal/computeMetadata/v1/instance/zone -H Metadata-Flavor:Google | cut -d/ -f4 )\nexport SERVICE_PROXY_AGENT_DIRECTORY=$(mktemp -d)\nsudo gsutil cp   gs://gce-service-proxy-"$ZONE"/service-proxy-agent/releases/service-proxy-agent-0.2.tgz   "$SERVICE_PROXY_AGENT_DIRECTORY"   || sudo gsutil cp     gs://gce-service-proxy/service-proxy-agent/releases/service-proxy-agent-0.2.tgz     "$SERVICE_PROXY_AGENT_DIRECTORY"\nsudo tar -xzf "$SERVICE_PROXY_AGENT_DIRECTORY"/service-proxy-agent-0.2.tgz -C "$SERVICE_PROXY_AGENT_DIRECTORY"\n"$SERVICE_PROXY_AGENT_DIRECTORY"/service-proxy-agent/service-proxy-agent-bootstrap.sh"
      }
    }]
  }]
}
""",
        "gce-service-proxy": """{
  "api-version": "0.2",
  "proxy-spec": {
    "proxy-port": 15001,
    "network": "my-network",
    "tracing": "ON",
    "access-log": "/var/log/envoy/access.log"
  }
  "service": {
    "serving-ports": [80, 81]
  },
 "labels": {
   "app_name": "bookserver_app",
   "app_version": "STABLE"
  }
}
""",
        "enable-guest-attributes": "true",
        "enable-osconfig": "true",
    },
    service_account={
        "email": default.email,
        "scopes": ["cloud-platform"],
    },
    labels={
        "gce-service-proxy": "on",
    })
Copy
package main

import (
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/compute"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_default, err := compute.GetDefaultServiceAccount(ctx, &compute.GetDefaultServiceAccountArgs{}, nil)
		if err != nil {
			return err
		}
		myImage, err := compute.LookupImage(ctx, &compute.LookupImageArgs{
			Family:  pulumi.StringRef("debian-11"),
			Project: pulumi.StringRef("debian-cloud"),
		}, nil)
		if err != nil {
			return err
		}
		_, err = compute.NewInstanceTemplate(ctx, "foobar", &compute.InstanceTemplateArgs{
			Name:         pulumi.String("appserver-template"),
			MachineType:  pulumi.String("e2-medium"),
			CanIpForward: pulumi.Bool(false),
			Tags: pulumi.StringArray{
				pulumi.String("foo"),
				pulumi.String("bar"),
			},
			Disks: compute.InstanceTemplateDiskArray{
				&compute.InstanceTemplateDiskArgs{
					SourceImage: pulumi.String(myImage.SelfLink),
					AutoDelete:  pulumi.Bool(true),
					Boot:        pulumi.Bool(true),
				},
			},
			NetworkInterfaces: compute.InstanceTemplateNetworkInterfaceArray{
				&compute.InstanceTemplateNetworkInterfaceArgs{
					Network: pulumi.String("default"),
				},
			},
			Scheduling: &compute.InstanceTemplateSchedulingArgs{
				Preemptible:      pulumi.Bool(false),
				AutomaticRestart: pulumi.Bool(true),
			},
			Metadata: pulumi.StringMap{
				"gce-software-declaration": pulumi.String(`{
  "softwareRecipes": [{
    "name": "install-gce-service-proxy-agent",
    "desired_state": "INSTALLED",
    "installSteps": [{
      "scriptRun": {
        "script": "#! /bin/bash\nZONE=$(curl --silent http://metadata.google.internal/computeMetadata/v1/instance/zone -H Metadata-Flavor:Google | cut -d/ -f4 )\nexport SERVICE_PROXY_AGENT_DIRECTORY=$(mktemp -d)\nsudo gsutil cp   gs://gce-service-proxy-"$ZONE"/service-proxy-agent/releases/service-proxy-agent-0.2.tgz   "$SERVICE_PROXY_AGENT_DIRECTORY"   || sudo gsutil cp     gs://gce-service-proxy/service-proxy-agent/releases/service-proxy-agent-0.2.tgz     "$SERVICE_PROXY_AGENT_DIRECTORY"\nsudo tar -xzf "$SERVICE_PROXY_AGENT_DIRECTORY"/service-proxy-agent-0.2.tgz -C "$SERVICE_PROXY_AGENT_DIRECTORY"\n"$SERVICE_PROXY_AGENT_DIRECTORY"/service-proxy-agent/service-proxy-agent-bootstrap.sh"
      }
    }]
  }]
}
`),
				"gce-service-proxy": pulumi.String(`{
  "api-version": "0.2",
  "proxy-spec": {
    "proxy-port": 15001,
    "network": "my-network",
    "tracing": "ON",
    "access-log": "/var/log/envoy/access.log"
  }
  "service": {
    "serving-ports": [80, 81]
  },
 "labels": {
   "app_name": "bookserver_app",
   "app_version": "STABLE"
  }
}
`),
				"enable-guest-attributes": pulumi.String("true"),
				"enable-osconfig":         pulumi.String("true"),
			},
			ServiceAccount: &compute.InstanceTemplateServiceAccountArgs{
				Email: pulumi.String(_default.Email),
				Scopes: pulumi.StringArray{
					pulumi.String("cloud-platform"),
				},
			},
			Labels: pulumi.StringMap{
				"gce-service-proxy": pulumi.String("on"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;

return await Deployment.RunAsync(() => 
{
    var @default = Gcp.Compute.GetDefaultServiceAccount.Invoke();

    var myImage = Gcp.Compute.GetImage.Invoke(new()
    {
        Family = "debian-11",
        Project = "debian-cloud",
    });

    var foobar = new Gcp.Compute.InstanceTemplate("foobar", new()
    {
        Name = "appserver-template",
        MachineType = "e2-medium",
        CanIpForward = false,
        Tags = new[]
        {
            "foo",
            "bar",
        },
        Disks = new[]
        {
            new Gcp.Compute.Inputs.InstanceTemplateDiskArgs
            {
                SourceImage = myImage.Apply(getImageResult => getImageResult.SelfLink),
                AutoDelete = true,
                Boot = true,
            },
        },
        NetworkInterfaces = new[]
        {
            new Gcp.Compute.Inputs.InstanceTemplateNetworkInterfaceArgs
            {
                Network = "default",
            },
        },
        Scheduling = new Gcp.Compute.Inputs.InstanceTemplateSchedulingArgs
        {
            Preemptible = false,
            AutomaticRestart = true,
        },
        Metadata = 
        {
            { "gce-software-declaration", @"{
  ""softwareRecipes"": [{
    ""name"": ""install-gce-service-proxy-agent"",
    ""desired_state"": ""INSTALLED"",
    ""installSteps"": [{
      ""scriptRun"": {
        ""script"": ""#! /bin/bash\nZONE=$(curl --silent http://metadata.google.internal/computeMetadata/v1/instance/zone -H Metadata-Flavor:Google | cut -d/ -f4 )\nexport SERVICE_PROXY_AGENT_DIRECTORY=$(mktemp -d)\nsudo gsutil cp   gs://gce-service-proxy-""$ZONE""/service-proxy-agent/releases/service-proxy-agent-0.2.tgz   ""$SERVICE_PROXY_AGENT_DIRECTORY""   || sudo gsutil cp     gs://gce-service-proxy/service-proxy-agent/releases/service-proxy-agent-0.2.tgz     ""$SERVICE_PROXY_AGENT_DIRECTORY""\nsudo tar -xzf ""$SERVICE_PROXY_AGENT_DIRECTORY""/service-proxy-agent-0.2.tgz -C ""$SERVICE_PROXY_AGENT_DIRECTORY""\n""$SERVICE_PROXY_AGENT_DIRECTORY""/service-proxy-agent/service-proxy-agent-bootstrap.sh""
      }
    }]
  }]
}
" },
            { "gce-service-proxy", @"{
  ""api-version"": ""0.2"",
  ""proxy-spec"": {
    ""proxy-port"": 15001,
    ""network"": ""my-network"",
    ""tracing"": ""ON"",
    ""access-log"": ""/var/log/envoy/access.log""
  }
  ""service"": {
    ""serving-ports"": [80, 81]
  },
 ""labels"": {
   ""app_name"": ""bookserver_app"",
   ""app_version"": ""STABLE""
  }
}
" },
            { "enable-guest-attributes", "true" },
            { "enable-osconfig", "true" },
        },
        ServiceAccount = new Gcp.Compute.Inputs.InstanceTemplateServiceAccountArgs
        {
            Email = @default.Apply(@default => @default.Apply(getDefaultServiceAccountResult => getDefaultServiceAccountResult.Email)),
            Scopes = new[]
            {
                "cloud-platform",
            },
        },
        Labels = 
        {
            { "gce-service-proxy", "on" },
        },
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.compute.ComputeFunctions;
import com.pulumi.gcp.compute.inputs.GetDefaultServiceAccountArgs;
import com.pulumi.gcp.compute.inputs.GetImageArgs;
import com.pulumi.gcp.compute.InstanceTemplate;
import com.pulumi.gcp.compute.InstanceTemplateArgs;
import com.pulumi.gcp.compute.inputs.InstanceTemplateDiskArgs;
import com.pulumi.gcp.compute.inputs.InstanceTemplateNetworkInterfaceArgs;
import com.pulumi.gcp.compute.inputs.InstanceTemplateSchedulingArgs;
import com.pulumi.gcp.compute.inputs.InstanceTemplateServiceAccountArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        final var default = ComputeFunctions.getDefaultServiceAccount(GetDefaultServiceAccountArgs.builder()
            .build());

        final var myImage = ComputeFunctions.getImage(GetImageArgs.builder()
            .family("debian-11")
            .project("debian-cloud")
            .build());

        var foobar = new InstanceTemplate("foobar", InstanceTemplateArgs.builder()
            .name("appserver-template")
            .machineType("e2-medium")
            .canIpForward(false)
            .tags(            
                "foo",
                "bar")
            .disks(InstanceTemplateDiskArgs.builder()
                .sourceImage(myImage.selfLink())
                .autoDelete(true)
                .boot(true)
                .build())
            .networkInterfaces(InstanceTemplateNetworkInterfaceArgs.builder()
                .network("default")
                .build())
            .scheduling(InstanceTemplateSchedulingArgs.builder()
                .preemptible(false)
                .automaticRestart(true)
                .build())
            .metadata(Map.ofEntries(
                Map.entry("gce-software-declaration", """
{
  "softwareRecipes": [{
    "name": "install-gce-service-proxy-agent",
    "desired_state": "INSTALLED",
    "installSteps": [{
      "scriptRun": {
        "script": "#! /bin/bash\nZONE=$(curl --silent http://metadata.google.internal/computeMetadata/v1/instance/zone -H Metadata-Flavor:Google | cut -d/ -f4 )\nexport SERVICE_PROXY_AGENT_DIRECTORY=$(mktemp -d)\nsudo gsutil cp   gs://gce-service-proxy-"$ZONE"/service-proxy-agent/releases/service-proxy-agent-0.2.tgz   "$SERVICE_PROXY_AGENT_DIRECTORY"   || sudo gsutil cp     gs://gce-service-proxy/service-proxy-agent/releases/service-proxy-agent-0.2.tgz     "$SERVICE_PROXY_AGENT_DIRECTORY"\nsudo tar -xzf "$SERVICE_PROXY_AGENT_DIRECTORY"/service-proxy-agent-0.2.tgz -C "$SERVICE_PROXY_AGENT_DIRECTORY"\n"$SERVICE_PROXY_AGENT_DIRECTORY"/service-proxy-agent/service-proxy-agent-bootstrap.sh"
      }
    }]
  }]
}
                """),
                Map.entry("gce-service-proxy", """
{
  "api-version": "0.2",
  "proxy-spec": {
    "proxy-port": 15001,
    "network": "my-network",
    "tracing": "ON",
    "access-log": "/var/log/envoy/access.log"
  }
  "service": {
    "serving-ports": [80, 81]
  },
 "labels": {
   "app_name": "bookserver_app",
   "app_version": "STABLE"
  }
}
                """),
                Map.entry("enable-guest-attributes", "true"),
                Map.entry("enable-osconfig", "true")
            ))
            .serviceAccount(InstanceTemplateServiceAccountArgs.builder()
                .email(default_.email())
                .scopes("cloud-platform")
                .build())
            .labels(Map.of("gce-service-proxy", "on"))
            .build());

    }
}
Copy
resources:
  foobar:
    type: gcp:compute:InstanceTemplate
    properties:
      name: appserver-template
      machineType: e2-medium
      canIpForward: false
      tags:
        - foo
        - bar
      disks:
        - sourceImage: ${myImage.selfLink}
          autoDelete: true
          boot: true
      networkInterfaces:
        - network: default
      scheduling:
        preemptible: false
        automaticRestart: true
      metadata:
        gce-software-declaration: |
          {
            "softwareRecipes": [{
              "name": "install-gce-service-proxy-agent",
              "desired_state": "INSTALLED",
              "installSteps": [{
                "scriptRun": {
                  "script": "#! /bin/bash\nZONE=$(curl --silent http://metadata.google.internal/computeMetadata/v1/instance/zone -H Metadata-Flavor:Google | cut -d/ -f4 )\nexport SERVICE_PROXY_AGENT_DIRECTORY=$(mktemp -d)\nsudo gsutil cp   gs://gce-service-proxy-"$ZONE"/service-proxy-agent/releases/service-proxy-agent-0.2.tgz   "$SERVICE_PROXY_AGENT_DIRECTORY"   || sudo gsutil cp     gs://gce-service-proxy/service-proxy-agent/releases/service-proxy-agent-0.2.tgz     "$SERVICE_PROXY_AGENT_DIRECTORY"\nsudo tar -xzf "$SERVICE_PROXY_AGENT_DIRECTORY"/service-proxy-agent-0.2.tgz -C "$SERVICE_PROXY_AGENT_DIRECTORY"\n"$SERVICE_PROXY_AGENT_DIRECTORY"/service-proxy-agent/service-proxy-agent-bootstrap.sh"
                }
              }]
            }]
          }          
        gce-service-proxy: |
          {
            "api-version": "0.2",
            "proxy-spec": {
              "proxy-port": 15001,
              "network": "my-network",
              "tracing": "ON",
              "access-log": "/var/log/envoy/access.log"
            }
            "service": {
              "serving-ports": [80, 81]
            },
           "labels": {
             "app_name": "bookserver_app",
             "app_version": "STABLE"
            }
          }          
        enable-guest-attributes: 'true'
        enable-osconfig: 'true'
      serviceAccount:
        email: ${default.email}
        scopes:
          - cloud-platform
      labels:
        gce-service-proxy: on
variables:
  default:
    fn::invoke:
      function: gcp:compute:getDefaultServiceAccount
      arguments: {}
  myImage:
    fn::invoke:
      function: gcp:compute:getImage
      arguments:
        family: debian-11
        project: debian-cloud
Copy

Confidential Computing

Example with Confidential Mode activated.

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";

const _default = new gcp.serviceaccount.Account("default", {
    accountId: "my-custom-sa",
    displayName: "Custom SA for VM Instance",
});
const confidentialInstanceTemplate = new gcp.compute.InstanceTemplate("confidential_instance_template", {
    networkInterfaces: [{
        accessConfigs: [{}],
        network: "default",
    }],
    name: "my-confidential-instance-template",
    region: "us-central1",
    machineType: "n2d-standard-2",
    minCpuPlatform: "AMD Milan",
    confidentialInstanceConfig: {
        enableConfidentialCompute: true,
        confidentialInstanceType: "SEV",
    },
    disks: [{
        sourceImage: "ubuntu-os-cloud/ubuntu-2004-lts",
    }],
    serviceAccount: {
        email: _default.email,
        scopes: ["cloud-platform"],
    },
});
Copy
import pulumi
import pulumi_gcp as gcp

default = gcp.serviceaccount.Account("default",
    account_id="my-custom-sa",
    display_name="Custom SA for VM Instance")
confidential_instance_template = gcp.compute.InstanceTemplate("confidential_instance_template",
    network_interfaces=[{
        "access_configs": [{}],
        "network": "default",
    }],
    name="my-confidential-instance-template",
    region="us-central1",
    machine_type="n2d-standard-2",
    min_cpu_platform="AMD Milan",
    confidential_instance_config={
        "enable_confidential_compute": True,
        "confidential_instance_type": "SEV",
    },
    disks=[{
        "source_image": "ubuntu-os-cloud/ubuntu-2004-lts",
    }],
    service_account={
        "email": default.email,
        "scopes": ["cloud-platform"],
    })
Copy
package main

import (
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/compute"
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/serviceaccount"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_default, err := serviceaccount.NewAccount(ctx, "default", &serviceaccount.AccountArgs{
			AccountId:   pulumi.String("my-custom-sa"),
			DisplayName: pulumi.String("Custom SA for VM Instance"),
		})
		if err != nil {
			return err
		}
		_, err = compute.NewInstanceTemplate(ctx, "confidential_instance_template", &compute.InstanceTemplateArgs{
			NetworkInterfaces: compute.InstanceTemplateNetworkInterfaceArray{
				&compute.InstanceTemplateNetworkInterfaceArgs{
					AccessConfigs: compute.InstanceTemplateNetworkInterfaceAccessConfigArray{
						&compute.InstanceTemplateNetworkInterfaceAccessConfigArgs{},
					},
					Network: pulumi.String("default"),
				},
			},
			Name:           pulumi.String("my-confidential-instance-template"),
			Region:         pulumi.String("us-central1"),
			MachineType:    pulumi.String("n2d-standard-2"),
			MinCpuPlatform: pulumi.String("AMD Milan"),
			ConfidentialInstanceConfig: &compute.InstanceTemplateConfidentialInstanceConfigArgs{
				EnableConfidentialCompute: pulumi.Bool(true),
				ConfidentialInstanceType:  pulumi.String("SEV"),
			},
			Disks: compute.InstanceTemplateDiskArray{
				&compute.InstanceTemplateDiskArgs{
					SourceImage: pulumi.String("ubuntu-os-cloud/ubuntu-2004-lts"),
				},
			},
			ServiceAccount: &compute.InstanceTemplateServiceAccountArgs{
				Email: _default.Email,
				Scopes: pulumi.StringArray{
					pulumi.String("cloud-platform"),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;

return await Deployment.RunAsync(() => 
{
    var @default = new Gcp.ServiceAccount.Account("default", new()
    {
        AccountId = "my-custom-sa",
        DisplayName = "Custom SA for VM Instance",
    });

    var confidentialInstanceTemplate = new Gcp.Compute.InstanceTemplate("confidential_instance_template", new()
    {
        NetworkInterfaces = new[]
        {
            new Gcp.Compute.Inputs.InstanceTemplateNetworkInterfaceArgs
            {
                AccessConfigs = new[]
                {
                    null,
                },
                Network = "default",
            },
        },
        Name = "my-confidential-instance-template",
        Region = "us-central1",
        MachineType = "n2d-standard-2",
        MinCpuPlatform = "AMD Milan",
        ConfidentialInstanceConfig = new Gcp.Compute.Inputs.InstanceTemplateConfidentialInstanceConfigArgs
        {
            EnableConfidentialCompute = true,
            ConfidentialInstanceType = "SEV",
        },
        Disks = new[]
        {
            new Gcp.Compute.Inputs.InstanceTemplateDiskArgs
            {
                SourceImage = "ubuntu-os-cloud/ubuntu-2004-lts",
            },
        },
        ServiceAccount = new Gcp.Compute.Inputs.InstanceTemplateServiceAccountArgs
        {
            Email = @default.Email,
            Scopes = new[]
            {
                "cloud-platform",
            },
        },
    });

});
Copy
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.InstanceTemplate;
import com.pulumi.gcp.compute.InstanceTemplateArgs;
import com.pulumi.gcp.compute.inputs.InstanceTemplateNetworkInterfaceArgs;
import com.pulumi.gcp.compute.inputs.InstanceTemplateConfidentialInstanceConfigArgs;
import com.pulumi.gcp.compute.inputs.InstanceTemplateDiskArgs;
import com.pulumi.gcp.compute.inputs.InstanceTemplateServiceAccountArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var default_ = new Account("default", AccountArgs.builder()
            .accountId("my-custom-sa")
            .displayName("Custom SA for VM Instance")
            .build());

        var confidentialInstanceTemplate = new InstanceTemplate("confidentialInstanceTemplate", InstanceTemplateArgs.builder()
            .networkInterfaces(InstanceTemplateNetworkInterfaceArgs.builder()
                .accessConfigs(InstanceTemplateNetworkInterfaceAccessConfigArgs.builder()
                    .build())
                .network("default")
                .build())
            .name("my-confidential-instance-template")
            .region("us-central1")
            .machineType("n2d-standard-2")
            .minCpuPlatform("AMD Milan")
            .confidentialInstanceConfig(InstanceTemplateConfidentialInstanceConfigArgs.builder()
                .enableConfidentialCompute(true)
                .confidentialInstanceType("SEV")
                .build())
            .disks(InstanceTemplateDiskArgs.builder()
                .sourceImage("ubuntu-os-cloud/ubuntu-2004-lts")
                .build())
            .serviceAccount(InstanceTemplateServiceAccountArgs.builder()
                .email(default_.email())
                .scopes("cloud-platform")
                .build())
            .build());

    }
}
Copy
resources:
  default:
    type: gcp:serviceaccount:Account
    properties:
      accountId: my-custom-sa
      displayName: Custom SA for VM Instance
  confidentialInstanceTemplate:
    type: gcp:compute:InstanceTemplate
    name: confidential_instance_template
    properties:
      networkInterfaces:
        - accessConfigs:
            - {}
          network: default
      name: my-confidential-instance-template
      region: us-central1
      machineType: n2d-standard-2
      minCpuPlatform: AMD Milan
      confidentialInstanceConfig:
        enableConfidentialCompute: true
        confidentialInstanceType: SEV
      disks:
        - sourceImage: ubuntu-os-cloud/ubuntu-2004-lts
      serviceAccount:
        email: ${default.email}
        scopes:
          - cloud-platform
Copy

Deploying the Latest Image

A common way to use instance templates and managed instance groups is to deploy the latest image in a family, usually the latest build of your application. There are two ways to do this in the provider, and they have their pros and cons. The difference ends up being in how “latest” is interpreted. You can either deploy the latest image available when the provider runs, or you can have each instance check what the latest image is when it’s being created, either as part of a scaling event or being rebuilt by the instance group manager.

If you’re not sure, we recommend deploying the latest image available when the provider runs, because this means all the instances in your group will be based on the same image, always, and means that no upgrades or changes to your instances happen outside of a pulumi up. You can achieve this by using the gcp.compute.Image data source, which will retrieve the latest image on every pulumi apply, and will update the template to use that specific image:

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";

const myImage = gcp.compute.getImage({
    family: "debian-11",
    project: "debian-cloud",
});
const instanceTemplate = new gcp.compute.InstanceTemplate("instance_template", {
    namePrefix: "instance-template-",
    machineType: "e2-medium",
    region: "us-central1",
    disks: [{
        sourceImage: myImage.then(myImage => myImage.selfLink),
    }],
});
Copy
import pulumi
import pulumi_gcp as gcp

my_image = gcp.compute.get_image(family="debian-11",
    project="debian-cloud")
instance_template = gcp.compute.InstanceTemplate("instance_template",
    name_prefix="instance-template-",
    machine_type="e2-medium",
    region="us-central1",
    disks=[{
        "source_image": my_image.self_link,
    }])
Copy
package main

import (
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/compute"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		myImage, err := compute.LookupImage(ctx, &compute.LookupImageArgs{
			Family:  pulumi.StringRef("debian-11"),
			Project: pulumi.StringRef("debian-cloud"),
		}, nil)
		if err != nil {
			return err
		}
		_, err = compute.NewInstanceTemplate(ctx, "instance_template", &compute.InstanceTemplateArgs{
			NamePrefix:  pulumi.String("instance-template-"),
			MachineType: pulumi.String("e2-medium"),
			Region:      pulumi.String("us-central1"),
			Disks: compute.InstanceTemplateDiskArray{
				&compute.InstanceTemplateDiskArgs{
					SourceImage: pulumi.String(myImage.SelfLink),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;

return await Deployment.RunAsync(() => 
{
    var myImage = Gcp.Compute.GetImage.Invoke(new()
    {
        Family = "debian-11",
        Project = "debian-cloud",
    });

    var instanceTemplate = new Gcp.Compute.InstanceTemplate("instance_template", new()
    {
        NamePrefix = "instance-template-",
        MachineType = "e2-medium",
        Region = "us-central1",
        Disks = new[]
        {
            new Gcp.Compute.Inputs.InstanceTemplateDiskArgs
            {
                SourceImage = myImage.Apply(getImageResult => getImageResult.SelfLink),
            },
        },
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.compute.ComputeFunctions;
import com.pulumi.gcp.compute.inputs.GetImageArgs;
import com.pulumi.gcp.compute.InstanceTemplate;
import com.pulumi.gcp.compute.InstanceTemplateArgs;
import com.pulumi.gcp.compute.inputs.InstanceTemplateDiskArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        final var myImage = ComputeFunctions.getImage(GetImageArgs.builder()
            .family("debian-11")
            .project("debian-cloud")
            .build());

        var instanceTemplate = new InstanceTemplate("instanceTemplate", InstanceTemplateArgs.builder()
            .namePrefix("instance-template-")
            .machineType("e2-medium")
            .region("us-central1")
            .disks(InstanceTemplateDiskArgs.builder()
                .sourceImage(myImage.selfLink())
                .build())
            .build());

    }
}
Copy
resources:
  instanceTemplate:
    type: gcp:compute:InstanceTemplate
    name: instance_template
    properties:
      namePrefix: instance-template-
      machineType: e2-medium
      region: us-central1
      disks:
        - sourceImage: ${myImage.selfLink}
variables:
  myImage:
    fn::invoke:
      function: gcp:compute:getImage
      arguments:
        family: debian-11
        project: debian-cloud
Copy

To have instances update to the latest on every scaling event or instance re-creation, use the family as the image for the disk, and it will use GCP’s default behavior, setting the image for the template to the family:

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";

const instanceTemplate = new gcp.compute.InstanceTemplate("instance_template", {
    namePrefix: "instance-template-",
    machineType: "e2-medium",
    region: "us-central1",
    disks: [{
        sourceImage: "debian-cloud/debian-11",
    }],
});
Copy
import pulumi
import pulumi_gcp as gcp

instance_template = gcp.compute.InstanceTemplate("instance_template",
    name_prefix="instance-template-",
    machine_type="e2-medium",
    region="us-central1",
    disks=[{
        "source_image": "debian-cloud/debian-11",
    }])
Copy
package main

import (
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/compute"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := compute.NewInstanceTemplate(ctx, "instance_template", &compute.InstanceTemplateArgs{
			NamePrefix:  pulumi.String("instance-template-"),
			MachineType: pulumi.String("e2-medium"),
			Region:      pulumi.String("us-central1"),
			Disks: compute.InstanceTemplateDiskArray{
				&compute.InstanceTemplateDiskArgs{
					SourceImage: pulumi.String("debian-cloud/debian-11"),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;

return await Deployment.RunAsync(() => 
{
    var instanceTemplate = new Gcp.Compute.InstanceTemplate("instance_template", new()
    {
        NamePrefix = "instance-template-",
        MachineType = "e2-medium",
        Region = "us-central1",
        Disks = new[]
        {
            new Gcp.Compute.Inputs.InstanceTemplateDiskArgs
            {
                SourceImage = "debian-cloud/debian-11",
            },
        },
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.compute.InstanceTemplate;
import com.pulumi.gcp.compute.InstanceTemplateArgs;
import com.pulumi.gcp.compute.inputs.InstanceTemplateDiskArgs;
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 instanceTemplate = new InstanceTemplate("instanceTemplate", InstanceTemplateArgs.builder()
            .namePrefix("instance-template-")
            .machineType("e2-medium")
            .region("us-central1")
            .disks(InstanceTemplateDiskArgs.builder()
                .sourceImage("debian-cloud/debian-11")
                .build())
            .build());

    }
}
Copy
resources:
  instanceTemplate:
    type: gcp:compute:InstanceTemplate
    name: instance_template
    properties:
      namePrefix: instance-template-
      machineType: e2-medium
      region: us-central1
      disks:
        - sourceImage: debian-cloud/debian-11
Copy

Create InstanceTemplate Resource

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

Constructor syntax

new InstanceTemplate(name: string, args: InstanceTemplateArgs, opts?: CustomResourceOptions);
@overload
def InstanceTemplate(resource_name: str,
                     args: InstanceTemplateArgs,
                     opts: Optional[ResourceOptions] = None)

@overload
def InstanceTemplate(resource_name: str,
                     opts: Optional[ResourceOptions] = None,
                     disks: Optional[Sequence[InstanceTemplateDiskArgs]] = None,
                     machine_type: Optional[str] = None,
                     name: Optional[str] = None,
                     scheduling: Optional[InstanceTemplateSchedulingArgs] = None,
                     confidential_instance_config: Optional[InstanceTemplateConfidentialInstanceConfigArgs] = None,
                     enable_display: Optional[bool] = None,
                     guest_accelerators: Optional[Sequence[InstanceTemplateGuestAcceleratorArgs]] = None,
                     instance_description: Optional[str] = None,
                     key_revocation_action_type: Optional[str] = None,
                     labels: Optional[Mapping[str, str]] = None,
                     can_ip_forward: Optional[bool] = None,
                     metadata: Optional[Mapping[str, str]] = None,
                     metadata_startup_script: Optional[str] = None,
                     min_cpu_platform: Optional[str] = None,
                     description: Optional[str] = None,
                     advanced_machine_features: Optional[InstanceTemplateAdvancedMachineFeaturesArgs] = None,
                     region: Optional[str] = None,
                     network_performance_config: Optional[InstanceTemplateNetworkPerformanceConfigArgs] = None,
                     partner_metadata: Optional[Mapping[str, str]] = None,
                     project: Optional[str] = None,
                     network_interfaces: Optional[Sequence[InstanceTemplateNetworkInterfaceArgs]] = None,
                     reservation_affinity: Optional[InstanceTemplateReservationAffinityArgs] = None,
                     resource_manager_tags: Optional[Mapping[str, str]] = None,
                     resource_policies: Optional[str] = None,
                     name_prefix: Optional[str] = None,
                     service_account: Optional[InstanceTemplateServiceAccountArgs] = None,
                     shielded_instance_config: Optional[InstanceTemplateShieldedInstanceConfigArgs] = None,
                     tags: Optional[Sequence[str]] = None)
func NewInstanceTemplate(ctx *Context, name string, args InstanceTemplateArgs, opts ...ResourceOption) (*InstanceTemplate, error)
public InstanceTemplate(string name, InstanceTemplateArgs args, CustomResourceOptions? opts = null)
public InstanceTemplate(String name, InstanceTemplateArgs args)
public InstanceTemplate(String name, InstanceTemplateArgs args, CustomResourceOptions options)
type: gcp:compute:InstanceTemplate
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.

Parameters

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

Constructor example

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

var instanceTemplateResource = new Gcp.Compute.InstanceTemplate("instanceTemplateResource", new()
{
    Disks = new[]
    {
        new Gcp.Compute.Inputs.InstanceTemplateDiskArgs
        {
            AutoDelete = false,
            Boot = false,
            DeviceName = "string",
            DiskEncryptionKey = new Gcp.Compute.Inputs.InstanceTemplateDiskDiskEncryptionKeyArgs
            {
                KmsKeySelfLink = "string",
            },
            DiskName = "string",
            DiskSizeGb = 0,
            DiskType = "string",
            Interface = "string",
            Labels = 
            {
                { "string", "string" },
            },
            Mode = "string",
            ProvisionedIops = 0,
            ProvisionedThroughput = 0,
            ResourceManagerTags = 
            {
                { "string", "string" },
            },
            ResourcePolicies = "string",
            Source = "string",
            SourceImage = "string",
            SourceImageEncryptionKey = new Gcp.Compute.Inputs.InstanceTemplateDiskSourceImageEncryptionKeyArgs
            {
                KmsKeySelfLink = "string",
                KmsKeyServiceAccount = "string",
            },
            SourceSnapshot = "string",
            SourceSnapshotEncryptionKey = new Gcp.Compute.Inputs.InstanceTemplateDiskSourceSnapshotEncryptionKeyArgs
            {
                KmsKeySelfLink = "string",
                KmsKeyServiceAccount = "string",
            },
            Type = "string",
        },
    },
    MachineType = "string",
    Name = "string",
    Scheduling = new Gcp.Compute.Inputs.InstanceTemplateSchedulingArgs
    {
        AutomaticRestart = false,
        AvailabilityDomain = 0,
        GracefulShutdown = new Gcp.Compute.Inputs.InstanceTemplateSchedulingGracefulShutdownArgs
        {
            Enabled = false,
            MaxDuration = new Gcp.Compute.Inputs.InstanceTemplateSchedulingGracefulShutdownMaxDurationArgs
            {
                Seconds = 0,
                Nanos = 0,
            },
        },
        HostErrorTimeoutSeconds = 0,
        InstanceTerminationAction = "string",
        LocalSsdRecoveryTimeouts = new[]
        {
            new Gcp.Compute.Inputs.InstanceTemplateSchedulingLocalSsdRecoveryTimeoutArgs
            {
                Seconds = 0,
                Nanos = 0,
            },
        },
        MaintenanceInterval = "string",
        MaxRunDuration = new Gcp.Compute.Inputs.InstanceTemplateSchedulingMaxRunDurationArgs
        {
            Seconds = 0,
            Nanos = 0,
        },
        MinNodeCpus = 0,
        NodeAffinities = new[]
        {
            new Gcp.Compute.Inputs.InstanceTemplateSchedulingNodeAffinityArgs
            {
                Key = "string",
                Operator = "string",
                Values = new[]
                {
                    "string",
                },
            },
        },
        OnHostMaintenance = "string",
        OnInstanceStopAction = new Gcp.Compute.Inputs.InstanceTemplateSchedulingOnInstanceStopActionArgs
        {
            DiscardLocalSsd = false,
        },
        Preemptible = false,
        ProvisioningModel = "string",
        TerminationTime = "string",
    },
    ConfidentialInstanceConfig = new Gcp.Compute.Inputs.InstanceTemplateConfidentialInstanceConfigArgs
    {
        ConfidentialInstanceType = "string",
        EnableConfidentialCompute = false,
    },
    EnableDisplay = false,
    GuestAccelerators = new[]
    {
        new Gcp.Compute.Inputs.InstanceTemplateGuestAcceleratorArgs
        {
            Count = 0,
            Type = "string",
        },
    },
    InstanceDescription = "string",
    KeyRevocationActionType = "string",
    Labels = 
    {
        { "string", "string" },
    },
    CanIpForward = false,
    Metadata = 
    {
        { "string", "string" },
    },
    MetadataStartupScript = "string",
    MinCpuPlatform = "string",
    Description = "string",
    AdvancedMachineFeatures = new Gcp.Compute.Inputs.InstanceTemplateAdvancedMachineFeaturesArgs
    {
        EnableNestedVirtualization = false,
        EnableUefiNetworking = false,
        PerformanceMonitoringUnit = "string",
        ThreadsPerCore = 0,
        TurboMode = "string",
        VisibleCoreCount = 0,
    },
    Region = "string",
    NetworkPerformanceConfig = new Gcp.Compute.Inputs.InstanceTemplateNetworkPerformanceConfigArgs
    {
        TotalEgressBandwidthTier = "string",
    },
    PartnerMetadata = 
    {
        { "string", "string" },
    },
    Project = "string",
    NetworkInterfaces = new[]
    {
        new Gcp.Compute.Inputs.InstanceTemplateNetworkInterfaceArgs
        {
            AccessConfigs = new[]
            {
                new Gcp.Compute.Inputs.InstanceTemplateNetworkInterfaceAccessConfigArgs
                {
                    NatIp = "string",
                    NetworkTier = "string",
                    PublicPtrDomainName = "string",
                },
            },
            AliasIpRanges = new[]
            {
                new Gcp.Compute.Inputs.InstanceTemplateNetworkInterfaceAliasIpRangeArgs
                {
                    IpCidrRange = "string",
                    SubnetworkRangeName = "string",
                },
            },
            InternalIpv6PrefixLength = 0,
            Ipv6AccessConfigs = new[]
            {
                new Gcp.Compute.Inputs.InstanceTemplateNetworkInterfaceIpv6AccessConfigArgs
                {
                    NetworkTier = "string",
                    ExternalIpv6 = "string",
                    ExternalIpv6PrefixLength = "string",
                    Name = "string",
                    PublicPtrDomainName = "string",
                },
            },
            Ipv6AccessType = "string",
            Ipv6Address = "string",
            Name = "string",
            Network = "string",
            NetworkAttachment = "string",
            NetworkIp = "string",
            NicType = "string",
            QueueCount = 0,
            StackType = "string",
            Subnetwork = "string",
            SubnetworkProject = "string",
        },
    },
    ReservationAffinity = new Gcp.Compute.Inputs.InstanceTemplateReservationAffinityArgs
    {
        Type = "string",
        SpecificReservation = new Gcp.Compute.Inputs.InstanceTemplateReservationAffinitySpecificReservationArgs
        {
            Key = "string",
            Values = new[]
            {
                "string",
            },
        },
    },
    ResourceManagerTags = 
    {
        { "string", "string" },
    },
    ResourcePolicies = "string",
    NamePrefix = "string",
    ServiceAccount = new Gcp.Compute.Inputs.InstanceTemplateServiceAccountArgs
    {
        Scopes = new[]
        {
            "string",
        },
        Email = "string",
    },
    ShieldedInstanceConfig = new Gcp.Compute.Inputs.InstanceTemplateShieldedInstanceConfigArgs
    {
        EnableIntegrityMonitoring = false,
        EnableSecureBoot = false,
        EnableVtpm = false,
    },
    Tags = new[]
    {
        "string",
    },
});
Copy
example, err := compute.NewInstanceTemplate(ctx, "instanceTemplateResource", &compute.InstanceTemplateArgs{
	Disks: compute.InstanceTemplateDiskArray{
		&compute.InstanceTemplateDiskArgs{
			AutoDelete: pulumi.Bool(false),
			Boot:       pulumi.Bool(false),
			DeviceName: pulumi.String("string"),
			DiskEncryptionKey: &compute.InstanceTemplateDiskDiskEncryptionKeyArgs{
				KmsKeySelfLink: pulumi.String("string"),
			},
			DiskName:   pulumi.String("string"),
			DiskSizeGb: pulumi.Int(0),
			DiskType:   pulumi.String("string"),
			Interface:  pulumi.String("string"),
			Labels: pulumi.StringMap{
				"string": pulumi.String("string"),
			},
			Mode:                  pulumi.String("string"),
			ProvisionedIops:       pulumi.Int(0),
			ProvisionedThroughput: pulumi.Int(0),
			ResourceManagerTags: pulumi.StringMap{
				"string": pulumi.String("string"),
			},
			ResourcePolicies: pulumi.String("string"),
			Source:           pulumi.String("string"),
			SourceImage:      pulumi.String("string"),
			SourceImageEncryptionKey: &compute.InstanceTemplateDiskSourceImageEncryptionKeyArgs{
				KmsKeySelfLink:       pulumi.String("string"),
				KmsKeyServiceAccount: pulumi.String("string"),
			},
			SourceSnapshot: pulumi.String("string"),
			SourceSnapshotEncryptionKey: &compute.InstanceTemplateDiskSourceSnapshotEncryptionKeyArgs{
				KmsKeySelfLink:       pulumi.String("string"),
				KmsKeyServiceAccount: pulumi.String("string"),
			},
			Type: pulumi.String("string"),
		},
	},
	MachineType: pulumi.String("string"),
	Name:        pulumi.String("string"),
	Scheduling: &compute.InstanceTemplateSchedulingArgs{
		AutomaticRestart:   pulumi.Bool(false),
		AvailabilityDomain: pulumi.Int(0),
		GracefulShutdown: &compute.InstanceTemplateSchedulingGracefulShutdownArgs{
			Enabled: pulumi.Bool(false),
			MaxDuration: &compute.InstanceTemplateSchedulingGracefulShutdownMaxDurationArgs{
				Seconds: pulumi.Int(0),
				Nanos:   pulumi.Int(0),
			},
		},
		HostErrorTimeoutSeconds:   pulumi.Int(0),
		InstanceTerminationAction: pulumi.String("string"),
		LocalSsdRecoveryTimeouts: compute.InstanceTemplateSchedulingLocalSsdRecoveryTimeoutArray{
			&compute.InstanceTemplateSchedulingLocalSsdRecoveryTimeoutArgs{
				Seconds: pulumi.Int(0),
				Nanos:   pulumi.Int(0),
			},
		},
		MaintenanceInterval: pulumi.String("string"),
		MaxRunDuration: &compute.InstanceTemplateSchedulingMaxRunDurationArgs{
			Seconds: pulumi.Int(0),
			Nanos:   pulumi.Int(0),
		},
		MinNodeCpus: pulumi.Int(0),
		NodeAffinities: compute.InstanceTemplateSchedulingNodeAffinityArray{
			&compute.InstanceTemplateSchedulingNodeAffinityArgs{
				Key:      pulumi.String("string"),
				Operator: pulumi.String("string"),
				Values: pulumi.StringArray{
					pulumi.String("string"),
				},
			},
		},
		OnHostMaintenance: pulumi.String("string"),
		OnInstanceStopAction: &compute.InstanceTemplateSchedulingOnInstanceStopActionArgs{
			DiscardLocalSsd: pulumi.Bool(false),
		},
		Preemptible:       pulumi.Bool(false),
		ProvisioningModel: pulumi.String("string"),
		TerminationTime:   pulumi.String("string"),
	},
	ConfidentialInstanceConfig: &compute.InstanceTemplateConfidentialInstanceConfigArgs{
		ConfidentialInstanceType:  pulumi.String("string"),
		EnableConfidentialCompute: pulumi.Bool(false),
	},
	EnableDisplay: pulumi.Bool(false),
	GuestAccelerators: compute.InstanceTemplateGuestAcceleratorArray{
		&compute.InstanceTemplateGuestAcceleratorArgs{
			Count: pulumi.Int(0),
			Type:  pulumi.String("string"),
		},
	},
	InstanceDescription:     pulumi.String("string"),
	KeyRevocationActionType: pulumi.String("string"),
	Labels: pulumi.StringMap{
		"string": pulumi.String("string"),
	},
	CanIpForward: pulumi.Bool(false),
	Metadata: pulumi.StringMap{
		"string": pulumi.String("string"),
	},
	MetadataStartupScript: pulumi.String("string"),
	MinCpuPlatform:        pulumi.String("string"),
	Description:           pulumi.String("string"),
	AdvancedMachineFeatures: &compute.InstanceTemplateAdvancedMachineFeaturesArgs{
		EnableNestedVirtualization: pulumi.Bool(false),
		EnableUefiNetworking:       pulumi.Bool(false),
		PerformanceMonitoringUnit:  pulumi.String("string"),
		ThreadsPerCore:             pulumi.Int(0),
		TurboMode:                  pulumi.String("string"),
		VisibleCoreCount:           pulumi.Int(0),
	},
	Region: pulumi.String("string"),
	NetworkPerformanceConfig: &compute.InstanceTemplateNetworkPerformanceConfigArgs{
		TotalEgressBandwidthTier: pulumi.String("string"),
	},
	PartnerMetadata: pulumi.StringMap{
		"string": pulumi.String("string"),
	},
	Project: pulumi.String("string"),
	NetworkInterfaces: compute.InstanceTemplateNetworkInterfaceArray{
		&compute.InstanceTemplateNetworkInterfaceArgs{
			AccessConfigs: compute.InstanceTemplateNetworkInterfaceAccessConfigArray{
				&compute.InstanceTemplateNetworkInterfaceAccessConfigArgs{
					NatIp:               pulumi.String("string"),
					NetworkTier:         pulumi.String("string"),
					PublicPtrDomainName: pulumi.String("string"),
				},
			},
			AliasIpRanges: compute.InstanceTemplateNetworkInterfaceAliasIpRangeArray{
				&compute.InstanceTemplateNetworkInterfaceAliasIpRangeArgs{
					IpCidrRange:         pulumi.String("string"),
					SubnetworkRangeName: pulumi.String("string"),
				},
			},
			InternalIpv6PrefixLength: pulumi.Int(0),
			Ipv6AccessConfigs: compute.InstanceTemplateNetworkInterfaceIpv6AccessConfigArray{
				&compute.InstanceTemplateNetworkInterfaceIpv6AccessConfigArgs{
					NetworkTier:              pulumi.String("string"),
					ExternalIpv6:             pulumi.String("string"),
					ExternalIpv6PrefixLength: pulumi.String("string"),
					Name:                     pulumi.String("string"),
					PublicPtrDomainName:      pulumi.String("string"),
				},
			},
			Ipv6AccessType:    pulumi.String("string"),
			Ipv6Address:       pulumi.String("string"),
			Name:              pulumi.String("string"),
			Network:           pulumi.String("string"),
			NetworkAttachment: pulumi.String("string"),
			NetworkIp:         pulumi.String("string"),
			NicType:           pulumi.String("string"),
			QueueCount:        pulumi.Int(0),
			StackType:         pulumi.String("string"),
			Subnetwork:        pulumi.String("string"),
			SubnetworkProject: pulumi.String("string"),
		},
	},
	ReservationAffinity: &compute.InstanceTemplateReservationAffinityArgs{
		Type: pulumi.String("string"),
		SpecificReservation: &compute.InstanceTemplateReservationAffinitySpecificReservationArgs{
			Key: pulumi.String("string"),
			Values: pulumi.StringArray{
				pulumi.String("string"),
			},
		},
	},
	ResourceManagerTags: pulumi.StringMap{
		"string": pulumi.String("string"),
	},
	ResourcePolicies: pulumi.String("string"),
	NamePrefix:       pulumi.String("string"),
	ServiceAccount: &compute.InstanceTemplateServiceAccountArgs{
		Scopes: pulumi.StringArray{
			pulumi.String("string"),
		},
		Email: pulumi.String("string"),
	},
	ShieldedInstanceConfig: &compute.InstanceTemplateShieldedInstanceConfigArgs{
		EnableIntegrityMonitoring: pulumi.Bool(false),
		EnableSecureBoot:          pulumi.Bool(false),
		EnableVtpm:                pulumi.Bool(false),
	},
	Tags: pulumi.StringArray{
		pulumi.String("string"),
	},
})
Copy
var instanceTemplateResource = new InstanceTemplate("instanceTemplateResource", InstanceTemplateArgs.builder()
    .disks(InstanceTemplateDiskArgs.builder()
        .autoDelete(false)
        .boot(false)
        .deviceName("string")
        .diskEncryptionKey(InstanceTemplateDiskDiskEncryptionKeyArgs.builder()
            .kmsKeySelfLink("string")
            .build())
        .diskName("string")
        .diskSizeGb(0)
        .diskType("string")
        .interface_("string")
        .labels(Map.of("string", "string"))
        .mode("string")
        .provisionedIops(0)
        .provisionedThroughput(0)
        .resourceManagerTags(Map.of("string", "string"))
        .resourcePolicies("string")
        .source("string")
        .sourceImage("string")
        .sourceImageEncryptionKey(InstanceTemplateDiskSourceImageEncryptionKeyArgs.builder()
            .kmsKeySelfLink("string")
            .kmsKeyServiceAccount("string")
            .build())
        .sourceSnapshot("string")
        .sourceSnapshotEncryptionKey(InstanceTemplateDiskSourceSnapshotEncryptionKeyArgs.builder()
            .kmsKeySelfLink("string")
            .kmsKeyServiceAccount("string")
            .build())
        .type("string")
        .build())
    .machineType("string")
    .name("string")
    .scheduling(InstanceTemplateSchedulingArgs.builder()
        .automaticRestart(false)
        .availabilityDomain(0)
        .gracefulShutdown(InstanceTemplateSchedulingGracefulShutdownArgs.builder()
            .enabled(false)
            .maxDuration(InstanceTemplateSchedulingGracefulShutdownMaxDurationArgs.builder()
                .seconds(0)
                .nanos(0)
                .build())
            .build())
        .hostErrorTimeoutSeconds(0)
        .instanceTerminationAction("string")
        .localSsdRecoveryTimeouts(InstanceTemplateSchedulingLocalSsdRecoveryTimeoutArgs.builder()
            .seconds(0)
            .nanos(0)
            .build())
        .maintenanceInterval("string")
        .maxRunDuration(InstanceTemplateSchedulingMaxRunDurationArgs.builder()
            .seconds(0)
            .nanos(0)
            .build())
        .minNodeCpus(0)
        .nodeAffinities(InstanceTemplateSchedulingNodeAffinityArgs.builder()
            .key("string")
            .operator("string")
            .values("string")
            .build())
        .onHostMaintenance("string")
        .onInstanceStopAction(InstanceTemplateSchedulingOnInstanceStopActionArgs.builder()
            .discardLocalSsd(false)
            .build())
        .preemptible(false)
        .provisioningModel("string")
        .terminationTime("string")
        .build())
    .confidentialInstanceConfig(InstanceTemplateConfidentialInstanceConfigArgs.builder()
        .confidentialInstanceType("string")
        .enableConfidentialCompute(false)
        .build())
    .enableDisplay(false)
    .guestAccelerators(InstanceTemplateGuestAcceleratorArgs.builder()
        .count(0)
        .type("string")
        .build())
    .instanceDescription("string")
    .keyRevocationActionType("string")
    .labels(Map.of("string", "string"))
    .canIpForward(false)
    .metadata(Map.of("string", "string"))
    .metadataStartupScript("string")
    .minCpuPlatform("string")
    .description("string")
    .advancedMachineFeatures(InstanceTemplateAdvancedMachineFeaturesArgs.builder()
        .enableNestedVirtualization(false)
        .enableUefiNetworking(false)
        .performanceMonitoringUnit("string")
        .threadsPerCore(0)
        .turboMode("string")
        .visibleCoreCount(0)
        .build())
    .region("string")
    .networkPerformanceConfig(InstanceTemplateNetworkPerformanceConfigArgs.builder()
        .totalEgressBandwidthTier("string")
        .build())
    .partnerMetadata(Map.of("string", "string"))
    .project("string")
    .networkInterfaces(InstanceTemplateNetworkInterfaceArgs.builder()
        .accessConfigs(InstanceTemplateNetworkInterfaceAccessConfigArgs.builder()
            .natIp("string")
            .networkTier("string")
            .publicPtrDomainName("string")
            .build())
        .aliasIpRanges(InstanceTemplateNetworkInterfaceAliasIpRangeArgs.builder()
            .ipCidrRange("string")
            .subnetworkRangeName("string")
            .build())
        .internalIpv6PrefixLength(0)
        .ipv6AccessConfigs(InstanceTemplateNetworkInterfaceIpv6AccessConfigArgs.builder()
            .networkTier("string")
            .externalIpv6("string")
            .externalIpv6PrefixLength("string")
            .name("string")
            .publicPtrDomainName("string")
            .build())
        .ipv6AccessType("string")
        .ipv6Address("string")
        .name("string")
        .network("string")
        .networkAttachment("string")
        .networkIp("string")
        .nicType("string")
        .queueCount(0)
        .stackType("string")
        .subnetwork("string")
        .subnetworkProject("string")
        .build())
    .reservationAffinity(InstanceTemplateReservationAffinityArgs.builder()
        .type("string")
        .specificReservation(InstanceTemplateReservationAffinitySpecificReservationArgs.builder()
            .key("string")
            .values("string")
            .build())
        .build())
    .resourceManagerTags(Map.of("string", "string"))
    .resourcePolicies("string")
    .namePrefix("string")
    .serviceAccount(InstanceTemplateServiceAccountArgs.builder()
        .scopes("string")
        .email("string")
        .build())
    .shieldedInstanceConfig(InstanceTemplateShieldedInstanceConfigArgs.builder()
        .enableIntegrityMonitoring(false)
        .enableSecureBoot(false)
        .enableVtpm(false)
        .build())
    .tags("string")
    .build());
Copy
instance_template_resource = gcp.compute.InstanceTemplate("instanceTemplateResource",
    disks=[{
        "auto_delete": False,
        "boot": False,
        "device_name": "string",
        "disk_encryption_key": {
            "kms_key_self_link": "string",
        },
        "disk_name": "string",
        "disk_size_gb": 0,
        "disk_type": "string",
        "interface": "string",
        "labels": {
            "string": "string",
        },
        "mode": "string",
        "provisioned_iops": 0,
        "provisioned_throughput": 0,
        "resource_manager_tags": {
            "string": "string",
        },
        "resource_policies": "string",
        "source": "string",
        "source_image": "string",
        "source_image_encryption_key": {
            "kms_key_self_link": "string",
            "kms_key_service_account": "string",
        },
        "source_snapshot": "string",
        "source_snapshot_encryption_key": {
            "kms_key_self_link": "string",
            "kms_key_service_account": "string",
        },
        "type": "string",
    }],
    machine_type="string",
    name="string",
    scheduling={
        "automatic_restart": False,
        "availability_domain": 0,
        "graceful_shutdown": {
            "enabled": False,
            "max_duration": {
                "seconds": 0,
                "nanos": 0,
            },
        },
        "host_error_timeout_seconds": 0,
        "instance_termination_action": "string",
        "local_ssd_recovery_timeouts": [{
            "seconds": 0,
            "nanos": 0,
        }],
        "maintenance_interval": "string",
        "max_run_duration": {
            "seconds": 0,
            "nanos": 0,
        },
        "min_node_cpus": 0,
        "node_affinities": [{
            "key": "string",
            "operator": "string",
            "values": ["string"],
        }],
        "on_host_maintenance": "string",
        "on_instance_stop_action": {
            "discard_local_ssd": False,
        },
        "preemptible": False,
        "provisioning_model": "string",
        "termination_time": "string",
    },
    confidential_instance_config={
        "confidential_instance_type": "string",
        "enable_confidential_compute": False,
    },
    enable_display=False,
    guest_accelerators=[{
        "count": 0,
        "type": "string",
    }],
    instance_description="string",
    key_revocation_action_type="string",
    labels={
        "string": "string",
    },
    can_ip_forward=False,
    metadata={
        "string": "string",
    },
    metadata_startup_script="string",
    min_cpu_platform="string",
    description="string",
    advanced_machine_features={
        "enable_nested_virtualization": False,
        "enable_uefi_networking": False,
        "performance_monitoring_unit": "string",
        "threads_per_core": 0,
        "turbo_mode": "string",
        "visible_core_count": 0,
    },
    region="string",
    network_performance_config={
        "total_egress_bandwidth_tier": "string",
    },
    partner_metadata={
        "string": "string",
    },
    project="string",
    network_interfaces=[{
        "access_configs": [{
            "nat_ip": "string",
            "network_tier": "string",
            "public_ptr_domain_name": "string",
        }],
        "alias_ip_ranges": [{
            "ip_cidr_range": "string",
            "subnetwork_range_name": "string",
        }],
        "internal_ipv6_prefix_length": 0,
        "ipv6_access_configs": [{
            "network_tier": "string",
            "external_ipv6": "string",
            "external_ipv6_prefix_length": "string",
            "name": "string",
            "public_ptr_domain_name": "string",
        }],
        "ipv6_access_type": "string",
        "ipv6_address": "string",
        "name": "string",
        "network": "string",
        "network_attachment": "string",
        "network_ip": "string",
        "nic_type": "string",
        "queue_count": 0,
        "stack_type": "string",
        "subnetwork": "string",
        "subnetwork_project": "string",
    }],
    reservation_affinity={
        "type": "string",
        "specific_reservation": {
            "key": "string",
            "values": ["string"],
        },
    },
    resource_manager_tags={
        "string": "string",
    },
    resource_policies="string",
    name_prefix="string",
    service_account={
        "scopes": ["string"],
        "email": "string",
    },
    shielded_instance_config={
        "enable_integrity_monitoring": False,
        "enable_secure_boot": False,
        "enable_vtpm": False,
    },
    tags=["string"])
Copy
const instanceTemplateResource = new gcp.compute.InstanceTemplate("instanceTemplateResource", {
    disks: [{
        autoDelete: false,
        boot: false,
        deviceName: "string",
        diskEncryptionKey: {
            kmsKeySelfLink: "string",
        },
        diskName: "string",
        diskSizeGb: 0,
        diskType: "string",
        "interface": "string",
        labels: {
            string: "string",
        },
        mode: "string",
        provisionedIops: 0,
        provisionedThroughput: 0,
        resourceManagerTags: {
            string: "string",
        },
        resourcePolicies: "string",
        source: "string",
        sourceImage: "string",
        sourceImageEncryptionKey: {
            kmsKeySelfLink: "string",
            kmsKeyServiceAccount: "string",
        },
        sourceSnapshot: "string",
        sourceSnapshotEncryptionKey: {
            kmsKeySelfLink: "string",
            kmsKeyServiceAccount: "string",
        },
        type: "string",
    }],
    machineType: "string",
    name: "string",
    scheduling: {
        automaticRestart: false,
        availabilityDomain: 0,
        gracefulShutdown: {
            enabled: false,
            maxDuration: {
                seconds: 0,
                nanos: 0,
            },
        },
        hostErrorTimeoutSeconds: 0,
        instanceTerminationAction: "string",
        localSsdRecoveryTimeouts: [{
            seconds: 0,
            nanos: 0,
        }],
        maintenanceInterval: "string",
        maxRunDuration: {
            seconds: 0,
            nanos: 0,
        },
        minNodeCpus: 0,
        nodeAffinities: [{
            key: "string",
            operator: "string",
            values: ["string"],
        }],
        onHostMaintenance: "string",
        onInstanceStopAction: {
            discardLocalSsd: false,
        },
        preemptible: false,
        provisioningModel: "string",
        terminationTime: "string",
    },
    confidentialInstanceConfig: {
        confidentialInstanceType: "string",
        enableConfidentialCompute: false,
    },
    enableDisplay: false,
    guestAccelerators: [{
        count: 0,
        type: "string",
    }],
    instanceDescription: "string",
    keyRevocationActionType: "string",
    labels: {
        string: "string",
    },
    canIpForward: false,
    metadata: {
        string: "string",
    },
    metadataStartupScript: "string",
    minCpuPlatform: "string",
    description: "string",
    advancedMachineFeatures: {
        enableNestedVirtualization: false,
        enableUefiNetworking: false,
        performanceMonitoringUnit: "string",
        threadsPerCore: 0,
        turboMode: "string",
        visibleCoreCount: 0,
    },
    region: "string",
    networkPerformanceConfig: {
        totalEgressBandwidthTier: "string",
    },
    partnerMetadata: {
        string: "string",
    },
    project: "string",
    networkInterfaces: [{
        accessConfigs: [{
            natIp: "string",
            networkTier: "string",
            publicPtrDomainName: "string",
        }],
        aliasIpRanges: [{
            ipCidrRange: "string",
            subnetworkRangeName: "string",
        }],
        internalIpv6PrefixLength: 0,
        ipv6AccessConfigs: [{
            networkTier: "string",
            externalIpv6: "string",
            externalIpv6PrefixLength: "string",
            name: "string",
            publicPtrDomainName: "string",
        }],
        ipv6AccessType: "string",
        ipv6Address: "string",
        name: "string",
        network: "string",
        networkAttachment: "string",
        networkIp: "string",
        nicType: "string",
        queueCount: 0,
        stackType: "string",
        subnetwork: "string",
        subnetworkProject: "string",
    }],
    reservationAffinity: {
        type: "string",
        specificReservation: {
            key: "string",
            values: ["string"],
        },
    },
    resourceManagerTags: {
        string: "string",
    },
    resourcePolicies: "string",
    namePrefix: "string",
    serviceAccount: {
        scopes: ["string"],
        email: "string",
    },
    shieldedInstanceConfig: {
        enableIntegrityMonitoring: false,
        enableSecureBoot: false,
        enableVtpm: false,
    },
    tags: ["string"],
});
Copy
type: gcp:compute:InstanceTemplate
properties:
    advancedMachineFeatures:
        enableNestedVirtualization: false
        enableUefiNetworking: false
        performanceMonitoringUnit: string
        threadsPerCore: 0
        turboMode: string
        visibleCoreCount: 0
    canIpForward: false
    confidentialInstanceConfig:
        confidentialInstanceType: string
        enableConfidentialCompute: false
    description: string
    disks:
        - autoDelete: false
          boot: false
          deviceName: string
          diskEncryptionKey:
            kmsKeySelfLink: string
          diskName: string
          diskSizeGb: 0
          diskType: string
          interface: string
          labels:
            string: string
          mode: string
          provisionedIops: 0
          provisionedThroughput: 0
          resourceManagerTags:
            string: string
          resourcePolicies: string
          source: string
          sourceImage: string
          sourceImageEncryptionKey:
            kmsKeySelfLink: string
            kmsKeyServiceAccount: string
          sourceSnapshot: string
          sourceSnapshotEncryptionKey:
            kmsKeySelfLink: string
            kmsKeyServiceAccount: string
          type: string
    enableDisplay: false
    guestAccelerators:
        - count: 0
          type: string
    instanceDescription: string
    keyRevocationActionType: string
    labels:
        string: string
    machineType: string
    metadata:
        string: string
    metadataStartupScript: string
    minCpuPlatform: string
    name: string
    namePrefix: string
    networkInterfaces:
        - accessConfigs:
            - natIp: string
              networkTier: string
              publicPtrDomainName: string
          aliasIpRanges:
            - ipCidrRange: string
              subnetworkRangeName: string
          internalIpv6PrefixLength: 0
          ipv6AccessConfigs:
            - externalIpv6: string
              externalIpv6PrefixLength: string
              name: string
              networkTier: string
              publicPtrDomainName: string
          ipv6AccessType: string
          ipv6Address: string
          name: string
          network: string
          networkAttachment: string
          networkIp: string
          nicType: string
          queueCount: 0
          stackType: string
          subnetwork: string
          subnetworkProject: string
    networkPerformanceConfig:
        totalEgressBandwidthTier: string
    partnerMetadata:
        string: string
    project: string
    region: string
    reservationAffinity:
        specificReservation:
            key: string
            values:
                - string
        type: string
    resourceManagerTags:
        string: string
    resourcePolicies: string
    scheduling:
        automaticRestart: false
        availabilityDomain: 0
        gracefulShutdown:
            enabled: false
            maxDuration:
                nanos: 0
                seconds: 0
        hostErrorTimeoutSeconds: 0
        instanceTerminationAction: string
        localSsdRecoveryTimeouts:
            - nanos: 0
              seconds: 0
        maintenanceInterval: string
        maxRunDuration:
            nanos: 0
            seconds: 0
        minNodeCpus: 0
        nodeAffinities:
            - key: string
              operator: string
              values:
                - string
        onHostMaintenance: string
        onInstanceStopAction:
            discardLocalSsd: false
        preemptible: false
        provisioningModel: string
        terminationTime: string
    serviceAccount:
        email: string
        scopes:
            - string
    shieldedInstanceConfig:
        enableIntegrityMonitoring: false
        enableSecureBoot: false
        enableVtpm: false
    tags:
        - string
Copy

InstanceTemplate Resource Properties

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

Inputs

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

The InstanceTemplate resource accepts the following input properties:

Disks
This property is required.
Changes to this property will trigger replacement.
List<InstanceTemplateDisk>
Disks to attach to instances created from this template. This can be specified multiple times for multiple disks. Structure is documented below.
MachineType
This property is required.
Changes to this property will trigger replacement.
string
The machine type to create. To create a machine with a custom type (such as extended memory), format the value like custom-VCPUS-MEM_IN_MB like custom-6-20480 for 6 vCPU and 20GB of RAM.
AdvancedMachineFeatures Changes to this property will trigger replacement. InstanceTemplateAdvancedMachineFeatures
Configure Nested Virtualisation and Simultaneous Hyper Threading on this VM. Structure is documented below
CanIpForward Changes to this property will trigger replacement. bool
Whether to allow sending and receiving of packets with non-matching source or destination IPs. This defaults to false.
ConfidentialInstanceConfig Changes to this property will trigger replacement. InstanceTemplateConfidentialInstanceConfig
Enable Confidential Mode on this VM. Structure is documented below
Description Changes to this property will trigger replacement. string
A brief description of this resource.
EnableDisplay Changes to this property will trigger replacement. bool
Enable Virtual Displays on this instance. Note: allow_stopping_for_update must be set to true in order to update this field.
GuestAccelerators Changes to this property will trigger replacement. List<InstanceTemplateGuestAccelerator>
List of the type and count of accelerator cards attached to the instance. Structure documented below.
InstanceDescription Changes to this property will trigger replacement. string
A brief description to use for instances created from this template.
KeyRevocationActionType Changes to this property will trigger replacement. string
Action to be taken when a customer's encryption key is revoked. Supports STOP and NONE, with NONE being the default.
Labels Dictionary<string, string>

A set of key/value label pairs to assign to instances created from this template.

Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.

Metadata Changes to this property will trigger replacement. Dictionary<string, string>
Metadata key/value pairs to make available from within instances created from this template.
MetadataStartupScript Changes to this property will trigger replacement. string
An alternative to using the startup-script metadata key, mostly to match the compute_instance resource. This replaces the startup-script metadata key on the created instance and thus the two mechanisms are not allowed to be used simultaneously.
MinCpuPlatform Changes to this property will trigger replacement. string
Specifies a minimum CPU platform. Applicable values are the friendly names of CPU platforms, such as Intel Haswell or Intel Skylake. See the complete list here.
Name Changes to this property will trigger replacement. string
The name of the instance template. If you leave this blank, the provider will auto-generate a unique name.
NamePrefix Changes to this property will trigger replacement. string

Creates a unique name beginning with the specified prefix. Conflicts with name. Max length is 54 characters. Prefixes with lengths longer than 37 characters will use a shortened UUID that will be more prone to collisions.

Resulting name for a name_prefix <= 37 characters: name_prefix + YYYYmmddHHSSssss + 8 digit incremental counter Resulting name for a name_prefix 38 - 54 characters: name_prefix + YYmmdd + 3 digit incremental counter

NetworkInterfaces Changes to this property will trigger replacement. List<InstanceTemplateNetworkInterface>
Networks to attach to instances created from this template. This can be specified multiple times for multiple networks. Structure is documented below.
NetworkPerformanceConfig Changes to this property will trigger replacement. InstanceTemplateNetworkPerformanceConfig
(Optional, Configures network performance settings for the instance created from the template. 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.
PartnerMetadata Dictionary<string, string>
Beta key/value pair represents partner metadata assigned to instance template where key represent a defined namespace and value is a json string represent the entries associted with the namespace.
Project Changes to this property will trigger replacement. string
The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
Region Changes to this property will trigger replacement. string
An instance template is a global resource that is not bound to a zone or a region. However, you can still specify some regional resources in an instance template, which restricts the template to the region where that resource resides. For example, a custom subnetwork resource is tied to a specific region. Defaults to the region of the Provider if no value is given.
ReservationAffinity Changes to this property will trigger replacement. InstanceTemplateReservationAffinity
Specifies the reservations that this instance can consume from. Structure is documented below.
ResourceManagerTags Changes to this property will trigger replacement. Dictionary<string, string>
A set of key/value resource manager tag pairs to bind to the instances. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456.
ResourcePolicies Changes to this property will trigger replacement. 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 Changes to this property will trigger replacement. InstanceTemplateScheduling
The scheduling strategy to use. More details about this configuration option are detailed below.
ServiceAccount Changes to this property will trigger replacement. InstanceTemplateServiceAccount
Service account to attach to the instance. Structure is documented below.
ShieldedInstanceConfig Changes to this property will trigger replacement. InstanceTemplateShieldedInstanceConfig
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.
Tags Changes to this property will trigger replacement. List<string>
Tags to attach to the instance.
Disks
This property is required.
Changes to this property will trigger replacement.
[]InstanceTemplateDiskArgs
Disks to attach to instances created from this template. This can be specified multiple times for multiple disks. Structure is documented below.
MachineType
This property is required.
Changes to this property will trigger replacement.
string
The machine type to create. To create a machine with a custom type (such as extended memory), format the value like custom-VCPUS-MEM_IN_MB like custom-6-20480 for 6 vCPU and 20GB of RAM.
AdvancedMachineFeatures Changes to this property will trigger replacement. InstanceTemplateAdvancedMachineFeaturesArgs
Configure Nested Virtualisation and Simultaneous Hyper Threading on this VM. Structure is documented below
CanIpForward Changes to this property will trigger replacement. bool
Whether to allow sending and receiving of packets with non-matching source or destination IPs. This defaults to false.
ConfidentialInstanceConfig Changes to this property will trigger replacement. InstanceTemplateConfidentialInstanceConfigArgs
Enable Confidential Mode on this VM. Structure is documented below
Description Changes to this property will trigger replacement. string
A brief description of this resource.
EnableDisplay Changes to this property will trigger replacement. bool
Enable Virtual Displays on this instance. Note: allow_stopping_for_update must be set to true in order to update this field.
GuestAccelerators Changes to this property will trigger replacement. []InstanceTemplateGuestAcceleratorArgs
List of the type and count of accelerator cards attached to the instance. Structure documented below.
InstanceDescription Changes to this property will trigger replacement. string
A brief description to use for instances created from this template.
KeyRevocationActionType Changes to this property will trigger replacement. string
Action to be taken when a customer's encryption key is revoked. Supports STOP and NONE, with NONE being the default.
Labels map[string]string

A set of key/value label pairs to assign to instances created from this template.

Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.

Metadata Changes to this property will trigger replacement. map[string]string
Metadata key/value pairs to make available from within instances created from this template.
MetadataStartupScript Changes to this property will trigger replacement. string
An alternative to using the startup-script metadata key, mostly to match the compute_instance resource. This replaces the startup-script metadata key on the created instance and thus the two mechanisms are not allowed to be used simultaneously.
MinCpuPlatform Changes to this property will trigger replacement. string
Specifies a minimum CPU platform. Applicable values are the friendly names of CPU platforms, such as Intel Haswell or Intel Skylake. See the complete list here.
Name Changes to this property will trigger replacement. string
The name of the instance template. If you leave this blank, the provider will auto-generate a unique name.
NamePrefix Changes to this property will trigger replacement. string

Creates a unique name beginning with the specified prefix. Conflicts with name. Max length is 54 characters. Prefixes with lengths longer than 37 characters will use a shortened UUID that will be more prone to collisions.

Resulting name for a name_prefix <= 37 characters: name_prefix + YYYYmmddHHSSssss + 8 digit incremental counter Resulting name for a name_prefix 38 - 54 characters: name_prefix + YYmmdd + 3 digit incremental counter

NetworkInterfaces Changes to this property will trigger replacement. []InstanceTemplateNetworkInterfaceArgs
Networks to attach to instances created from this template. This can be specified multiple times for multiple networks. Structure is documented below.
NetworkPerformanceConfig Changes to this property will trigger replacement. InstanceTemplateNetworkPerformanceConfigArgs
(Optional, Configures network performance settings for the instance created from the template. 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.
PartnerMetadata map[string]string
Beta key/value pair represents partner metadata assigned to instance template where key represent a defined namespace and value is a json string represent the entries associted with the namespace.
Project Changes to this property will trigger replacement. string
The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
Region Changes to this property will trigger replacement. string
An instance template is a global resource that is not bound to a zone or a region. However, you can still specify some regional resources in an instance template, which restricts the template to the region where that resource resides. For example, a custom subnetwork resource is tied to a specific region. Defaults to the region of the Provider if no value is given.
ReservationAffinity Changes to this property will trigger replacement. InstanceTemplateReservationAffinityArgs
Specifies the reservations that this instance can consume from. Structure is documented below.
ResourceManagerTags Changes to this property will trigger replacement. map[string]string
A set of key/value resource manager tag pairs to bind to the instances. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456.
ResourcePolicies Changes to this property will trigger replacement. 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 Changes to this property will trigger replacement. InstanceTemplateSchedulingArgs
The scheduling strategy to use. More details about this configuration option are detailed below.
ServiceAccount Changes to this property will trigger replacement. InstanceTemplateServiceAccountArgs
Service account to attach to the instance. Structure is documented below.
ShieldedInstanceConfig Changes to this property will trigger replacement. InstanceTemplateShieldedInstanceConfigArgs
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.
Tags Changes to this property will trigger replacement. []string
Tags to attach to the instance.
disks
This property is required.
Changes to this property will trigger replacement.
List<InstanceTemplateDisk>
Disks to attach to instances created from this template. This can be specified multiple times for multiple disks. Structure is documented below.
machineType
This property is required.
Changes to this property will trigger replacement.
String
The machine type to create. To create a machine with a custom type (such as extended memory), format the value like custom-VCPUS-MEM_IN_MB like custom-6-20480 for 6 vCPU and 20GB of RAM.
advancedMachineFeatures Changes to this property will trigger replacement. InstanceTemplateAdvancedMachineFeatures
Configure Nested Virtualisation and Simultaneous Hyper Threading on this VM. Structure is documented below
canIpForward Changes to this property will trigger replacement. Boolean
Whether to allow sending and receiving of packets with non-matching source or destination IPs. This defaults to false.
confidentialInstanceConfig Changes to this property will trigger replacement. InstanceTemplateConfidentialInstanceConfig
Enable Confidential Mode on this VM. Structure is documented below
description Changes to this property will trigger replacement. String
A brief description of this resource.
enableDisplay Changes to this property will trigger replacement. Boolean
Enable Virtual Displays on this instance. Note: allow_stopping_for_update must be set to true in order to update this field.
guestAccelerators Changes to this property will trigger replacement. List<InstanceTemplateGuestAccelerator>
List of the type and count of accelerator cards attached to the instance. Structure documented below.
instanceDescription Changes to this property will trigger replacement. String
A brief description to use for instances created from this template.
keyRevocationActionType Changes to this property will trigger replacement. String
Action to be taken when a customer's encryption key is revoked. Supports STOP and NONE, with NONE being the default.
labels Map<String,String>

A set of key/value label pairs to assign to instances created from this template.

Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.

metadata Changes to this property will trigger replacement. Map<String,String>
Metadata key/value pairs to make available from within instances created from this template.
metadataStartupScript Changes to this property will trigger replacement. String
An alternative to using the startup-script metadata key, mostly to match the compute_instance resource. This replaces the startup-script metadata key on the created instance and thus the two mechanisms are not allowed to be used simultaneously.
minCpuPlatform Changes to this property will trigger replacement. String
Specifies a minimum CPU platform. Applicable values are the friendly names of CPU platforms, such as Intel Haswell or Intel Skylake. See the complete list here.
name Changes to this property will trigger replacement. String
The name of the instance template. If you leave this blank, the provider will auto-generate a unique name.
namePrefix Changes to this property will trigger replacement. String

Creates a unique name beginning with the specified prefix. Conflicts with name. Max length is 54 characters. Prefixes with lengths longer than 37 characters will use a shortened UUID that will be more prone to collisions.

Resulting name for a name_prefix <= 37 characters: name_prefix + YYYYmmddHHSSssss + 8 digit incremental counter Resulting name for a name_prefix 38 - 54 characters: name_prefix + YYmmdd + 3 digit incremental counter

networkInterfaces Changes to this property will trigger replacement. List<InstanceTemplateNetworkInterface>
Networks to attach to instances created from this template. This can be specified multiple times for multiple networks. Structure is documented below.
networkPerformanceConfig Changes to this property will trigger replacement. InstanceTemplateNetworkPerformanceConfig
(Optional, Configures network performance settings for the instance created from the template. 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.
partnerMetadata Map<String,String>
Beta key/value pair represents partner metadata assigned to instance template where key represent a defined namespace and value is a json string represent the entries associted with the namespace.
project Changes to this property will trigger replacement. String
The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
region Changes to this property will trigger replacement. String
An instance template is a global resource that is not bound to a zone or a region. However, you can still specify some regional resources in an instance template, which restricts the template to the region where that resource resides. For example, a custom subnetwork resource is tied to a specific region. Defaults to the region of the Provider if no value is given.
reservationAffinity Changes to this property will trigger replacement. InstanceTemplateReservationAffinity
Specifies the reservations that this instance can consume from. Structure is documented below.
resourceManagerTags Changes to this property will trigger replacement. Map<String,String>
A set of key/value resource manager tag pairs to bind to the instances. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456.
resourcePolicies Changes to this property will trigger replacement. 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 Changes to this property will trigger replacement. InstanceTemplateScheduling
The scheduling strategy to use. More details about this configuration option are detailed below.
serviceAccount Changes to this property will trigger replacement. InstanceTemplateServiceAccount
Service account to attach to the instance. Structure is documented below.
shieldedInstanceConfig Changes to this property will trigger replacement. InstanceTemplateShieldedInstanceConfig
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.
tags Changes to this property will trigger replacement. List<String>
Tags to attach to the instance.
disks
This property is required.
Changes to this property will trigger replacement.
InstanceTemplateDisk[]
Disks to attach to instances created from this template. This can be specified multiple times for multiple disks. Structure is documented below.
machineType
This property is required.
Changes to this property will trigger replacement.
string
The machine type to create. To create a machine with a custom type (such as extended memory), format the value like custom-VCPUS-MEM_IN_MB like custom-6-20480 for 6 vCPU and 20GB of RAM.
advancedMachineFeatures Changes to this property will trigger replacement. InstanceTemplateAdvancedMachineFeatures
Configure Nested Virtualisation and Simultaneous Hyper Threading on this VM. Structure is documented below
canIpForward Changes to this property will trigger replacement. boolean
Whether to allow sending and receiving of packets with non-matching source or destination IPs. This defaults to false.
confidentialInstanceConfig Changes to this property will trigger replacement. InstanceTemplateConfidentialInstanceConfig
Enable Confidential Mode on this VM. Structure is documented below
description Changes to this property will trigger replacement. string
A brief description of this resource.
enableDisplay Changes to this property will trigger replacement. boolean
Enable Virtual Displays on this instance. Note: allow_stopping_for_update must be set to true in order to update this field.
guestAccelerators Changes to this property will trigger replacement. InstanceTemplateGuestAccelerator[]
List of the type and count of accelerator cards attached to the instance. Structure documented below.
instanceDescription Changes to this property will trigger replacement. string
A brief description to use for instances created from this template.
keyRevocationActionType Changes to this property will trigger replacement. string
Action to be taken when a customer's encryption key is revoked. Supports STOP and NONE, with NONE being the default.
labels {[key: string]: string}

A set of key/value label pairs to assign to instances created from this template.

Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.

metadata Changes to this property will trigger replacement. {[key: string]: string}
Metadata key/value pairs to make available from within instances created from this template.
metadataStartupScript Changes to this property will trigger replacement. string
An alternative to using the startup-script metadata key, mostly to match the compute_instance resource. This replaces the startup-script metadata key on the created instance and thus the two mechanisms are not allowed to be used simultaneously.
minCpuPlatform Changes to this property will trigger replacement. string
Specifies a minimum CPU platform. Applicable values are the friendly names of CPU platforms, such as Intel Haswell or Intel Skylake. See the complete list here.
name Changes to this property will trigger replacement. string
The name of the instance template. If you leave this blank, the provider will auto-generate a unique name.
namePrefix Changes to this property will trigger replacement. string

Creates a unique name beginning with the specified prefix. Conflicts with name. Max length is 54 characters. Prefixes with lengths longer than 37 characters will use a shortened UUID that will be more prone to collisions.

Resulting name for a name_prefix <= 37 characters: name_prefix + YYYYmmddHHSSssss + 8 digit incremental counter Resulting name for a name_prefix 38 - 54 characters: name_prefix + YYmmdd + 3 digit incremental counter

networkInterfaces Changes to this property will trigger replacement. InstanceTemplateNetworkInterface[]
Networks to attach to instances created from this template. This can be specified multiple times for multiple networks. Structure is documented below.
networkPerformanceConfig Changes to this property will trigger replacement. InstanceTemplateNetworkPerformanceConfig
(Optional, Configures network performance settings for the instance created from the template. 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.
partnerMetadata {[key: string]: string}
Beta key/value pair represents partner metadata assigned to instance template where key represent a defined namespace and value is a json string represent the entries associted with the namespace.
project Changes to this property will trigger replacement. string
The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
region Changes to this property will trigger replacement. string
An instance template is a global resource that is not bound to a zone or a region. However, you can still specify some regional resources in an instance template, which restricts the template to the region where that resource resides. For example, a custom subnetwork resource is tied to a specific region. Defaults to the region of the Provider if no value is given.
reservationAffinity Changes to this property will trigger replacement. InstanceTemplateReservationAffinity
Specifies the reservations that this instance can consume from. Structure is documented below.
resourceManagerTags Changes to this property will trigger replacement. {[key: string]: string}
A set of key/value resource manager tag pairs to bind to the instances. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456.
resourcePolicies Changes to this property will trigger replacement. 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 Changes to this property will trigger replacement. InstanceTemplateScheduling
The scheduling strategy to use. More details about this configuration option are detailed below.
serviceAccount Changes to this property will trigger replacement. InstanceTemplateServiceAccount
Service account to attach to the instance. Structure is documented below.
shieldedInstanceConfig Changes to this property will trigger replacement. InstanceTemplateShieldedInstanceConfig
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.
tags Changes to this property will trigger replacement. string[]
Tags to attach to the instance.
disks
This property is required.
Changes to this property will trigger replacement.
Sequence[InstanceTemplateDiskArgs]
Disks to attach to instances created from this template. This can be specified multiple times for multiple disks. Structure is documented below.
machine_type
This property is required.
Changes to this property will trigger replacement.
str
The machine type to create. To create a machine with a custom type (such as extended memory), format the value like custom-VCPUS-MEM_IN_MB like custom-6-20480 for 6 vCPU and 20GB of RAM.
advanced_machine_features Changes to this property will trigger replacement. InstanceTemplateAdvancedMachineFeaturesArgs
Configure Nested Virtualisation and Simultaneous Hyper Threading on this VM. Structure is documented below
can_ip_forward Changes to this property will trigger replacement. bool
Whether to allow sending and receiving of packets with non-matching source or destination IPs. This defaults to false.
confidential_instance_config Changes to this property will trigger replacement. InstanceTemplateConfidentialInstanceConfigArgs
Enable Confidential Mode on this VM. Structure is documented below
description Changes to this property will trigger replacement. str
A brief description of this resource.
enable_display Changes to this property will trigger replacement. bool
Enable Virtual Displays on this instance. Note: allow_stopping_for_update must be set to true in order to update this field.
guest_accelerators Changes to this property will trigger replacement. Sequence[InstanceTemplateGuestAcceleratorArgs]
List of the type and count of accelerator cards attached to the instance. Structure documented below.
instance_description Changes to this property will trigger replacement. str
A brief description to use for instances created from this template.
key_revocation_action_type Changes to this property will trigger replacement. str
Action to be taken when a customer's encryption key is revoked. Supports STOP and NONE, with NONE being the default.
labels Mapping[str, str]

A set of key/value label pairs to assign to instances created from this template.

Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.

metadata Changes to this property will trigger replacement. Mapping[str, str]
Metadata key/value pairs to make available from within instances created from this template.
metadata_startup_script Changes to this property will trigger replacement. str
An alternative to using the startup-script metadata key, mostly to match the compute_instance resource. This replaces the startup-script metadata key on the created instance and thus the two mechanisms are not allowed to be used simultaneously.
min_cpu_platform Changes to this property will trigger replacement. str
Specifies a minimum CPU platform. Applicable values are the friendly names of CPU platforms, such as Intel Haswell or Intel Skylake. See the complete list here.
name Changes to this property will trigger replacement. str
The name of the instance template. If you leave this blank, the provider will auto-generate a unique name.
name_prefix Changes to this property will trigger replacement. str

Creates a unique name beginning with the specified prefix. Conflicts with name. Max length is 54 characters. Prefixes with lengths longer than 37 characters will use a shortened UUID that will be more prone to collisions.

Resulting name for a name_prefix <= 37 characters: name_prefix + YYYYmmddHHSSssss + 8 digit incremental counter Resulting name for a name_prefix 38 - 54 characters: name_prefix + YYmmdd + 3 digit incremental counter

network_interfaces Changes to this property will trigger replacement. Sequence[InstanceTemplateNetworkInterfaceArgs]
Networks to attach to instances created from this template. This can be specified multiple times for multiple networks. Structure is documented below.
network_performance_config Changes to this property will trigger replacement. InstanceTemplateNetworkPerformanceConfigArgs
(Optional, Configures network performance settings for the instance created from the template. 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.
partner_metadata Mapping[str, str]
Beta key/value pair represents partner metadata assigned to instance template where key represent a defined namespace and value is a json string represent the entries associted with the namespace.
project Changes to this property will trigger replacement. str
The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
region Changes to this property will trigger replacement. str
An instance template is a global resource that is not bound to a zone or a region. However, you can still specify some regional resources in an instance template, which restricts the template to the region where that resource resides. For example, a custom subnetwork resource is tied to a specific region. Defaults to the region of the Provider if no value is given.
reservation_affinity Changes to this property will trigger replacement. InstanceTemplateReservationAffinityArgs
Specifies the reservations that this instance can consume from. Structure is documented below.
resource_manager_tags Changes to this property will trigger replacement. Mapping[str, str]
A set of key/value resource manager tag pairs to bind to the instances. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456.
resource_policies Changes to this property will trigger replacement. 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 Changes to this property will trigger replacement. InstanceTemplateSchedulingArgs
The scheduling strategy to use. More details about this configuration option are detailed below.
service_account Changes to this property will trigger replacement. InstanceTemplateServiceAccountArgs
Service account to attach to the instance. Structure is documented below.
shielded_instance_config Changes to this property will trigger replacement. InstanceTemplateShieldedInstanceConfigArgs
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.
tags Changes to this property will trigger replacement. Sequence[str]
Tags to attach to the instance.
disks
This property is required.
Changes to this property will trigger replacement.
List<Property Map>
Disks to attach to instances created from this template. This can be specified multiple times for multiple disks. Structure is documented below.
machineType
This property is required.
Changes to this property will trigger replacement.
String
The machine type to create. To create a machine with a custom type (such as extended memory), format the value like custom-VCPUS-MEM_IN_MB like custom-6-20480 for 6 vCPU and 20GB of RAM.
advancedMachineFeatures Changes to this property will trigger replacement. Property Map
Configure Nested Virtualisation and Simultaneous Hyper Threading on this VM. Structure is documented below
canIpForward Changes to this property will trigger replacement. Boolean
Whether to allow sending and receiving of packets with non-matching source or destination IPs. This defaults to false.
confidentialInstanceConfig Changes to this property will trigger replacement. Property Map
Enable Confidential Mode on this VM. Structure is documented below
description Changes to this property will trigger replacement. String
A brief description of this resource.
enableDisplay Changes to this property will trigger replacement. Boolean
Enable Virtual Displays on this instance. Note: allow_stopping_for_update must be set to true in order to update this field.
guestAccelerators Changes to this property will trigger replacement. List<Property Map>
List of the type and count of accelerator cards attached to the instance. Structure documented below.
instanceDescription Changes to this property will trigger replacement. String
A brief description to use for instances created from this template.
keyRevocationActionType Changes to this property will trigger replacement. String
Action to be taken when a customer's encryption key is revoked. Supports STOP and NONE, with NONE being the default.
labels Map<String>

A set of key/value label pairs to assign to instances created from this template.

Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.

metadata Changes to this property will trigger replacement. Map<String>
Metadata key/value pairs to make available from within instances created from this template.
metadataStartupScript Changes to this property will trigger replacement. String
An alternative to using the startup-script metadata key, mostly to match the compute_instance resource. This replaces the startup-script metadata key on the created instance and thus the two mechanisms are not allowed to be used simultaneously.
minCpuPlatform Changes to this property will trigger replacement. String
Specifies a minimum CPU platform. Applicable values are the friendly names of CPU platforms, such as Intel Haswell or Intel Skylake. See the complete list here.
name Changes to this property will trigger replacement. String
The name of the instance template. If you leave this blank, the provider will auto-generate a unique name.
namePrefix Changes to this property will trigger replacement. String

Creates a unique name beginning with the specified prefix. Conflicts with name. Max length is 54 characters. Prefixes with lengths longer than 37 characters will use a shortened UUID that will be more prone to collisions.

Resulting name for a name_prefix <= 37 characters: name_prefix + YYYYmmddHHSSssss + 8 digit incremental counter Resulting name for a name_prefix 38 - 54 characters: name_prefix + YYmmdd + 3 digit incremental counter

networkInterfaces Changes to this property will trigger replacement. List<Property Map>
Networks to attach to instances created from this template. This can be specified multiple times for multiple networks. Structure is documented below.
networkPerformanceConfig Changes to this property will trigger replacement. Property Map
(Optional, Configures network performance settings for the instance created from the template. 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.
partnerMetadata Map<String>
Beta key/value pair represents partner metadata assigned to instance template where key represent a defined namespace and value is a json string represent the entries associted with the namespace.
project Changes to this property will trigger replacement. String
The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
region Changes to this property will trigger replacement. String
An instance template is a global resource that is not bound to a zone or a region. However, you can still specify some regional resources in an instance template, which restricts the template to the region where that resource resides. For example, a custom subnetwork resource is tied to a specific region. Defaults to the region of the Provider if no value is given.
reservationAffinity Changes to this property will trigger replacement. Property Map
Specifies the reservations that this instance can consume from. Structure is documented below.
resourceManagerTags Changes to this property will trigger replacement. Map<String>
A set of key/value resource manager tag pairs to bind to the instances. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456.
resourcePolicies Changes to this property will trigger replacement. 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 Changes to this property will trigger replacement. Property Map
The scheduling strategy to use. More details about this configuration option are detailed below.
serviceAccount Changes to this property will trigger replacement. Property Map
Service account to attach to the instance. Structure is documented below.
shieldedInstanceConfig Changes to this property will trigger replacement. 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.
tags Changes to this property will trigger replacement. List<String>
Tags to attach to the instance.

Outputs

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

CreationTimestamp string
Creation timestamp in RFC3339 text format.
EffectiveLabels Dictionary<string, string>
All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
Id string
The provider-assigned unique ID for this managed resource.
MetadataFingerprint string
The unique fingerprint of the metadata.
PulumiLabels Dictionary<string, string>
The combination of labels configured directly on the resource and default labels configured on the provider.
SelfLink string
The URI of the created resource.
SelfLinkUnique string
A special URI of the created resource that uniquely identifies this instance template with the following format: projects/{{project}}/global/instanceTemplates/{{name}}?uniqueId={{uniqueId}} Referencing an instance template via this attribute prevents Time of Check to Time of Use attacks when the instance template resides in a shared/untrusted environment.
TagsFingerprint string
The unique fingerprint of the tags.
CreationTimestamp string
Creation timestamp in RFC3339 text format.
EffectiveLabels map[string]string
All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
Id string
The provider-assigned unique ID for this managed resource.
MetadataFingerprint string
The unique fingerprint of the metadata.
PulumiLabels map[string]string
The combination of labels configured directly on the resource and default labels configured on the provider.
SelfLink string
The URI of the created resource.
SelfLinkUnique string
A special URI of the created resource that uniquely identifies this instance template with the following format: projects/{{project}}/global/instanceTemplates/{{name}}?uniqueId={{uniqueId}} Referencing an instance template via this attribute prevents Time of Check to Time of Use attacks when the instance template resides in a shared/untrusted environment.
TagsFingerprint string
The unique fingerprint of the tags.
creationTimestamp String
Creation timestamp in RFC3339 text format.
effectiveLabels Map<String,String>
All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
id String
The provider-assigned unique ID for this managed resource.
metadataFingerprint String
The unique fingerprint of the metadata.
pulumiLabels Map<String,String>
The combination of labels configured directly on the resource and default labels configured on the provider.
selfLink String
The URI of the created resource.
selfLinkUnique String
A special URI of the created resource that uniquely identifies this instance template with the following format: projects/{{project}}/global/instanceTemplates/{{name}}?uniqueId={{uniqueId}} Referencing an instance template via this attribute prevents Time of Check to Time of Use attacks when the instance template resides in a shared/untrusted environment.
tagsFingerprint String
The unique fingerprint of the tags.
creationTimestamp string
Creation timestamp in RFC3339 text format.
effectiveLabels {[key: string]: string}
All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
id string
The provider-assigned unique ID for this managed resource.
metadataFingerprint string
The unique fingerprint of the metadata.
pulumiLabels {[key: string]: string}
The combination of labels configured directly on the resource and default labels configured on the provider.
selfLink string
The URI of the created resource.
selfLinkUnique string
A special URI of the created resource that uniquely identifies this instance template with the following format: projects/{{project}}/global/instanceTemplates/{{name}}?uniqueId={{uniqueId}} Referencing an instance template via this attribute prevents Time of Check to Time of Use attacks when the instance template resides in a shared/untrusted environment.
tagsFingerprint string
The unique fingerprint of the tags.
creation_timestamp str
Creation timestamp in RFC3339 text format.
effective_labels Mapping[str, str]
All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
id str
The provider-assigned unique ID for this managed resource.
metadata_fingerprint str
The unique fingerprint of the metadata.
pulumi_labels Mapping[str, str]
The combination of labels configured directly on the resource and default labels configured on the provider.
self_link str
The URI of the created resource.
self_link_unique str
A special URI of the created resource that uniquely identifies this instance template with the following format: projects/{{project}}/global/instanceTemplates/{{name}}?uniqueId={{uniqueId}} Referencing an instance template via this attribute prevents Time of Check to Time of Use attacks when the instance template resides in a shared/untrusted environment.
tags_fingerprint str
The unique fingerprint of the tags.
creationTimestamp String
Creation timestamp in RFC3339 text format.
effectiveLabels Map<String>
All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
id String
The provider-assigned unique ID for this managed resource.
metadataFingerprint String
The unique fingerprint of the metadata.
pulumiLabels Map<String>
The combination of labels configured directly on the resource and default labels configured on the provider.
selfLink String
The URI of the created resource.
selfLinkUnique String
A special URI of the created resource that uniquely identifies this instance template with the following format: projects/{{project}}/global/instanceTemplates/{{name}}?uniqueId={{uniqueId}} Referencing an instance template via this attribute prevents Time of Check to Time of Use attacks when the instance template resides in a shared/untrusted environment.
tagsFingerprint String
The unique fingerprint of the tags.

Look up Existing InstanceTemplate Resource

Get an existing InstanceTemplate 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?: InstanceTemplateState, opts?: CustomResourceOptions): InstanceTemplate
@staticmethod
def get(resource_name: str,
        id: str,
        opts: Optional[ResourceOptions] = None,
        advanced_machine_features: Optional[InstanceTemplateAdvancedMachineFeaturesArgs] = None,
        can_ip_forward: Optional[bool] = None,
        confidential_instance_config: Optional[InstanceTemplateConfidentialInstanceConfigArgs] = None,
        creation_timestamp: Optional[str] = None,
        description: Optional[str] = None,
        disks: Optional[Sequence[InstanceTemplateDiskArgs]] = None,
        effective_labels: Optional[Mapping[str, str]] = None,
        enable_display: Optional[bool] = None,
        guest_accelerators: Optional[Sequence[InstanceTemplateGuestAcceleratorArgs]] = None,
        instance_description: Optional[str] = None,
        key_revocation_action_type: 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,
        name_prefix: Optional[str] = None,
        network_interfaces: Optional[Sequence[InstanceTemplateNetworkInterfaceArgs]] = None,
        network_performance_config: Optional[InstanceTemplateNetworkPerformanceConfigArgs] = None,
        partner_metadata: Optional[Mapping[str, str]] = None,
        project: Optional[str] = None,
        pulumi_labels: Optional[Mapping[str, str]] = None,
        region: Optional[str] = None,
        reservation_affinity: Optional[InstanceTemplateReservationAffinityArgs] = None,
        resource_manager_tags: Optional[Mapping[str, str]] = None,
        resource_policies: Optional[str] = None,
        scheduling: Optional[InstanceTemplateSchedulingArgs] = None,
        self_link: Optional[str] = None,
        self_link_unique: Optional[str] = None,
        service_account: Optional[InstanceTemplateServiceAccountArgs] = None,
        shielded_instance_config: Optional[InstanceTemplateShieldedInstanceConfigArgs] = None,
        tags: Optional[Sequence[str]] = None,
        tags_fingerprint: Optional[str] = None) -> InstanceTemplate
func GetInstanceTemplate(ctx *Context, name string, id IDInput, state *InstanceTemplateState, opts ...ResourceOption) (*InstanceTemplate, error)
public static InstanceTemplate Get(string name, Input<string> id, InstanceTemplateState? state, CustomResourceOptions? opts = null)
public static InstanceTemplate get(String name, Output<String> id, InstanceTemplateState state, CustomResourceOptions options)
resources:  _:    type: gcp:compute:InstanceTemplate    get:      id: ${id}
name This property is required.
The unique name of the resulting resource.
id This property is required.
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 This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
name This property is required.
The unique name of the resulting resource.
id This property is required.
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 This property is required.
The unique name of the resulting resource.
id This property is required.
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 This property is required.
The unique name of the resulting resource.
id This property is required.
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 Changes to this property will trigger replacement. InstanceTemplateAdvancedMachineFeatures
Configure Nested Virtualisation and Simultaneous Hyper Threading on this VM. Structure is documented below
CanIpForward Changes to this property will trigger replacement. bool
Whether to allow sending and receiving of packets with non-matching source or destination IPs. This defaults to false.
ConfidentialInstanceConfig Changes to this property will trigger replacement. InstanceTemplateConfidentialInstanceConfig
Enable Confidential Mode on this VM. Structure is documented below
CreationTimestamp Changes to this property will trigger replacement. string
Creation timestamp in RFC3339 text format.
Description Changes to this property will trigger replacement. string
A brief description of this resource.
Disks Changes to this property will trigger replacement. List<InstanceTemplateDisk>
Disks to attach to instances created from this template. This can be specified multiple times for multiple disks. Structure is documented below.
EffectiveLabels Changes to this property will trigger replacement. Dictionary<string, string>
All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
EnableDisplay Changes to this property will trigger replacement. bool
Enable Virtual Displays on this instance. Note: allow_stopping_for_update must be set to true in order to update this field.
GuestAccelerators Changes to this property will trigger replacement. List<InstanceTemplateGuestAccelerator>
List of the type and count of accelerator cards attached to the instance. Structure documented below.
InstanceDescription Changes to this property will trigger replacement. string
A brief description to use for instances created from this template.
KeyRevocationActionType Changes to this property will trigger replacement. string
Action to be taken when a customer's encryption key is revoked. Supports STOP and NONE, with NONE being the default.
Labels Dictionary<string, string>

A set of key/value label pairs to assign to instances created from this template.

Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.

MachineType Changes to this property will trigger replacement. string
The machine type to create. To create a machine with a custom type (such as extended memory), format the value like custom-VCPUS-MEM_IN_MB like custom-6-20480 for 6 vCPU and 20GB of RAM.
Metadata Changes to this property will trigger replacement. Dictionary<string, string>
Metadata key/value pairs to make available from within instances created from this template.
MetadataFingerprint Changes to this property will trigger replacement. string
The unique fingerprint of the metadata.
MetadataStartupScript Changes to this property will trigger replacement. string
An alternative to using the startup-script metadata key, mostly to match the compute_instance resource. This replaces the startup-script metadata key on the created instance and thus the two mechanisms are not allowed to be used simultaneously.
MinCpuPlatform Changes to this property will trigger replacement. string
Specifies a minimum CPU platform. Applicable values are the friendly names of CPU platforms, such as Intel Haswell or Intel Skylake. See the complete list here.
Name Changes to this property will trigger replacement. string
The name of the instance template. If you leave this blank, the provider will auto-generate a unique name.
NamePrefix Changes to this property will trigger replacement. string

Creates a unique name beginning with the specified prefix. Conflicts with name. Max length is 54 characters. Prefixes with lengths longer than 37 characters will use a shortened UUID that will be more prone to collisions.

Resulting name for a name_prefix <= 37 characters: name_prefix + YYYYmmddHHSSssss + 8 digit incremental counter Resulting name for a name_prefix 38 - 54 characters: name_prefix + YYmmdd + 3 digit incremental counter

NetworkInterfaces Changes to this property will trigger replacement. List<InstanceTemplateNetworkInterface>
Networks to attach to instances created from this template. This can be specified multiple times for multiple networks. Structure is documented below.
NetworkPerformanceConfig Changes to this property will trigger replacement. InstanceTemplateNetworkPerformanceConfig
(Optional, Configures network performance settings for the instance created from the template. 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.
PartnerMetadata Dictionary<string, string>
Beta key/value pair represents partner metadata assigned to instance template where key represent a defined namespace and value is a json string represent the entries associted with the namespace.
Project Changes to this property will trigger replacement. string
The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
PulumiLabels Dictionary<string, string>
The combination of labels configured directly on the resource and default labels configured on the provider.
Region Changes to this property will trigger replacement. string
An instance template is a global resource that is not bound to a zone or a region. However, you can still specify some regional resources in an instance template, which restricts the template to the region where that resource resides. For example, a custom subnetwork resource is tied to a specific region. Defaults to the region of the Provider if no value is given.
ReservationAffinity Changes to this property will trigger replacement. InstanceTemplateReservationAffinity
Specifies the reservations that this instance can consume from. Structure is documented below.
ResourceManagerTags Changes to this property will trigger replacement. Dictionary<string, string>
A set of key/value resource manager tag pairs to bind to the instances. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456.
ResourcePolicies Changes to this property will trigger replacement. 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 Changes to this property will trigger replacement. InstanceTemplateScheduling
The scheduling strategy to use. More details about this configuration option are detailed below.
SelfLink Changes to this property will trigger replacement. string
The URI of the created resource.
SelfLinkUnique Changes to this property will trigger replacement. string
A special URI of the created resource that uniquely identifies this instance template with the following format: projects/{{project}}/global/instanceTemplates/{{name}}?uniqueId={{uniqueId}} Referencing an instance template via this attribute prevents Time of Check to Time of Use attacks when the instance template resides in a shared/untrusted environment.
ServiceAccount Changes to this property will trigger replacement. InstanceTemplateServiceAccount
Service account to attach to the instance. Structure is documented below.
ShieldedInstanceConfig Changes to this property will trigger replacement. InstanceTemplateShieldedInstanceConfig
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.
Tags Changes to this property will trigger replacement. List<string>
Tags to attach to the instance.
TagsFingerprint Changes to this property will trigger replacement. string
The unique fingerprint of the tags.
AdvancedMachineFeatures Changes to this property will trigger replacement. InstanceTemplateAdvancedMachineFeaturesArgs
Configure Nested Virtualisation and Simultaneous Hyper Threading on this VM. Structure is documented below
CanIpForward Changes to this property will trigger replacement. bool
Whether to allow sending and receiving of packets with non-matching source or destination IPs. This defaults to false.
ConfidentialInstanceConfig Changes to this property will trigger replacement. InstanceTemplateConfidentialInstanceConfigArgs
Enable Confidential Mode on this VM. Structure is documented below
CreationTimestamp Changes to this property will trigger replacement. string
Creation timestamp in RFC3339 text format.
Description Changes to this property will trigger replacement. string
A brief description of this resource.
Disks Changes to this property will trigger replacement. []InstanceTemplateDiskArgs
Disks to attach to instances created from this template. This can be specified multiple times for multiple disks. Structure is documented below.
EffectiveLabels Changes to this property will trigger replacement. map[string]string
All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
EnableDisplay Changes to this property will trigger replacement. bool
Enable Virtual Displays on this instance. Note: allow_stopping_for_update must be set to true in order to update this field.
GuestAccelerators Changes to this property will trigger replacement. []InstanceTemplateGuestAcceleratorArgs
List of the type and count of accelerator cards attached to the instance. Structure documented below.
InstanceDescription Changes to this property will trigger replacement. string
A brief description to use for instances created from this template.
KeyRevocationActionType Changes to this property will trigger replacement. string
Action to be taken when a customer's encryption key is revoked. Supports STOP and NONE, with NONE being the default.
Labels map[string]string

A set of key/value label pairs to assign to instances created from this template.

Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.

MachineType Changes to this property will trigger replacement. string
The machine type to create. To create a machine with a custom type (such as extended memory), format the value like custom-VCPUS-MEM_IN_MB like custom-6-20480 for 6 vCPU and 20GB of RAM.
Metadata Changes to this property will trigger replacement. map[string]string
Metadata key/value pairs to make available from within instances created from this template.
MetadataFingerprint Changes to this property will trigger replacement. string
The unique fingerprint of the metadata.
MetadataStartupScript Changes to this property will trigger replacement. string
An alternative to using the startup-script metadata key, mostly to match the compute_instance resource. This replaces the startup-script metadata key on the created instance and thus the two mechanisms are not allowed to be used simultaneously.
MinCpuPlatform Changes to this property will trigger replacement. string
Specifies a minimum CPU platform. Applicable values are the friendly names of CPU platforms, such as Intel Haswell or Intel Skylake. See the complete list here.
Name Changes to this property will trigger replacement. string
The name of the instance template. If you leave this blank, the provider will auto-generate a unique name.
NamePrefix Changes to this property will trigger replacement. string

Creates a unique name beginning with the specified prefix. Conflicts with name. Max length is 54 characters. Prefixes with lengths longer than 37 characters will use a shortened UUID that will be more prone to collisions.

Resulting name for a name_prefix <= 37 characters: name_prefix + YYYYmmddHHSSssss + 8 digit incremental counter Resulting name for a name_prefix 38 - 54 characters: name_prefix + YYmmdd + 3 digit incremental counter

NetworkInterfaces Changes to this property will trigger replacement. []InstanceTemplateNetworkInterfaceArgs
Networks to attach to instances created from this template. This can be specified multiple times for multiple networks. Structure is documented below.
NetworkPerformanceConfig Changes to this property will trigger replacement. InstanceTemplateNetworkPerformanceConfigArgs
(Optional, Configures network performance settings for the instance created from the template. 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.
PartnerMetadata map[string]string
Beta key/value pair represents partner metadata assigned to instance template where key represent a defined namespace and value is a json string represent the entries associted with the namespace.
Project Changes to this property will trigger replacement. string
The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
PulumiLabels map[string]string
The combination of labels configured directly on the resource and default labels configured on the provider.
Region Changes to this property will trigger replacement. string
An instance template is a global resource that is not bound to a zone or a region. However, you can still specify some regional resources in an instance template, which restricts the template to the region where that resource resides. For example, a custom subnetwork resource is tied to a specific region. Defaults to the region of the Provider if no value is given.
ReservationAffinity Changes to this property will trigger replacement. InstanceTemplateReservationAffinityArgs
Specifies the reservations that this instance can consume from. Structure is documented below.
ResourceManagerTags Changes to this property will trigger replacement. map[string]string
A set of key/value resource manager tag pairs to bind to the instances. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456.
ResourcePolicies Changes to this property will trigger replacement. 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 Changes to this property will trigger replacement. InstanceTemplateSchedulingArgs
The scheduling strategy to use. More details about this configuration option are detailed below.
SelfLink Changes to this property will trigger replacement. string
The URI of the created resource.
SelfLinkUnique Changes to this property will trigger replacement. string
A special URI of the created resource that uniquely identifies this instance template with the following format: projects/{{project}}/global/instanceTemplates/{{name}}?uniqueId={{uniqueId}} Referencing an instance template via this attribute prevents Time of Check to Time of Use attacks when the instance template resides in a shared/untrusted environment.
ServiceAccount Changes to this property will trigger replacement. InstanceTemplateServiceAccountArgs
Service account to attach to the instance. Structure is documented below.
ShieldedInstanceConfig Changes to this property will trigger replacement. InstanceTemplateShieldedInstanceConfigArgs
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.
Tags Changes to this property will trigger replacement. []string
Tags to attach to the instance.
TagsFingerprint Changes to this property will trigger replacement. string
The unique fingerprint of the tags.
advancedMachineFeatures Changes to this property will trigger replacement. InstanceTemplateAdvancedMachineFeatures
Configure Nested Virtualisation and Simultaneous Hyper Threading on this VM. Structure is documented below
canIpForward Changes to this property will trigger replacement. Boolean
Whether to allow sending and receiving of packets with non-matching source or destination IPs. This defaults to false.
confidentialInstanceConfig Changes to this property will trigger replacement. InstanceTemplateConfidentialInstanceConfig
Enable Confidential Mode on this VM. Structure is documented below
creationTimestamp Changes to this property will trigger replacement. String
Creation timestamp in RFC3339 text format.
description Changes to this property will trigger replacement. String
A brief description of this resource.
disks Changes to this property will trigger replacement. List<InstanceTemplateDisk>
Disks to attach to instances created from this template. This can be specified multiple times for multiple disks. Structure is documented below.
effectiveLabels Changes to this property will trigger replacement. Map<String,String>
All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
enableDisplay Changes to this property will trigger replacement. Boolean
Enable Virtual Displays on this instance. Note: allow_stopping_for_update must be set to true in order to update this field.
guestAccelerators Changes to this property will trigger replacement. List<InstanceTemplateGuestAccelerator>
List of the type and count of accelerator cards attached to the instance. Structure documented below.
instanceDescription Changes to this property will trigger replacement. String
A brief description to use for instances created from this template.
keyRevocationActionType Changes to this property will trigger replacement. String
Action to be taken when a customer's encryption key is revoked. Supports STOP and NONE, with NONE being the default.
labels Map<String,String>

A set of key/value label pairs to assign to instances created from this template.

Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.

machineType Changes to this property will trigger replacement. String
The machine type to create. To create a machine with a custom type (such as extended memory), format the value like custom-VCPUS-MEM_IN_MB like custom-6-20480 for 6 vCPU and 20GB of RAM.
metadata Changes to this property will trigger replacement. Map<String,String>
Metadata key/value pairs to make available from within instances created from this template.
metadataFingerprint Changes to this property will trigger replacement. String
The unique fingerprint of the metadata.
metadataStartupScript Changes to this property will trigger replacement. String
An alternative to using the startup-script metadata key, mostly to match the compute_instance resource. This replaces the startup-script metadata key on the created instance and thus the two mechanisms are not allowed to be used simultaneously.
minCpuPlatform Changes to this property will trigger replacement. String
Specifies a minimum CPU platform. Applicable values are the friendly names of CPU platforms, such as Intel Haswell or Intel Skylake. See the complete list here.
name Changes to this property will trigger replacement. String
The name of the instance template. If you leave this blank, the provider will auto-generate a unique name.
namePrefix Changes to this property will trigger replacement. String

Creates a unique name beginning with the specified prefix. Conflicts with name. Max length is 54 characters. Prefixes with lengths longer than 37 characters will use a shortened UUID that will be more prone to collisions.

Resulting name for a name_prefix <= 37 characters: name_prefix + YYYYmmddHHSSssss + 8 digit incremental counter Resulting name for a name_prefix 38 - 54 characters: name_prefix + YYmmdd + 3 digit incremental counter

networkInterfaces Changes to this property will trigger replacement. List<InstanceTemplateNetworkInterface>
Networks to attach to instances created from this template. This can be specified multiple times for multiple networks. Structure is documented below.
networkPerformanceConfig Changes to this property will trigger replacement. InstanceTemplateNetworkPerformanceConfig
(Optional, Configures network performance settings for the instance created from the template. 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.
partnerMetadata Map<String,String>
Beta key/value pair represents partner metadata assigned to instance template where key represent a defined namespace and value is a json string represent the entries associted with the namespace.
project Changes to this property will trigger replacement. String
The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
pulumiLabels Map<String,String>
The combination of labels configured directly on the resource and default labels configured on the provider.
region Changes to this property will trigger replacement. String
An instance template is a global resource that is not bound to a zone or a region. However, you can still specify some regional resources in an instance template, which restricts the template to the region where that resource resides. For example, a custom subnetwork resource is tied to a specific region. Defaults to the region of the Provider if no value is given.
reservationAffinity Changes to this property will trigger replacement. InstanceTemplateReservationAffinity
Specifies the reservations that this instance can consume from. Structure is documented below.
resourceManagerTags Changes to this property will trigger replacement. Map<String,String>
A set of key/value resource manager tag pairs to bind to the instances. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456.
resourcePolicies Changes to this property will trigger replacement. 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 Changes to this property will trigger replacement. InstanceTemplateScheduling
The scheduling strategy to use. More details about this configuration option are detailed below.
selfLink Changes to this property will trigger replacement. String
The URI of the created resource.
selfLinkUnique Changes to this property will trigger replacement. String
A special URI of the created resource that uniquely identifies this instance template with the following format: projects/{{project}}/global/instanceTemplates/{{name}}?uniqueId={{uniqueId}} Referencing an instance template via this attribute prevents Time of Check to Time of Use attacks when the instance template resides in a shared/untrusted environment.
serviceAccount Changes to this property will trigger replacement. InstanceTemplateServiceAccount
Service account to attach to the instance. Structure is documented below.
shieldedInstanceConfig Changes to this property will trigger replacement. InstanceTemplateShieldedInstanceConfig
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.
tags Changes to this property will trigger replacement. List<String>
Tags to attach to the instance.
tagsFingerprint Changes to this property will trigger replacement. String
The unique fingerprint of the tags.
advancedMachineFeatures Changes to this property will trigger replacement. InstanceTemplateAdvancedMachineFeatures
Configure Nested Virtualisation and Simultaneous Hyper Threading on this VM. Structure is documented below
canIpForward Changes to this property will trigger replacement. boolean
Whether to allow sending and receiving of packets with non-matching source or destination IPs. This defaults to false.
confidentialInstanceConfig Changes to this property will trigger replacement. InstanceTemplateConfidentialInstanceConfig
Enable Confidential Mode on this VM. Structure is documented below
creationTimestamp Changes to this property will trigger replacement. string
Creation timestamp in RFC3339 text format.
description Changes to this property will trigger replacement. string
A brief description of this resource.
disks Changes to this property will trigger replacement. InstanceTemplateDisk[]
Disks to attach to instances created from this template. This can be specified multiple times for multiple disks. Structure is documented below.
effectiveLabels Changes to this property will trigger replacement. {[key: string]: string}
All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
enableDisplay Changes to this property will trigger replacement. boolean
Enable Virtual Displays on this instance. Note: allow_stopping_for_update must be set to true in order to update this field.
guestAccelerators Changes to this property will trigger replacement. InstanceTemplateGuestAccelerator[]
List of the type and count of accelerator cards attached to the instance. Structure documented below.
instanceDescription Changes to this property will trigger replacement. string
A brief description to use for instances created from this template.
keyRevocationActionType Changes to this property will trigger replacement. string
Action to be taken when a customer's encryption key is revoked. Supports STOP and NONE, with NONE being the default.
labels {[key: string]: string}

A set of key/value label pairs to assign to instances created from this template.

Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.

machineType Changes to this property will trigger replacement. string
The machine type to create. To create a machine with a custom type (such as extended memory), format the value like custom-VCPUS-MEM_IN_MB like custom-6-20480 for 6 vCPU and 20GB of RAM.
metadata Changes to this property will trigger replacement. {[key: string]: string}
Metadata key/value pairs to make available from within instances created from this template.
metadataFingerprint Changes to this property will trigger replacement. string
The unique fingerprint of the metadata.
metadataStartupScript Changes to this property will trigger replacement. string
An alternative to using the startup-script metadata key, mostly to match the compute_instance resource. This replaces the startup-script metadata key on the created instance and thus the two mechanisms are not allowed to be used simultaneously.
minCpuPlatform Changes to this property will trigger replacement. string
Specifies a minimum CPU platform. Applicable values are the friendly names of CPU platforms, such as Intel Haswell or Intel Skylake. See the complete list here.
name Changes to this property will trigger replacement. string
The name of the instance template. If you leave this blank, the provider will auto-generate a unique name.
namePrefix Changes to this property will trigger replacement. string

Creates a unique name beginning with the specified prefix. Conflicts with name. Max length is 54 characters. Prefixes with lengths longer than 37 characters will use a shortened UUID that will be more prone to collisions.

Resulting name for a name_prefix <= 37 characters: name_prefix + YYYYmmddHHSSssss + 8 digit incremental counter Resulting name for a name_prefix 38 - 54 characters: name_prefix + YYmmdd + 3 digit incremental counter

networkInterfaces Changes to this property will trigger replacement. InstanceTemplateNetworkInterface[]
Networks to attach to instances created from this template. This can be specified multiple times for multiple networks. Structure is documented below.
networkPerformanceConfig Changes to this property will trigger replacement. InstanceTemplateNetworkPerformanceConfig
(Optional, Configures network performance settings for the instance created from the template. 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.
partnerMetadata {[key: string]: string}
Beta key/value pair represents partner metadata assigned to instance template where key represent a defined namespace and value is a json string represent the entries associted with the namespace.
project Changes to this property will trigger replacement. string
The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
pulumiLabels {[key: string]: string}
The combination of labels configured directly on the resource and default labels configured on the provider.
region Changes to this property will trigger replacement. string
An instance template is a global resource that is not bound to a zone or a region. However, you can still specify some regional resources in an instance template, which restricts the template to the region where that resource resides. For example, a custom subnetwork resource is tied to a specific region. Defaults to the region of the Provider if no value is given.
reservationAffinity Changes to this property will trigger replacement. InstanceTemplateReservationAffinity
Specifies the reservations that this instance can consume from. Structure is documented below.
resourceManagerTags Changes to this property will trigger replacement. {[key: string]: string}
A set of key/value resource manager tag pairs to bind to the instances. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456.
resourcePolicies Changes to this property will trigger replacement. 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 Changes to this property will trigger replacement. InstanceTemplateScheduling
The scheduling strategy to use. More details about this configuration option are detailed below.
selfLink Changes to this property will trigger replacement. string
The URI of the created resource.
selfLinkUnique Changes to this property will trigger replacement. string
A special URI of the created resource that uniquely identifies this instance template with the following format: projects/{{project}}/global/instanceTemplates/{{name}}?uniqueId={{uniqueId}} Referencing an instance template via this attribute prevents Time of Check to Time of Use attacks when the instance template resides in a shared/untrusted environment.
serviceAccount Changes to this property will trigger replacement. InstanceTemplateServiceAccount
Service account to attach to the instance. Structure is documented below.
shieldedInstanceConfig Changes to this property will trigger replacement. InstanceTemplateShieldedInstanceConfig
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.
tags Changes to this property will trigger replacement. string[]
Tags to attach to the instance.
tagsFingerprint Changes to this property will trigger replacement. string
The unique fingerprint of the tags.
advanced_machine_features Changes to this property will trigger replacement. InstanceTemplateAdvancedMachineFeaturesArgs
Configure Nested Virtualisation and Simultaneous Hyper Threading on this VM. Structure is documented below
can_ip_forward Changes to this property will trigger replacement. bool
Whether to allow sending and receiving of packets with non-matching source or destination IPs. This defaults to false.
confidential_instance_config Changes to this property will trigger replacement. InstanceTemplateConfidentialInstanceConfigArgs
Enable Confidential Mode on this VM. Structure is documented below
creation_timestamp Changes to this property will trigger replacement. str
Creation timestamp in RFC3339 text format.
description Changes to this property will trigger replacement. str
A brief description of this resource.
disks Changes to this property will trigger replacement. Sequence[InstanceTemplateDiskArgs]
Disks to attach to instances created from this template. This can be specified multiple times for multiple disks. Structure is documented below.
effective_labels Changes to this property will trigger replacement. Mapping[str, str]
All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
enable_display Changes to this property will trigger replacement. bool
Enable Virtual Displays on this instance. Note: allow_stopping_for_update must be set to true in order to update this field.
guest_accelerators Changes to this property will trigger replacement. Sequence[InstanceTemplateGuestAcceleratorArgs]
List of the type and count of accelerator cards attached to the instance. Structure documented below.
instance_description Changes to this property will trigger replacement. str
A brief description to use for instances created from this template.
key_revocation_action_type Changes to this property will trigger replacement. str
Action to be taken when a customer's encryption key is revoked. Supports STOP and NONE, with NONE being the default.
labels Mapping[str, str]

A set of key/value label pairs to assign to instances created from this template.

Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.

machine_type Changes to this property will trigger replacement. str
The machine type to create. To create a machine with a custom type (such as extended memory), format the value like custom-VCPUS-MEM_IN_MB like custom-6-20480 for 6 vCPU and 20GB of RAM.
metadata Changes to this property will trigger replacement. Mapping[str, str]
Metadata key/value pairs to make available from within instances created from this template.
metadata_fingerprint Changes to this property will trigger replacement. str
The unique fingerprint of the metadata.
metadata_startup_script Changes to this property will trigger replacement. str
An alternative to using the startup-script metadata key, mostly to match the compute_instance resource. This replaces the startup-script metadata key on the created instance and thus the two mechanisms are not allowed to be used simultaneously.
min_cpu_platform Changes to this property will trigger replacement. str
Specifies a minimum CPU platform. Applicable values are the friendly names of CPU platforms, such as Intel Haswell or Intel Skylake. See the complete list here.
name Changes to this property will trigger replacement. str
The name of the instance template. If you leave this blank, the provider will auto-generate a unique name.
name_prefix Changes to this property will trigger replacement. str

Creates a unique name beginning with the specified prefix. Conflicts with name. Max length is 54 characters. Prefixes with lengths longer than 37 characters will use a shortened UUID that will be more prone to collisions.

Resulting name for a name_prefix <= 37 characters: name_prefix + YYYYmmddHHSSssss + 8 digit incremental counter Resulting name for a name_prefix 38 - 54 characters: name_prefix + YYmmdd + 3 digit incremental counter

network_interfaces Changes to this property will trigger replacement. Sequence[InstanceTemplateNetworkInterfaceArgs]
Networks to attach to instances created from this template. This can be specified multiple times for multiple networks. Structure is documented below.
network_performance_config Changes to this property will trigger replacement. InstanceTemplateNetworkPerformanceConfigArgs
(Optional, Configures network performance settings for the instance created from the template. 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.
partner_metadata Mapping[str, str]
Beta key/value pair represents partner metadata assigned to instance template where key represent a defined namespace and value is a json string represent the entries associted with the namespace.
project Changes to this property will trigger replacement. str
The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
pulumi_labels Mapping[str, str]
The combination of labels configured directly on the resource and default labels configured on the provider.
region Changes to this property will trigger replacement. str
An instance template is a global resource that is not bound to a zone or a region. However, you can still specify some regional resources in an instance template, which restricts the template to the region where that resource resides. For example, a custom subnetwork resource is tied to a specific region. Defaults to the region of the Provider if no value is given.
reservation_affinity Changes to this property will trigger replacement. InstanceTemplateReservationAffinityArgs
Specifies the reservations that this instance can consume from. Structure is documented below.
resource_manager_tags Changes to this property will trigger replacement. Mapping[str, str]
A set of key/value resource manager tag pairs to bind to the instances. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456.
resource_policies Changes to this property will trigger replacement. 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 Changes to this property will trigger replacement. InstanceTemplateSchedulingArgs
The scheduling strategy to use. More details about this configuration option are detailed below.
self_link Changes to this property will trigger replacement. str
The URI of the created resource.
self_link_unique Changes to this property will trigger replacement. str
A special URI of the created resource that uniquely identifies this instance template with the following format: projects/{{project}}/global/instanceTemplates/{{name}}?uniqueId={{uniqueId}} Referencing an instance template via this attribute prevents Time of Check to Time of Use attacks when the instance template resides in a shared/untrusted environment.
service_account Changes to this property will trigger replacement. InstanceTemplateServiceAccountArgs
Service account to attach to the instance. Structure is documented below.
shielded_instance_config Changes to this property will trigger replacement. InstanceTemplateShieldedInstanceConfigArgs
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.
tags Changes to this property will trigger replacement. Sequence[str]
Tags to attach to the instance.
tags_fingerprint Changes to this property will trigger replacement. str
The unique fingerprint of the tags.
advancedMachineFeatures Changes to this property will trigger replacement. Property Map
Configure Nested Virtualisation and Simultaneous Hyper Threading on this VM. Structure is documented below
canIpForward Changes to this property will trigger replacement. Boolean
Whether to allow sending and receiving of packets with non-matching source or destination IPs. This defaults to false.
confidentialInstanceConfig Changes to this property will trigger replacement. Property Map
Enable Confidential Mode on this VM. Structure is documented below
creationTimestamp Changes to this property will trigger replacement. String
Creation timestamp in RFC3339 text format.
description Changes to this property will trigger replacement. String
A brief description of this resource.
disks Changes to this property will trigger replacement. List<Property Map>
Disks to attach to instances created from this template. This can be specified multiple times for multiple disks. Structure is documented below.
effectiveLabels Changes to this property will trigger replacement. Map<String>
All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
enableDisplay Changes to this property will trigger replacement. Boolean
Enable Virtual Displays on this instance. Note: allow_stopping_for_update must be set to true in order to update this field.
guestAccelerators Changes to this property will trigger replacement. List<Property Map>
List of the type and count of accelerator cards attached to the instance. Structure documented below.
instanceDescription Changes to this property will trigger replacement. String
A brief description to use for instances created from this template.
keyRevocationActionType Changes to this property will trigger replacement. String
Action to be taken when a customer's encryption key is revoked. Supports STOP and NONE, with NONE being the default.
labels Map<String>

A set of key/value label pairs to assign to instances created from this template.

Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.

machineType Changes to this property will trigger replacement. String
The machine type to create. To create a machine with a custom type (such as extended memory), format the value like custom-VCPUS-MEM_IN_MB like custom-6-20480 for 6 vCPU and 20GB of RAM.
metadata Changes to this property will trigger replacement. Map<String>
Metadata key/value pairs to make available from within instances created from this template.
metadataFingerprint Changes to this property will trigger replacement. String
The unique fingerprint of the metadata.
metadataStartupScript Changes to this property will trigger replacement. String
An alternative to using the startup-script metadata key, mostly to match the compute_instance resource. This replaces the startup-script metadata key on the created instance and thus the two mechanisms are not allowed to be used simultaneously.
minCpuPlatform Changes to this property will trigger replacement. String
Specifies a minimum CPU platform. Applicable values are the friendly names of CPU platforms, such as Intel Haswell or Intel Skylake. See the complete list here.
name Changes to this property will trigger replacement. String
The name of the instance template. If you leave this blank, the provider will auto-generate a unique name.
namePrefix Changes to this property will trigger replacement. String

Creates a unique name beginning with the specified prefix. Conflicts with name. Max length is 54 characters. Prefixes with lengths longer than 37 characters will use a shortened UUID that will be more prone to collisions.

Resulting name for a name_prefix <= 37 characters: name_prefix + YYYYmmddHHSSssss + 8 digit incremental counter Resulting name for a name_prefix 38 - 54 characters: name_prefix + YYmmdd + 3 digit incremental counter

networkInterfaces Changes to this property will trigger replacement. List<Property Map>
Networks to attach to instances created from this template. This can be specified multiple times for multiple networks. Structure is documented below.
networkPerformanceConfig Changes to this property will trigger replacement. Property Map
(Optional, Configures network performance settings for the instance created from the template. 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.
partnerMetadata Map<String>
Beta key/value pair represents partner metadata assigned to instance template where key represent a defined namespace and value is a json string represent the entries associted with the namespace.
project Changes to this property will trigger replacement. String
The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
pulumiLabels Map<String>
The combination of labels configured directly on the resource and default labels configured on the provider.
region Changes to this property will trigger replacement. String
An instance template is a global resource that is not bound to a zone or a region. However, you can still specify some regional resources in an instance template, which restricts the template to the region where that resource resides. For example, a custom subnetwork resource is tied to a specific region. Defaults to the region of the Provider if no value is given.
reservationAffinity Changes to this property will trigger replacement. Property Map
Specifies the reservations that this instance can consume from. Structure is documented below.
resourceManagerTags Changes to this property will trigger replacement. Map<String>
A set of key/value resource manager tag pairs to bind to the instances. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456.
resourcePolicies Changes to this property will trigger replacement. 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 Changes to this property will trigger replacement. Property Map
The scheduling strategy to use. More details about this configuration option are detailed below.
selfLink Changes to this property will trigger replacement. String
The URI of the created resource.
selfLinkUnique Changes to this property will trigger replacement. String
A special URI of the created resource that uniquely identifies this instance template with the following format: projects/{{project}}/global/instanceTemplates/{{name}}?uniqueId={{uniqueId}} Referencing an instance template via this attribute prevents Time of Check to Time of Use attacks when the instance template resides in a shared/untrusted environment.
serviceAccount Changes to this property will trigger replacement. Property Map
Service account to attach to the instance. Structure is documented below.
shieldedInstanceConfig Changes to this property will trigger replacement. 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.
tags Changes to this property will trigger replacement. List<String>
Tags to attach to the instance.
tagsFingerprint Changes to this property will trigger replacement. String
The unique fingerprint of the tags.

Supporting Types

InstanceTemplateAdvancedMachineFeatures
, InstanceTemplateAdvancedMachineFeaturesArgs

EnableNestedVirtualization Changes to this property will trigger replacement. bool
Defines whether the instance should have nested virtualization enabled. Defaults to false.
EnableUefiNetworking Changes to this property will trigger replacement. bool
Whether to enable UEFI networking for instance creation.
PerformanceMonitoringUnit Changes to this property will trigger replacement. string
The PMU is a hardware component within the CPU core that monitors how the processor runs code. Valid values for the level of PMU are STANDARD, ENHANCED, and ARCHITECTURAL.
ThreadsPerCore Changes to this property will trigger replacement. int
The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1.
TurboMode string
Turbo frequency mode to use for the instance. Supported modes are currently either ALL_CORE_MAX or unset (default).
VisibleCoreCount Changes to this property will trigger replacement. int
The number of physical cores to expose to an instance. visible cores info (VC).
EnableNestedVirtualization Changes to this property will trigger replacement. bool
Defines whether the instance should have nested virtualization enabled. Defaults to false.
EnableUefiNetworking Changes to this property will trigger replacement. bool
Whether to enable UEFI networking for instance creation.
PerformanceMonitoringUnit Changes to this property will trigger replacement. string
The PMU is a hardware component within the CPU core that monitors how the processor runs code. Valid values for the level of PMU are STANDARD, ENHANCED, and ARCHITECTURAL.
ThreadsPerCore Changes to this property will trigger replacement. int
The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1.
TurboMode string
Turbo frequency mode to use for the instance. Supported modes are currently either ALL_CORE_MAX or unset (default).
VisibleCoreCount Changes to this property will trigger replacement. int
The number of physical cores to expose to an instance. visible cores info (VC).
enableNestedVirtualization Changes to this property will trigger replacement. Boolean
Defines whether the instance should have nested virtualization enabled. Defaults to false.
enableUefiNetworking Changes to this property will trigger replacement. Boolean
Whether to enable UEFI networking for instance creation.
performanceMonitoringUnit Changes to this property will trigger replacement. String
The PMU is a hardware component within the CPU core that monitors how the processor runs code. Valid values for the level of PMU are STANDARD, ENHANCED, and ARCHITECTURAL.
threadsPerCore Changes to this property will trigger replacement. Integer
The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1.
turboMode String
Turbo frequency mode to use for the instance. Supported modes are currently either ALL_CORE_MAX or unset (default).
visibleCoreCount Changes to this property will trigger replacement. Integer
The number of physical cores to expose to an instance. visible cores info (VC).
enableNestedVirtualization Changes to this property will trigger replacement. boolean
Defines whether the instance should have nested virtualization enabled. Defaults to false.
enableUefiNetworking Changes to this property will trigger replacement. boolean
Whether to enable UEFI networking for instance creation.
performanceMonitoringUnit Changes to this property will trigger replacement. string
The PMU is a hardware component within the CPU core that monitors how the processor runs code. Valid values for the level of PMU are STANDARD, ENHANCED, and ARCHITECTURAL.
threadsPerCore Changes to this property will trigger replacement. number
The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1.
turboMode string
Turbo frequency mode to use for the instance. Supported modes are currently either ALL_CORE_MAX or unset (default).
visibleCoreCount Changes to this property will trigger replacement. number
The number of physical cores to expose to an instance. visible cores info (VC).
enable_nested_virtualization Changes to this property will trigger replacement. bool
Defines whether the instance should have nested virtualization enabled. Defaults to false.
enable_uefi_networking Changes to this property will trigger replacement. bool
Whether to enable UEFI networking for instance creation.
performance_monitoring_unit Changes to this property will trigger replacement. str
The PMU is a hardware component within the CPU core that monitors how the processor runs code. Valid values for the level of PMU are STANDARD, ENHANCED, and ARCHITECTURAL.
threads_per_core Changes to this property will trigger replacement. int
The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1.
turbo_mode str
Turbo frequency mode to use for the instance. Supported modes are currently either ALL_CORE_MAX or unset (default).
visible_core_count Changes to this property will trigger replacement. int
The number of physical cores to expose to an instance. visible cores info (VC).
enableNestedVirtualization Changes to this property will trigger replacement. Boolean
Defines whether the instance should have nested virtualization enabled. Defaults to false.
enableUefiNetworking Changes to this property will trigger replacement. Boolean
Whether to enable UEFI networking for instance creation.
performanceMonitoringUnit Changes to this property will trigger replacement. String
The PMU is a hardware component within the CPU core that monitors how the processor runs code. Valid values for the level of PMU are STANDARD, ENHANCED, and ARCHITECTURAL.
threadsPerCore Changes to this property will trigger replacement. Number
The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1.
turboMode String
Turbo frequency mode to use for the instance. Supported modes are currently either ALL_CORE_MAX or unset (default).
visibleCoreCount Changes to this property will trigger replacement. Number
The number of physical cores to expose to an instance. visible cores info (VC).

InstanceTemplateConfidentialInstanceConfig
, InstanceTemplateConfidentialInstanceConfigArgs

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

InstanceTemplateDisk
, InstanceTemplateDiskArgs

AutoDelete Changes to this property will trigger replacement. bool
Whether or not the disk should be auto-deleted. This defaults to true.
Boot Changes to this property will trigger replacement. bool
Indicates that this is a boot disk.
DeviceName Changes to this property will trigger replacement. string
A unique device name that is reflected into the /dev/ tree of a Linux operating system running within the instance. If not specified, the server chooses a default device name to apply to this disk.
DiskEncryptionKey Changes to this property will trigger replacement. InstanceTemplateDiskDiskEncryptionKey

Encrypts or decrypts a disk using a customer-supplied encryption key.

If you are creating a new disk, this field encrypts the new disk using an encryption key that you provide. If you are attaching an existing disk that is already encrypted, this field decrypts the disk using the customer-supplied encryption key.

If you encrypt a disk using a customer-supplied key, you must provide the same key again when you attempt to use this resource at a later time. For example, you must provide the key when you create a snapshot or an image from the disk or when you attach the disk to a virtual machine instance.

If you do not provide an encryption key, then the disk will be encrypted using an automatically generated key and you do not need to provide a key to use the disk later.

Instance templates do not store customer-supplied encryption keys, so you cannot use your own keys to encrypt disks in a managed instance group. Structure documented below.

DiskName Changes to this property will trigger replacement. string
Name of the disk. When not provided, this defaults to the name of the instance.
DiskSizeGb Changes to this property will trigger replacement. int
The size of the image in gigabytes. If not specified, it will inherit the size of its base image. For SCRATCH disks, the size must be exactly 375GB.
DiskType Changes to this property will trigger replacement. string
The GCE disk type. Such as "pd-ssd", "local-ssd", "pd-balanced" or "pd-standard", "hyperdisk-balanced", "hyperdisk-throughput" or "hyperdisk-extreme".
Interface Changes to this property will trigger replacement. string
Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI. Persistent disks must always use SCSI and the request will fail if you attempt to attach a persistent disk in any other format than SCSI. Local SSDs can use either NVME or SCSI.
Labels Changes to this property will trigger replacement. Dictionary<string, string>
A set of ket/value label pairs to assign to disk created from this template
Mode Changes to this property will trigger replacement. string
The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If you are attaching or creating a boot disk, this must read-write mode.
ProvisionedIops Changes to this property will trigger replacement. int
Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle. Values must be between 10,000 and 120,000. For more details, see the Extreme persistent disk documentation.
ProvisionedThroughput Changes to this property will trigger replacement. int
Indicates how much throughput to provision for the disk, in MB/s. This sets the amount of data that can be read or written from the disk per second. Values must greater than or equal to 1. For more details, see the Hyperdisk documentation.
ResourceManagerTags Changes to this property will trigger replacement. Dictionary<string, string>
A set of key/value resource manager tag pairs to bind to this disk. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456.
ResourcePolicies Changes to this property will trigger replacement. string
  • A list (short name or id) of resource policies to attach to this disk for automatic snapshot creations. Currently a max of 1 resource policy is supported.
Source Changes to this property will trigger replacement. string

The name (not self_link) of the disk (such as those managed by gcp.compute.Disk) to attach.

Note: Either source, source_image, or source_snapshot is required in a disk block unless the disk type is local-ssd. Check the API docs for details.

SourceImage Changes to this property will trigger replacement. 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}.

Note: Either source, source_image, or source_snapshot is required in a disk block unless the disk type is local-ssd. Check the API docs for details.

SourceImageEncryptionKey Changes to this property will trigger replacement. InstanceTemplateDiskSourceImageEncryptionKey

The customer-supplied encryption key of the source image. Required if the source image is protected by a customer-supplied encryption key.

Instance templates do not store customer-supplied encryption keys, so you cannot create disks for instances in a managed instance group if the source images are encrypted with your own keys. Structure documented below.

SourceSnapshot Changes to this property will trigger replacement. string

The source snapshot to create this disk.

Note: Either source, source_image, or source_snapshot is required in a disk block unless the disk type is local-ssd. Check the API docs for details.

SourceSnapshotEncryptionKey Changes to this property will trigger replacement. InstanceTemplateDiskSourceSnapshotEncryptionKey
The customer-supplied encryption key of the source snapshot. Structure documented below.
Type Changes to this property will trigger replacement. string
The type of GCE disk, can be either "SCRATCH" or "PERSISTENT".
AutoDelete Changes to this property will trigger replacement. bool
Whether or not the disk should be auto-deleted. This defaults to true.
Boot Changes to this property will trigger replacement. bool
Indicates that this is a boot disk.
DeviceName Changes to this property will trigger replacement. string
A unique device name that is reflected into the /dev/ tree of a Linux operating system running within the instance. If not specified, the server chooses a default device name to apply to this disk.
DiskEncryptionKey Changes to this property will trigger replacement. InstanceTemplateDiskDiskEncryptionKey

Encrypts or decrypts a disk using a customer-supplied encryption key.

If you are creating a new disk, this field encrypts the new disk using an encryption key that you provide. If you are attaching an existing disk that is already encrypted, this field decrypts the disk using the customer-supplied encryption key.

If you encrypt a disk using a customer-supplied key, you must provide the same key again when you attempt to use this resource at a later time. For example, you must provide the key when you create a snapshot or an image from the disk or when you attach the disk to a virtual machine instance.

If you do not provide an encryption key, then the disk will be encrypted using an automatically generated key and you do not need to provide a key to use the disk later.

Instance templates do not store customer-supplied encryption keys, so you cannot use your own keys to encrypt disks in a managed instance group. Structure documented below.

DiskName Changes to this property will trigger replacement. string
Name of the disk. When not provided, this defaults to the name of the instance.
DiskSizeGb Changes to this property will trigger replacement. int
The size of the image in gigabytes. If not specified, it will inherit the size of its base image. For SCRATCH disks, the size must be exactly 375GB.
DiskType Changes to this property will trigger replacement. string
The GCE disk type. Such as "pd-ssd", "local-ssd", "pd-balanced" or "pd-standard", "hyperdisk-balanced", "hyperdisk-throughput" or "hyperdisk-extreme".
Interface Changes to this property will trigger replacement. string
Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI. Persistent disks must always use SCSI and the request will fail if you attempt to attach a persistent disk in any other format than SCSI. Local SSDs can use either NVME or SCSI.
Labels Changes to this property will trigger replacement. map[string]string
A set of ket/value label pairs to assign to disk created from this template
Mode Changes to this property will trigger replacement. string
The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If you are attaching or creating a boot disk, this must read-write mode.
ProvisionedIops Changes to this property will trigger replacement. int
Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle. Values must be between 10,000 and 120,000. For more details, see the Extreme persistent disk documentation.
ProvisionedThroughput Changes to this property will trigger replacement. int
Indicates how much throughput to provision for the disk, in MB/s. This sets the amount of data that can be read or written from the disk per second. Values must greater than or equal to 1. For more details, see the Hyperdisk documentation.
ResourceManagerTags Changes to this property will trigger replacement. map[string]string
A set of key/value resource manager tag pairs to bind to this disk. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456.
ResourcePolicies Changes to this property will trigger replacement. string
  • A list (short name or id) of resource policies to attach to this disk for automatic snapshot creations. Currently a max of 1 resource policy is supported.
Source Changes to this property will trigger replacement. string

The name (not self_link) of the disk (such as those managed by gcp.compute.Disk) to attach.

Note: Either source, source_image, or source_snapshot is required in a disk block unless the disk type is local-ssd. Check the API docs for details.

SourceImage Changes to this property will trigger replacement. 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}.

Note: Either source, source_image, or source_snapshot is required in a disk block unless the disk type is local-ssd. Check the API docs for details.

SourceImageEncryptionKey Changes to this property will trigger replacement. InstanceTemplateDiskSourceImageEncryptionKey

The customer-supplied encryption key of the source image. Required if the source image is protected by a customer-supplied encryption key.

Instance templates do not store customer-supplied encryption keys, so you cannot create disks for instances in a managed instance group if the source images are encrypted with your own keys. Structure documented below.

SourceSnapshot Changes to this property will trigger replacement. string

The source snapshot to create this disk.

Note: Either source, source_image, or source_snapshot is required in a disk block unless the disk type is local-ssd. Check the API docs for details.

SourceSnapshotEncryptionKey Changes to this property will trigger replacement. InstanceTemplateDiskSourceSnapshotEncryptionKey
The customer-supplied encryption key of the source snapshot. Structure documented below.
Type Changes to this property will trigger replacement. string
The type of GCE disk, can be either "SCRATCH" or "PERSISTENT".
autoDelete Changes to this property will trigger replacement. Boolean
Whether or not the disk should be auto-deleted. This defaults to true.
boot Changes to this property will trigger replacement. Boolean
Indicates that this is a boot disk.
deviceName Changes to this property will trigger replacement. String
A unique device name that is reflected into the /dev/ tree of a Linux operating system running within the instance. If not specified, the server chooses a default device name to apply to this disk.
diskEncryptionKey Changes to this property will trigger replacement. InstanceTemplateDiskDiskEncryptionKey

Encrypts or decrypts a disk using a customer-supplied encryption key.

If you are creating a new disk, this field encrypts the new disk using an encryption key that you provide. If you are attaching an existing disk that is already encrypted, this field decrypts the disk using the customer-supplied encryption key.

If you encrypt a disk using a customer-supplied key, you must provide the same key again when you attempt to use this resource at a later time. For example, you must provide the key when you create a snapshot or an image from the disk or when you attach the disk to a virtual machine instance.

If you do not provide an encryption key, then the disk will be encrypted using an automatically generated key and you do not need to provide a key to use the disk later.

Instance templates do not store customer-supplied encryption keys, so you cannot use your own keys to encrypt disks in a managed instance group. Structure documented below.

diskName Changes to this property will trigger replacement. String
Name of the disk. When not provided, this defaults to the name of the instance.
diskSizeGb Changes to this property will trigger replacement. Integer
The size of the image in gigabytes. If not specified, it will inherit the size of its base image. For SCRATCH disks, the size must be exactly 375GB.
diskType Changes to this property will trigger replacement. String
The GCE disk type. Such as "pd-ssd", "local-ssd", "pd-balanced" or "pd-standard", "hyperdisk-balanced", "hyperdisk-throughput" or "hyperdisk-extreme".
interface_ Changes to this property will trigger replacement. String
Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI. Persistent disks must always use SCSI and the request will fail if you attempt to attach a persistent disk in any other format than SCSI. Local SSDs can use either NVME or SCSI.
labels Changes to this property will trigger replacement. Map<String,String>
A set of ket/value label pairs to assign to disk created from this template
mode Changes to this property will trigger replacement. String
The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If you are attaching or creating a boot disk, this must read-write mode.
provisionedIops Changes to this property will trigger replacement. Integer
Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle. Values must be between 10,000 and 120,000. For more details, see the Extreme persistent disk documentation.
provisionedThroughput Changes to this property will trigger replacement. Integer
Indicates how much throughput to provision for the disk, in MB/s. This sets the amount of data that can be read or written from the disk per second. Values must greater than or equal to 1. For more details, see the Hyperdisk documentation.
resourceManagerTags Changes to this property will trigger replacement. Map<String,String>
A set of key/value resource manager tag pairs to bind to this disk. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456.
resourcePolicies Changes to this property will trigger replacement. String
  • A list (short name or id) of resource policies to attach to this disk for automatic snapshot creations. Currently a max of 1 resource policy is supported.
source Changes to this property will trigger replacement. String

The name (not self_link) of the disk (such as those managed by gcp.compute.Disk) to attach.

Note: Either source, source_image, or source_snapshot is required in a disk block unless the disk type is local-ssd. Check the API docs for details.

sourceImage Changes to this property will trigger replacement. 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}.

Note: Either source, source_image, or source_snapshot is required in a disk block unless the disk type is local-ssd. Check the API docs for details.

sourceImageEncryptionKey Changes to this property will trigger replacement. InstanceTemplateDiskSourceImageEncryptionKey

The customer-supplied encryption key of the source image. Required if the source image is protected by a customer-supplied encryption key.

Instance templates do not store customer-supplied encryption keys, so you cannot create disks for instances in a managed instance group if the source images are encrypted with your own keys. Structure documented below.

sourceSnapshot Changes to this property will trigger replacement. String

The source snapshot to create this disk.

Note: Either source, source_image, or source_snapshot is required in a disk block unless the disk type is local-ssd. Check the API docs for details.

sourceSnapshotEncryptionKey Changes to this property will trigger replacement. InstanceTemplateDiskSourceSnapshotEncryptionKey
The customer-supplied encryption key of the source snapshot. Structure documented below.
type Changes to this property will trigger replacement. String
The type of GCE disk, can be either "SCRATCH" or "PERSISTENT".
autoDelete Changes to this property will trigger replacement. boolean
Whether or not the disk should be auto-deleted. This defaults to true.
boot Changes to this property will trigger replacement. boolean
Indicates that this is a boot disk.
deviceName Changes to this property will trigger replacement. string
A unique device name that is reflected into the /dev/ tree of a Linux operating system running within the instance. If not specified, the server chooses a default device name to apply to this disk.
diskEncryptionKey Changes to this property will trigger replacement. InstanceTemplateDiskDiskEncryptionKey

Encrypts or decrypts a disk using a customer-supplied encryption key.

If you are creating a new disk, this field encrypts the new disk using an encryption key that you provide. If you are attaching an existing disk that is already encrypted, this field decrypts the disk using the customer-supplied encryption key.

If you encrypt a disk using a customer-supplied key, you must provide the same key again when you attempt to use this resource at a later time. For example, you must provide the key when you create a snapshot or an image from the disk or when you attach the disk to a virtual machine instance.

If you do not provide an encryption key, then the disk will be encrypted using an automatically generated key and you do not need to provide a key to use the disk later.

Instance templates do not store customer-supplied encryption keys, so you cannot use your own keys to encrypt disks in a managed instance group. Structure documented below.

diskName Changes to this property will trigger replacement. string
Name of the disk. When not provided, this defaults to the name of the instance.
diskSizeGb Changes to this property will trigger replacement. number
The size of the image in gigabytes. If not specified, it will inherit the size of its base image. For SCRATCH disks, the size must be exactly 375GB.
diskType Changes to this property will trigger replacement. string
The GCE disk type. Such as "pd-ssd", "local-ssd", "pd-balanced" or "pd-standard", "hyperdisk-balanced", "hyperdisk-throughput" or "hyperdisk-extreme".
interface Changes to this property will trigger replacement. string
Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI. Persistent disks must always use SCSI and the request will fail if you attempt to attach a persistent disk in any other format than SCSI. Local SSDs can use either NVME or SCSI.
labels Changes to this property will trigger replacement. {[key: string]: string}
A set of ket/value label pairs to assign to disk created from this template
mode Changes to this property will trigger replacement. string
The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If you are attaching or creating a boot disk, this must read-write mode.
provisionedIops Changes to this property will trigger replacement. number
Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle. Values must be between 10,000 and 120,000. For more details, see the Extreme persistent disk documentation.
provisionedThroughput Changes to this property will trigger replacement. number
Indicates how much throughput to provision for the disk, in MB/s. This sets the amount of data that can be read or written from the disk per second. Values must greater than or equal to 1. For more details, see the Hyperdisk documentation.
resourceManagerTags Changes to this property will trigger replacement. {[key: string]: string}
A set of key/value resource manager tag pairs to bind to this disk. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456.
resourcePolicies Changes to this property will trigger replacement. string
  • A list (short name or id) of resource policies to attach to this disk for automatic snapshot creations. Currently a max of 1 resource policy is supported.
source Changes to this property will trigger replacement. string

The name (not self_link) of the disk (such as those managed by gcp.compute.Disk) to attach.

Note: Either source, source_image, or source_snapshot is required in a disk block unless the disk type is local-ssd. Check the API docs for details.

sourceImage Changes to this property will trigger replacement. 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}.

Note: Either source, source_image, or source_snapshot is required in a disk block unless the disk type is local-ssd. Check the API docs for details.

sourceImageEncryptionKey Changes to this property will trigger replacement. InstanceTemplateDiskSourceImageEncryptionKey

The customer-supplied encryption key of the source image. Required if the source image is protected by a customer-supplied encryption key.

Instance templates do not store customer-supplied encryption keys, so you cannot create disks for instances in a managed instance group if the source images are encrypted with your own keys. Structure documented below.

sourceSnapshot Changes to this property will trigger replacement. string

The source snapshot to create this disk.

Note: Either source, source_image, or source_snapshot is required in a disk block unless the disk type is local-ssd. Check the API docs for details.

sourceSnapshotEncryptionKey Changes to this property will trigger replacement. InstanceTemplateDiskSourceSnapshotEncryptionKey
The customer-supplied encryption key of the source snapshot. Structure documented below.
type Changes to this property will trigger replacement. string
The type of GCE disk, can be either "SCRATCH" or "PERSISTENT".
auto_delete Changes to this property will trigger replacement. bool
Whether or not the disk should be auto-deleted. This defaults to true.
boot Changes to this property will trigger replacement. bool
Indicates that this is a boot disk.
device_name Changes to this property will trigger replacement. str
A unique device name that is reflected into the /dev/ tree of a Linux operating system running within the instance. If not specified, the server chooses a default device name to apply to this disk.
disk_encryption_key Changes to this property will trigger replacement. InstanceTemplateDiskDiskEncryptionKey

Encrypts or decrypts a disk using a customer-supplied encryption key.

If you are creating a new disk, this field encrypts the new disk using an encryption key that you provide. If you are attaching an existing disk that is already encrypted, this field decrypts the disk using the customer-supplied encryption key.

If you encrypt a disk using a customer-supplied key, you must provide the same key again when you attempt to use this resource at a later time. For example, you must provide the key when you create a snapshot or an image from the disk or when you attach the disk to a virtual machine instance.

If you do not provide an encryption key, then the disk will be encrypted using an automatically generated key and you do not need to provide a key to use the disk later.

Instance templates do not store customer-supplied encryption keys, so you cannot use your own keys to encrypt disks in a managed instance group. Structure documented below.

disk_name Changes to this property will trigger replacement. str
Name of the disk. When not provided, this defaults to the name of the instance.
disk_size_gb Changes to this property will trigger replacement. int
The size of the image in gigabytes. If not specified, it will inherit the size of its base image. For SCRATCH disks, the size must be exactly 375GB.
disk_type Changes to this property will trigger replacement. str
The GCE disk type. Such as "pd-ssd", "local-ssd", "pd-balanced" or "pd-standard", "hyperdisk-balanced", "hyperdisk-throughput" or "hyperdisk-extreme".
interface Changes to this property will trigger replacement. str
Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI. Persistent disks must always use SCSI and the request will fail if you attempt to attach a persistent disk in any other format than SCSI. Local SSDs can use either NVME or SCSI.
labels Changes to this property will trigger replacement. Mapping[str, str]
A set of ket/value label pairs to assign to disk created from this template
mode Changes to this property will trigger replacement. str
The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If you are attaching or creating a boot disk, this must read-write mode.
provisioned_iops Changes to this property will trigger replacement. int
Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle. Values must be between 10,000 and 120,000. For more details, see the Extreme persistent disk documentation.
provisioned_throughput Changes to this property will trigger replacement. int
Indicates how much throughput to provision for the disk, in MB/s. This sets the amount of data that can be read or written from the disk per second. Values must greater than or equal to 1. For more details, see the Hyperdisk documentation.
resource_manager_tags Changes to this property will trigger replacement. Mapping[str, str]
A set of key/value resource manager tag pairs to bind to this disk. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456.
resource_policies Changes to this property will trigger replacement. str
  • A list (short name or id) of resource policies to attach to this disk for automatic snapshot creations. Currently a max of 1 resource policy is supported.
source Changes to this property will trigger replacement. str

The name (not self_link) of the disk (such as those managed by gcp.compute.Disk) to attach.

Note: Either source, source_image, or source_snapshot is required in a disk block unless the disk type is local-ssd. Check the API docs for details.

source_image Changes to this property will trigger replacement. 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}.

Note: Either source, source_image, or source_snapshot is required in a disk block unless the disk type is local-ssd. Check the API docs for details.

source_image_encryption_key Changes to this property will trigger replacement. InstanceTemplateDiskSourceImageEncryptionKey

The customer-supplied encryption key of the source image. Required if the source image is protected by a customer-supplied encryption key.

Instance templates do not store customer-supplied encryption keys, so you cannot create disks for instances in a managed instance group if the source images are encrypted with your own keys. Structure documented below.

source_snapshot Changes to this property will trigger replacement. str

The source snapshot to create this disk.

Note: Either source, source_image, or source_snapshot is required in a disk block unless the disk type is local-ssd. Check the API docs for details.

source_snapshot_encryption_key Changes to this property will trigger replacement. InstanceTemplateDiskSourceSnapshotEncryptionKey
The customer-supplied encryption key of the source snapshot. Structure documented below.
type Changes to this property will trigger replacement. str
The type of GCE disk, can be either "SCRATCH" or "PERSISTENT".
autoDelete Changes to this property will trigger replacement. Boolean
Whether or not the disk should be auto-deleted. This defaults to true.
boot Changes to this property will trigger replacement. Boolean
Indicates that this is a boot disk.
deviceName Changes to this property will trigger replacement. String
A unique device name that is reflected into the /dev/ tree of a Linux operating system running within the instance. If not specified, the server chooses a default device name to apply to this disk.
diskEncryptionKey Changes to this property will trigger replacement. Property Map

Encrypts or decrypts a disk using a customer-supplied encryption key.

If you are creating a new disk, this field encrypts the new disk using an encryption key that you provide. If you are attaching an existing disk that is already encrypted, this field decrypts the disk using the customer-supplied encryption key.

If you encrypt a disk using a customer-supplied key, you must provide the same key again when you attempt to use this resource at a later time. For example, you must provide the key when you create a snapshot or an image from the disk or when you attach the disk to a virtual machine instance.

If you do not provide an encryption key, then the disk will be encrypted using an automatically generated key and you do not need to provide a key to use the disk later.

Instance templates do not store customer-supplied encryption keys, so you cannot use your own keys to encrypt disks in a managed instance group. Structure documented below.

diskName Changes to this property will trigger replacement. String
Name of the disk. When not provided, this defaults to the name of the instance.
diskSizeGb Changes to this property will trigger replacement. Number
The size of the image in gigabytes. If not specified, it will inherit the size of its base image. For SCRATCH disks, the size must be exactly 375GB.
diskType Changes to this property will trigger replacement. String
The GCE disk type. Such as "pd-ssd", "local-ssd", "pd-balanced" or "pd-standard", "hyperdisk-balanced", "hyperdisk-throughput" or "hyperdisk-extreme".
interface Changes to this property will trigger replacement. String
Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI. Persistent disks must always use SCSI and the request will fail if you attempt to attach a persistent disk in any other format than SCSI. Local SSDs can use either NVME or SCSI.
labels Changes to this property will trigger replacement. Map<String>
A set of ket/value label pairs to assign to disk created from this template
mode Changes to this property will trigger replacement. String
The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If you are attaching or creating a boot disk, this must read-write mode.
provisionedIops Changes to this property will trigger replacement. Number
Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle. Values must be between 10,000 and 120,000. For more details, see the Extreme persistent disk documentation.
provisionedThroughput Changes to this property will trigger replacement. Number
Indicates how much throughput to provision for the disk, in MB/s. This sets the amount of data that can be read or written from the disk per second. Values must greater than or equal to 1. For more details, see the Hyperdisk documentation.
resourceManagerTags Changes to this property will trigger replacement. Map<String>
A set of key/value resource manager tag pairs to bind to this disk. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456.
resourcePolicies Changes to this property will trigger replacement. String
  • A list (short name or id) of resource policies to attach to this disk for automatic snapshot creations. Currently a max of 1 resource policy is supported.
source Changes to this property will trigger replacement. String

The name (not self_link) of the disk (such as those managed by gcp.compute.Disk) to attach.

Note: Either source, source_image, or source_snapshot is required in a disk block unless the disk type is local-ssd. Check the API docs for details.

sourceImage Changes to this property will trigger replacement. 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}.

Note: Either source, source_image, or source_snapshot is required in a disk block unless the disk type is local-ssd. Check the API docs for details.

sourceImageEncryptionKey Changes to this property will trigger replacement. Property Map

The customer-supplied encryption key of the source image. Required if the source image is protected by a customer-supplied encryption key.

Instance templates do not store customer-supplied encryption keys, so you cannot create disks for instances in a managed instance group if the source images are encrypted with your own keys. Structure documented below.

sourceSnapshot Changes to this property will trigger replacement. String

The source snapshot to create this disk.

Note: Either source, source_image, or source_snapshot is required in a disk block unless the disk type is local-ssd. Check the API docs for details.

sourceSnapshotEncryptionKey Changes to this property will trigger replacement. Property Map
The customer-supplied encryption key of the source snapshot. Structure documented below.
type Changes to this property will trigger replacement. String
The type of GCE disk, can be either "SCRATCH" or "PERSISTENT".

InstanceTemplateDiskDiskEncryptionKey
, InstanceTemplateDiskDiskEncryptionKeyArgs

KmsKeySelfLink
This property is required.
Changes to this property will trigger replacement.
string
The self link of the encryption key that is stored in Google Cloud KMS
KmsKeySelfLink
This property is required.
Changes to this property will trigger replacement.
string
The self link of the encryption key that is stored in Google Cloud KMS
kmsKeySelfLink
This property is required.
Changes to this property will trigger replacement.
String
The self link of the encryption key that is stored in Google Cloud KMS
kmsKeySelfLink
This property is required.
Changes to this property will trigger replacement.
string
The self link of the encryption key that is stored in Google Cloud KMS
kms_key_self_link
This property is required.
Changes to this property will trigger replacement.
str
The self link of the encryption key that is stored in Google Cloud KMS
kmsKeySelfLink
This property is required.
Changes to this property will trigger replacement.
String
The self link of the encryption key that is stored in Google Cloud KMS

InstanceTemplateDiskSourceImageEncryptionKey
, InstanceTemplateDiskSourceImageEncryptionKeyArgs

KmsKeySelfLink
This property is required.
Changes to this property will trigger replacement.
string
The self link of the encryption key that is stored in Google Cloud KMS.
KmsKeyServiceAccount Changes to this property will trigger replacement. string
The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.
KmsKeySelfLink
This property is required.
Changes to this property will trigger replacement.
string
The self link of the encryption key that is stored in Google Cloud KMS.
KmsKeyServiceAccount Changes to this property will trigger replacement. string
The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.
kmsKeySelfLink
This property is required.
Changes to this property will trigger replacement.
String
The self link of the encryption key that is stored in Google Cloud KMS.
kmsKeyServiceAccount Changes to this property will trigger replacement. String
The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.
kmsKeySelfLink
This property is required.
Changes to this property will trigger replacement.
string
The self link of the encryption key that is stored in Google Cloud KMS.
kmsKeyServiceAccount Changes to this property will trigger replacement. string
The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.
kms_key_self_link
This property is required.
Changes to this property will trigger replacement.
str
The self link of the encryption key that is stored in Google Cloud KMS.
kms_key_service_account Changes to this property will trigger replacement. str
The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.
kmsKeySelfLink
This property is required.
Changes to this property will trigger replacement.
String
The self link of the encryption key that is stored in Google Cloud KMS.
kmsKeyServiceAccount Changes to this property will trigger replacement. String
The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.

InstanceTemplateDiskSourceSnapshotEncryptionKey
, InstanceTemplateDiskSourceSnapshotEncryptionKeyArgs

KmsKeySelfLink
This property is required.
Changes to this property will trigger replacement.
string
The self link of the encryption key that is stored in Google Cloud KMS.
KmsKeyServiceAccount Changes to this property will trigger replacement. string
The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.
KmsKeySelfLink
This property is required.
Changes to this property will trigger replacement.
string
The self link of the encryption key that is stored in Google Cloud KMS.
KmsKeyServiceAccount Changes to this property will trigger replacement. string
The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.
kmsKeySelfLink
This property is required.
Changes to this property will trigger replacement.
String
The self link of the encryption key that is stored in Google Cloud KMS.
kmsKeyServiceAccount Changes to this property will trigger replacement. String
The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.
kmsKeySelfLink
This property is required.
Changes to this property will trigger replacement.
string
The self link of the encryption key that is stored in Google Cloud KMS.
kmsKeyServiceAccount Changes to this property will trigger replacement. string
The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.
kms_key_self_link
This property is required.
Changes to this property will trigger replacement.
str
The self link of the encryption key that is stored in Google Cloud KMS.
kms_key_service_account Changes to this property will trigger replacement. str
The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.
kmsKeySelfLink
This property is required.
Changes to this property will trigger replacement.
String
The self link of the encryption key that is stored in Google Cloud KMS.
kmsKeyServiceAccount Changes to this property will trigger replacement. String
The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.

InstanceTemplateGuestAccelerator
, InstanceTemplateGuestAcceleratorArgs

Count
This property is required.
Changes to this property will trigger replacement.
int
The number of the guest accelerator cards exposed to this instance.
Type
This property is required.
Changes to this property will trigger replacement.
string
The accelerator type resource to expose to this instance. E.g. nvidia-tesla-k80.
Count
This property is required.
Changes to this property will trigger replacement.
int
The number of the guest accelerator cards exposed to this instance.
Type
This property is required.
Changes to this property will trigger replacement.
string
The accelerator type resource to expose to this instance. E.g. nvidia-tesla-k80.
count
This property is required.
Changes to this property will trigger replacement.
Integer
The number of the guest accelerator cards exposed to this instance.
type
This property is required.
Changes to this property will trigger replacement.
String
The accelerator type resource to expose to this instance. E.g. nvidia-tesla-k80.
count
This property is required.
Changes to this property will trigger replacement.
number
The number of the guest accelerator cards exposed to this instance.
type
This property is required.
Changes to this property will trigger replacement.
string
The accelerator type resource to expose to this instance. E.g. nvidia-tesla-k80.
count
This property is required.
Changes to this property will trigger replacement.
int
The number of the guest accelerator cards exposed to this instance.
type
This property is required.
Changes to this property will trigger replacement.
str
The accelerator type resource to expose to this instance. E.g. nvidia-tesla-k80.
count
This property is required.
Changes to this property will trigger replacement.
Number
The number of the guest accelerator cards exposed to this instance.
type
This property is required.
Changes to this property will trigger replacement.
String
The accelerator type resource to expose to this instance. E.g. nvidia-tesla-k80.

InstanceTemplateNetworkInterface
, InstanceTemplateNetworkInterfaceArgs

AccessConfigs Changes to this property will trigger replacement. List<InstanceTemplateNetworkInterfaceAccessConfig>
Access configurations, i.e. IPs via which this instance can be accessed via the Internet. Omit to ensure that the instance is not accessible from the Internet (this means that ssh provisioners will not work unless you can send traffic to the instance's network (e.g. via tunnel or because it is running on another cloud instance on that network). This block can be specified once per network_interface. Structure documented below.
AliasIpRanges Changes to this property will trigger replacement. List<InstanceTemplateNetworkInterfaceAliasIpRange>
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 Changes to this property will trigger replacement. int
The prefix length of the primary internal IPv6 range.
Ipv6AccessConfigs Changes to this property will trigger replacement. List<InstanceTemplateNetworkInterfaceIpv6AccessConfig>
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 Changes to this property will trigger replacement. 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 Changes to this property will trigger replacement. string
An IPv6 internal network address for this network interface. If not specified, Google Cloud will automatically assign an internal IPv6 address from the instance's subnetwork.
Name Changes to this property will trigger replacement. string
The name of the instance template. If you leave this blank, the provider will auto-generate a unique name.
Network Changes to this property will trigger replacement. string
The name or self_link of the network to attach this interface to. Use network attribute for Legacy or Auto subnetted networks and subnetwork for custom subnetted networks.
NetworkAttachment Changes to this property will trigger replacement. string
The URL of the network attachment that this interface should connect to in the following format: projects/{projectNumber}/regions/{region_name}/networkAttachments/{network_attachment_name}.
NetworkIp Changes to this property will trigger replacement. string
The private IP address to assign to the instance. If empty, the address will be automatically assigned.
NicType Changes to this property will trigger replacement. string
The type of vNIC to be used on this interface. Possible values: GVNIC, VIRTIO_NET, MRDMA, IRDMA.
QueueCount Changes to this property will trigger replacement. 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 Changes to this property will trigger replacement. string
The stack type for this network interface to identify whether the IPv6 feature is enabled or not. Values are IPV4_IPV6, IPV6_ONLY or IPV4_ONLY. If not specified, IPV4_ONLY will be used.
Subnetwork Changes to this property will trigger replacement. string
the name of the subnetwork to attach this interface to. The subnetwork must exist in the same region this instance will be created in. Either network or subnetwork must be provided.
SubnetworkProject Changes to this property will trigger replacement. string
The ID of the project in which the subnetwork belongs. If it is not provided, the provider project is used.
AccessConfigs Changes to this property will trigger replacement. []InstanceTemplateNetworkInterfaceAccessConfig
Access configurations, i.e. IPs via which this instance can be accessed via the Internet. Omit to ensure that the instance is not accessible from the Internet (this means that ssh provisioners will not work unless you can send traffic to the instance's network (e.g. via tunnel or because it is running on another cloud instance on that network). This block can be specified once per network_interface. Structure documented below.
AliasIpRanges Changes to this property will trigger replacement. []InstanceTemplateNetworkInterfaceAliasIpRange
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 Changes to this property will trigger replacement. int
The prefix length of the primary internal IPv6 range.
Ipv6AccessConfigs Changes to this property will trigger replacement. []InstanceTemplateNetworkInterfaceIpv6AccessConfig
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 Changes to this property will trigger replacement. 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 Changes to this property will trigger replacement. string
An IPv6 internal network address for this network interface. If not specified, Google Cloud will automatically assign an internal IPv6 address from the instance's subnetwork.
Name Changes to this property will trigger replacement. string
The name of the instance template. If you leave this blank, the provider will auto-generate a unique name.
Network Changes to this property will trigger replacement. string
The name or self_link of the network to attach this interface to. Use network attribute for Legacy or Auto subnetted networks and subnetwork for custom subnetted networks.
NetworkAttachment Changes to this property will trigger replacement. string
The URL of the network attachment that this interface should connect to in the following format: projects/{projectNumber}/regions/{region_name}/networkAttachments/{network_attachment_name}.
NetworkIp Changes to this property will trigger replacement. string
The private IP address to assign to the instance. If empty, the address will be automatically assigned.
NicType Changes to this property will trigger replacement. string
The type of vNIC to be used on this interface. Possible values: GVNIC, VIRTIO_NET, MRDMA, IRDMA.
QueueCount Changes to this property will trigger replacement. 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 Changes to this property will trigger replacement. string
The stack type for this network interface to identify whether the IPv6 feature is enabled or not. Values are IPV4_IPV6, IPV6_ONLY or IPV4_ONLY. If not specified, IPV4_ONLY will be used.
Subnetwork Changes to this property will trigger replacement. string
the name of the subnetwork to attach this interface to. The subnetwork must exist in the same region this instance will be created in. Either network or subnetwork must be provided.
SubnetworkProject Changes to this property will trigger replacement. string
The ID of the project in which the subnetwork belongs. If it is not provided, the provider project is used.
accessConfigs Changes to this property will trigger replacement. List<InstanceTemplateNetworkInterfaceAccessConfig>
Access configurations, i.e. IPs via which this instance can be accessed via the Internet. Omit to ensure that the instance is not accessible from the Internet (this means that ssh provisioners will not work unless you can send traffic to the instance's network (e.g. via tunnel or because it is running on another cloud instance on that network). This block can be specified once per network_interface. Structure documented below.
aliasIpRanges Changes to this property will trigger replacement. List<InstanceTemplateNetworkInterfaceAliasIpRange>
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 Changes to this property will trigger replacement. Integer
The prefix length of the primary internal IPv6 range.
ipv6AccessConfigs Changes to this property will trigger replacement. List<InstanceTemplateNetworkInterfaceIpv6AccessConfig>
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 Changes to this property will trigger replacement. 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 Changes to this property will trigger replacement. String
An IPv6 internal network address for this network interface. If not specified, Google Cloud will automatically assign an internal IPv6 address from the instance's subnetwork.
name Changes to this property will trigger replacement. String
The name of the instance template. If you leave this blank, the provider will auto-generate a unique name.
network Changes to this property will trigger replacement. String
The name or self_link of the network to attach this interface to. Use network attribute for Legacy or Auto subnetted networks and subnetwork for custom subnetted networks.
networkAttachment Changes to this property will trigger replacement. String
The URL of the network attachment that this interface should connect to in the following format: projects/{projectNumber}/regions/{region_name}/networkAttachments/{network_attachment_name}.
networkIp Changes to this property will trigger replacement. String
The private IP address to assign to the instance. If empty, the address will be automatically assigned.
nicType Changes to this property will trigger replacement. String
The type of vNIC to be used on this interface. Possible values: GVNIC, VIRTIO_NET, MRDMA, IRDMA.
queueCount Changes to this property will trigger replacement. 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 Changes to this property will trigger replacement. String
The stack type for this network interface to identify whether the IPv6 feature is enabled or not. Values are IPV4_IPV6, IPV6_ONLY or IPV4_ONLY. If not specified, IPV4_ONLY will be used.
subnetwork Changes to this property will trigger replacement. String
the name of the subnetwork to attach this interface to. The subnetwork must exist in the same region this instance will be created in. Either network or subnetwork must be provided.
subnetworkProject Changes to this property will trigger replacement. String
The ID of the project in which the subnetwork belongs. If it is not provided, the provider project is used.
accessConfigs Changes to this property will trigger replacement. InstanceTemplateNetworkInterfaceAccessConfig[]
Access configurations, i.e. IPs via which this instance can be accessed via the Internet. Omit to ensure that the instance is not accessible from the Internet (this means that ssh provisioners will not work unless you can send traffic to the instance's network (e.g. via tunnel or because it is running on another cloud instance on that network). This block can be specified once per network_interface. Structure documented below.
aliasIpRanges Changes to this property will trigger replacement. InstanceTemplateNetworkInterfaceAliasIpRange[]
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 Changes to this property will trigger replacement. number
The prefix length of the primary internal IPv6 range.
ipv6AccessConfigs Changes to this property will trigger replacement. InstanceTemplateNetworkInterfaceIpv6AccessConfig[]
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 Changes to this property will trigger replacement. 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 Changes to this property will trigger replacement. string
An IPv6 internal network address for this network interface. If not specified, Google Cloud will automatically assign an internal IPv6 address from the instance's subnetwork.
name Changes to this property will trigger replacement. string
The name of the instance template. If you leave this blank, the provider will auto-generate a unique name.
network Changes to this property will trigger replacement. string
The name or self_link of the network to attach this interface to. Use network attribute for Legacy or Auto subnetted networks and subnetwork for custom subnetted networks.
networkAttachment Changes to this property will trigger replacement. string
The URL of the network attachment that this interface should connect to in the following format: projects/{projectNumber}/regions/{region_name}/networkAttachments/{network_attachment_name}.
networkIp Changes to this property will trigger replacement. string
The private IP address to assign to the instance. If empty, the address will be automatically assigned.
nicType Changes to this property will trigger replacement. string
The type of vNIC to be used on this interface. Possible values: GVNIC, VIRTIO_NET, MRDMA, IRDMA.
queueCount Changes to this property will trigger replacement. 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 Changes to this property will trigger replacement. string
The stack type for this network interface to identify whether the IPv6 feature is enabled or not. Values are IPV4_IPV6, IPV6_ONLY or IPV4_ONLY. If not specified, IPV4_ONLY will be used.
subnetwork Changes to this property will trigger replacement. string
the name of the subnetwork to attach this interface to. The subnetwork must exist in the same region this instance will be created in. Either network or subnetwork must be provided.
subnetworkProject Changes to this property will trigger replacement. string
The ID of the project in which the subnetwork belongs. If it is not provided, the provider project is used.
access_configs Changes to this property will trigger replacement. Sequence[InstanceTemplateNetworkInterfaceAccessConfig]
Access configurations, i.e. IPs via which this instance can be accessed via the Internet. Omit to ensure that the instance is not accessible from the Internet (this means that ssh provisioners will not work unless you can send traffic to the instance's network (e.g. via tunnel or because it is running on another cloud instance on that network). This block can be specified once per network_interface. Structure documented below.
alias_ip_ranges Changes to this property will trigger replacement. Sequence[InstanceTemplateNetworkInterfaceAliasIpRange]
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 Changes to this property will trigger replacement. int
The prefix length of the primary internal IPv6 range.
ipv6_access_configs Changes to this property will trigger replacement. Sequence[InstanceTemplateNetworkInterfaceIpv6AccessConfig]
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 Changes to this property will trigger replacement. 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 Changes to this property will trigger replacement. str
An IPv6 internal network address for this network interface. If not specified, Google Cloud will automatically assign an internal IPv6 address from the instance's subnetwork.
name Changes to this property will trigger replacement. str
The name of the instance template. If you leave this blank, the provider will auto-generate a unique name.
network Changes to this property will trigger replacement. str
The name or self_link of the network to attach this interface to. Use network attribute for Legacy or Auto subnetted networks and subnetwork for custom subnetted networks.
network_attachment Changes to this property will trigger replacement. str
The URL of the network attachment that this interface should connect to in the following format: projects/{projectNumber}/regions/{region_name}/networkAttachments/{network_attachment_name}.
network_ip Changes to this property will trigger replacement. str
The private IP address to assign to the instance. If empty, the address will be automatically assigned.
nic_type Changes to this property will trigger replacement. str
The type of vNIC to be used on this interface. Possible values: GVNIC, VIRTIO_NET, MRDMA, IRDMA.
queue_count Changes to this property will trigger replacement. 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 Changes to this property will trigger replacement. str
The stack type for this network interface to identify whether the IPv6 feature is enabled or not. Values are IPV4_IPV6, IPV6_ONLY or IPV4_ONLY. If not specified, IPV4_ONLY will be used.
subnetwork Changes to this property will trigger replacement. str
the name of the subnetwork to attach this interface to. The subnetwork must exist in the same region this instance will be created in. Either network or subnetwork must be provided.
subnetwork_project Changes to this property will trigger replacement. str
The ID of the project in which the subnetwork belongs. If it is not provided, the provider project is used.
accessConfigs Changes to this property will trigger replacement. List<Property Map>
Access configurations, i.e. IPs via which this instance can be accessed via the Internet. Omit to ensure that the instance is not accessible from the Internet (this means that ssh provisioners will not work unless you can send traffic to the instance's network (e.g. via tunnel or because it is running on another cloud instance on that network). This block can be specified once per network_interface. Structure documented below.
aliasIpRanges Changes to this property will trigger replacement. 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 Changes to this property will trigger replacement. Number
The prefix length of the primary internal IPv6 range.
ipv6AccessConfigs Changes to this property will trigger replacement. 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 Changes to this property will trigger replacement. 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 Changes to this property will trigger replacement. String
An IPv6 internal network address for this network interface. If not specified, Google Cloud will automatically assign an internal IPv6 address from the instance's subnetwork.
name Changes to this property will trigger replacement. String
The name of the instance template. If you leave this blank, the provider will auto-generate a unique name.
network Changes to this property will trigger replacement. String
The name or self_link of the network to attach this interface to. Use network attribute for Legacy or Auto subnetted networks and subnetwork for custom subnetted networks.
networkAttachment Changes to this property will trigger replacement. String
The URL of the network attachment that this interface should connect to in the following format: projects/{projectNumber}/regions/{region_name}/networkAttachments/{network_attachment_name}.
networkIp Changes to this property will trigger replacement. String
The private IP address to assign to the instance. If empty, the address will be automatically assigned.
nicType Changes to this property will trigger replacement. String
The type of vNIC to be used on this interface. Possible values: GVNIC, VIRTIO_NET, MRDMA, IRDMA.
queueCount Changes to this property will trigger replacement. 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 Changes to this property will trigger replacement. String
The stack type for this network interface to identify whether the IPv6 feature is enabled or not. Values are IPV4_IPV6, IPV6_ONLY or IPV4_ONLY. If not specified, IPV4_ONLY will be used.
subnetwork Changes to this property will trigger replacement. String
the name of the subnetwork to attach this interface to. The subnetwork must exist in the same region this instance will be created in. Either network or subnetwork must be provided.
subnetworkProject Changes to this property will trigger replacement. String
The ID of the project in which the subnetwork belongs. If it is not provided, the provider project is used.

InstanceTemplateNetworkInterfaceAccessConfig
, InstanceTemplateNetworkInterfaceAccessConfigArgs

NatIp Changes to this property will trigger replacement. string
The IP address that will be 1:1 mapped to the instance's network ip. If not given, one will be generated.
NetworkTier Changes to this property will trigger replacement. string
The service-level to be provided for IPv6 traffic when the subnet has an external subnet. Only PREMIUM and STANDARD tier is valid for IPv6.
PublicPtrDomainName Changes to this property will trigger replacement. string
The DNS domain name for the public PTR record.The DNS domain name for the public PTR record.
NatIp Changes to this property will trigger replacement. string
The IP address that will be 1:1 mapped to the instance's network ip. If not given, one will be generated.
NetworkTier Changes to this property will trigger replacement. string
The service-level to be provided for IPv6 traffic when the subnet has an external subnet. Only PREMIUM and STANDARD tier is valid for IPv6.
PublicPtrDomainName Changes to this property will trigger replacement. string
The DNS domain name for the public PTR record.The DNS domain name for the public PTR record.
natIp Changes to this property will trigger replacement. String
The IP address that will be 1:1 mapped to the instance's network ip. If not given, one will be generated.
networkTier Changes to this property will trigger replacement. String
The service-level to be provided for IPv6 traffic when the subnet has an external subnet. Only PREMIUM and STANDARD tier is valid for IPv6.
publicPtrDomainName Changes to this property will trigger replacement. String
The DNS domain name for the public PTR record.The DNS domain name for the public PTR record.
natIp Changes to this property will trigger replacement. string
The IP address that will be 1:1 mapped to the instance's network ip. If not given, one will be generated.
networkTier Changes to this property will trigger replacement. string
The service-level to be provided for IPv6 traffic when the subnet has an external subnet. Only PREMIUM and STANDARD tier is valid for IPv6.
publicPtrDomainName Changes to this property will trigger replacement. string
The DNS domain name for the public PTR record.The DNS domain name for the public PTR record.
nat_ip Changes to this property will trigger replacement. 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 Changes to this property will trigger replacement. str
The service-level to be provided for IPv6 traffic when the subnet has an external subnet. Only PREMIUM and STANDARD tier is valid for IPv6.
public_ptr_domain_name Changes to this property will trigger replacement. str
The DNS domain name for the public PTR record.The DNS domain name for the public PTR record.
natIp Changes to this property will trigger replacement. String
The IP address that will be 1:1 mapped to the instance's network ip. If not given, one will be generated.
networkTier Changes to this property will trigger replacement. String
The service-level to be provided for IPv6 traffic when the subnet has an external subnet. Only PREMIUM and STANDARD tier is valid for IPv6.
publicPtrDomainName Changes to this property will trigger replacement. String
The DNS domain name for the public PTR record.The DNS domain name for the public PTR record.

InstanceTemplateNetworkInterfaceAliasIpRange
, InstanceTemplateNetworkInterfaceAliasIpRangeArgs

IpCidrRange
This property is required.
Changes to this property will trigger replacement.
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. At the time of writing only a netmask (e.g. /24) may be supplied, with a CIDR format resulting in an API error.
SubnetworkRangeName Changes to this property will trigger replacement. 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
This property is required.
Changes to this property will trigger replacement.
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. At the time of writing only a netmask (e.g. /24) may be supplied, with a CIDR format resulting in an API error.
SubnetworkRangeName Changes to this property will trigger replacement. 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
This property is required.
Changes to this property will trigger replacement.
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. At the time of writing only a netmask (e.g. /24) may be supplied, with a CIDR format resulting in an API error.
subnetworkRangeName Changes to this property will trigger replacement. 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
This property is required.
Changes to this property will trigger replacement.
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. At the time of writing only a netmask (e.g. /24) may be supplied, with a CIDR format resulting in an API error.
subnetworkRangeName Changes to this property will trigger replacement. 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
This property is required.
Changes to this property will trigger replacement.
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. At the time of writing only a netmask (e.g. /24) may be supplied, with a CIDR format resulting in an API error.
subnetwork_range_name Changes to this property will trigger replacement. 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
This property is required.
Changes to this property will trigger replacement.
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. At the time of writing only a netmask (e.g. /24) may be supplied, with a CIDR format resulting in an API error.
subnetworkRangeName Changes to this property will trigger replacement. 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.

InstanceTemplateNetworkInterfaceIpv6AccessConfig
, InstanceTemplateNetworkInterfaceIpv6AccessConfigArgs

NetworkTier
This property is required.
Changes to this property will trigger replacement.
string
The service-level to be provided for IPv6 traffic when the subnet has an external subnet. Only PREMIUM tier is valid for IPv6
ExternalIpv6 Changes to this property will trigger replacement. string
The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. The field is output only, an IPv6 address from a subnetwork associated with the instance will be allocated dynamically.
ExternalIpv6PrefixLength Changes to this property will trigger replacement. string
The prefix length of the external IPv6 range.
Name Changes to this property will trigger replacement. string
The name of the instance template. If you leave this blank, the provider will auto-generate a unique name.
PublicPtrDomainName Changes to this property will trigger replacement. string
The domain name to be used when creating DNSv6 records for the external IPv6 ranges.
NetworkTier
This property is required.
Changes to this property will trigger replacement.
string
The service-level to be provided for IPv6 traffic when the subnet has an external subnet. Only PREMIUM tier is valid for IPv6
ExternalIpv6 Changes to this property will trigger replacement. string
The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. The field is output only, an IPv6 address from a subnetwork associated with the instance will be allocated dynamically.
ExternalIpv6PrefixLength Changes to this property will trigger replacement. string
The prefix length of the external IPv6 range.
Name Changes to this property will trigger replacement. string
The name of the instance template. If you leave this blank, the provider will auto-generate a unique name.
PublicPtrDomainName Changes to this property will trigger replacement. string
The domain name to be used when creating DNSv6 records for the external IPv6 ranges.
networkTier
This property is required.
Changes to this property will trigger replacement.
String
The service-level to be provided for IPv6 traffic when the subnet has an external subnet. Only PREMIUM tier is valid for IPv6
externalIpv6 Changes to this property will trigger replacement. String
The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. The field is output only, an IPv6 address from a subnetwork associated with the instance will be allocated dynamically.
externalIpv6PrefixLength Changes to this property will trigger replacement. String
The prefix length of the external IPv6 range.
name Changes to this property will trigger replacement. String
The name of the instance template. If you leave this blank, the provider will auto-generate a unique name.
publicPtrDomainName Changes to this property will trigger replacement. String
The domain name to be used when creating DNSv6 records for the external IPv6 ranges.
networkTier
This property is required.
Changes to this property will trigger replacement.
string
The service-level to be provided for IPv6 traffic when the subnet has an external subnet. Only PREMIUM tier is valid for IPv6
externalIpv6 Changes to this property will trigger replacement. string
The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. The field is output only, an IPv6 address from a subnetwork associated with the instance will be allocated dynamically.
externalIpv6PrefixLength Changes to this property will trigger replacement. string
The prefix length of the external IPv6 range.
name Changes to this property will trigger replacement. string
The name of the instance template. If you leave this blank, the provider will auto-generate a unique name.
publicPtrDomainName Changes to this property will trigger replacement. string
The domain name to be used when creating DNSv6 records for the external IPv6 ranges.
network_tier
This property is required.
Changes to this property will trigger replacement.
str
The service-level to be provided for IPv6 traffic when the subnet has an external subnet. Only PREMIUM tier is valid for IPv6
external_ipv6 Changes to this property will trigger replacement. str
The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. The field is output only, an IPv6 address from a subnetwork associated with the instance will be allocated dynamically.
external_ipv6_prefix_length Changes to this property will trigger replacement. str
The prefix length of the external IPv6 range.
name Changes to this property will trigger replacement. str
The name of the instance template. If you leave this blank, the provider will auto-generate a unique name.
public_ptr_domain_name Changes to this property will trigger replacement. str
The domain name to be used when creating DNSv6 records for the external IPv6 ranges.
networkTier
This property is required.
Changes to this property will trigger replacement.
String
The service-level to be provided for IPv6 traffic when the subnet has an external subnet. Only PREMIUM tier is valid for IPv6
externalIpv6 Changes to this property will trigger replacement. String
The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. The field is output only, an IPv6 address from a subnetwork associated with the instance will be allocated dynamically.
externalIpv6PrefixLength Changes to this property will trigger replacement. String
The prefix length of the external IPv6 range.
name Changes to this property will trigger replacement. String
The name of the instance template. If you leave this blank, the provider will auto-generate a unique name.
publicPtrDomainName Changes to this property will trigger replacement. String
The domain name to be used when creating DNSv6 records for the external IPv6 ranges.

InstanceTemplateNetworkPerformanceConfig
, InstanceTemplateNetworkPerformanceConfigArgs

TotalEgressBandwidthTier
This property is required.
Changes to this property will trigger replacement.
string
The egress bandwidth tier to enable. Possible values: TIER_1, DEFAULT
TotalEgressBandwidthTier
This property is required.
Changes to this property will trigger replacement.
string
The egress bandwidth tier to enable. Possible values: TIER_1, DEFAULT
totalEgressBandwidthTier
This property is required.
Changes to this property will trigger replacement.
String
The egress bandwidth tier to enable. Possible values: TIER_1, DEFAULT
totalEgressBandwidthTier
This property is required.
Changes to this property will trigger replacement.
string
The egress bandwidth tier to enable. Possible values: TIER_1, DEFAULT
total_egress_bandwidth_tier
This property is required.
Changes to this property will trigger replacement.
str
The egress bandwidth tier to enable. Possible values: TIER_1, DEFAULT
totalEgressBandwidthTier
This property is required.
Changes to this property will trigger replacement.
String
The egress bandwidth tier to enable. Possible values: TIER_1, DEFAULT

InstanceTemplateReservationAffinity
, InstanceTemplateReservationAffinityArgs

Type
This property is required.
Changes to this property will trigger replacement.
string
The type of reservation from which this instance can consume resources.
SpecificReservation Changes to this property will trigger replacement. InstanceTemplateReservationAffinitySpecificReservation
Specifies the label selector for the reservation to use.. Structure is documented below.
Type
This property is required.
Changes to this property will trigger replacement.
string
The type of reservation from which this instance can consume resources.
SpecificReservation Changes to this property will trigger replacement. InstanceTemplateReservationAffinitySpecificReservation
Specifies the label selector for the reservation to use.. Structure is documented below.
type
This property is required.
Changes to this property will trigger replacement.
String
The type of reservation from which this instance can consume resources.
specificReservation Changes to this property will trigger replacement. InstanceTemplateReservationAffinitySpecificReservation
Specifies the label selector for the reservation to use.. Structure is documented below.
type
This property is required.
Changes to this property will trigger replacement.
string
The type of reservation from which this instance can consume resources.
specificReservation Changes to this property will trigger replacement. InstanceTemplateReservationAffinitySpecificReservation
Specifies the label selector for the reservation to use.. Structure is documented below.
type
This property is required.
Changes to this property will trigger replacement.
str
The type of reservation from which this instance can consume resources.
specific_reservation Changes to this property will trigger replacement. InstanceTemplateReservationAffinitySpecificReservation
Specifies the label selector for the reservation to use.. Structure is documented below.
type
This property is required.
Changes to this property will trigger replacement.
String
The type of reservation from which this instance can consume resources.
specificReservation Changes to this property will trigger replacement. Property Map
Specifies the label selector for the reservation to use.. Structure is documented below.

InstanceTemplateReservationAffinitySpecificReservation
, InstanceTemplateReservationAffinitySpecificReservationArgs

Key
This property is required.
Changes to this property will trigger replacement.
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
This property is required.
Changes to this property will trigger replacement.
List<string>
Corresponds to the label values of a reservation resource.
Key
This property is required.
Changes to this property will trigger replacement.
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
This property is required.
Changes to this property will trigger replacement.
[]string
Corresponds to the label values of a reservation resource.
key
This property is required.
Changes to this property will trigger replacement.
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
This property is required.
Changes to this property will trigger replacement.
List<String>
Corresponds to the label values of a reservation resource.
key
This property is required.
Changes to this property will trigger replacement.
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
This property is required.
Changes to this property will trigger replacement.
string[]
Corresponds to the label values of a reservation resource.
key
This property is required.
Changes to this property will trigger replacement.
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
This property is required.
Changes to this property will trigger replacement.
Sequence[str]
Corresponds to the label values of a reservation resource.
key
This property is required.
Changes to this property will trigger replacement.
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
This property is required.
Changes to this property will trigger replacement.
List<String>
Corresponds to the label values of a reservation resource.

InstanceTemplateScheduling
, InstanceTemplateSchedulingArgs

AutomaticRestart Changes to this property will trigger replacement. bool
Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). This defaults to true.
AvailabilityDomain Changes to this property will trigger replacement. int
Specifies the availability domain to place the instance in. The value must be a number between 1 and the number of availability domains specified in the spread placement policy attached to the instance.
GracefulShutdown Changes to this property will trigger replacement. InstanceTemplateSchedulingGracefulShutdown
Settings for the instance to perform a graceful shutdown. Structure is documented below.
HostErrorTimeoutSeconds Changes to this property will trigger replacement. int
Specifies the time in seconds for host error detection, the value must be within the range of [90, 330] with the increment of 30, if unset, the default behavior of host error recovery will be used.
InstanceTerminationAction Changes to this property will trigger replacement. string
Describe the type of termination action for SPOT VM. Can be STOP or DELETE. Read more on here
LocalSsdRecoveryTimeouts Changes to this property will trigger replacement. List<InstanceTemplateSchedulingLocalSsdRecoveryTimeout>
Specifies the maximum amount of time a Local Ssd Vm should wait while recovery of the Local Ssd state is attempted. Its value should be in between 0 and 168 hours with hour granularity and the default value being 1 hour.
MaintenanceInterval Changes to this property will trigger replacement. string
Specifies the frequency of planned maintenance events. The accepted values are: PERIODIC.
MaxRunDuration Changes to this property will trigger replacement. InstanceTemplateSchedulingMaxRunDuration
The duration of the instance. Instance will run and be terminated after then, the termination action could be defined in instance_termination_action. Structure is documented below.
MinNodeCpus Changes to this property will trigger replacement. int
Minimum number of cpus for the instance.
NodeAffinities Changes to this property will trigger replacement. List<InstanceTemplateSchedulingNodeAffinity>
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 Changes to this property will trigger replacement. string
Defines the maintenance behavior for this instance.
OnInstanceStopAction Changes to this property will trigger replacement. InstanceTemplateSchedulingOnInstanceStopAction
Specifies the action to be performed when the instance is terminated using max_run_duration and STOP instance_termination_action. Only support true discard_local_ssd at this point. Structure is documented below.
Preemptible Changes to this property will trigger replacement. bool
Allows instance to be preempted. This defaults to false. Read more on this here.
ProvisioningModel Changes to this property will trigger replacement. 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
TerminationTime Changes to this property will trigger replacement. string
Specifies the timestamp, when the instance will be terminated, in RFC3339 text format. If specified, the instance termination action will be performed at the termination time.
AutomaticRestart Changes to this property will trigger replacement. bool
Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). This defaults to true.
AvailabilityDomain Changes to this property will trigger replacement. int
Specifies the availability domain to place the instance in. The value must be a number between 1 and the number of availability domains specified in the spread placement policy attached to the instance.
GracefulShutdown Changes to this property will trigger replacement. InstanceTemplateSchedulingGracefulShutdown
Settings for the instance to perform a graceful shutdown. Structure is documented below.
HostErrorTimeoutSeconds Changes to this property will trigger replacement. int
Specifies the time in seconds for host error detection, the value must be within the range of [90, 330] with the increment of 30, if unset, the default behavior of host error recovery will be used.
InstanceTerminationAction Changes to this property will trigger replacement. string
Describe the type of termination action for SPOT VM. Can be STOP or DELETE. Read more on here
LocalSsdRecoveryTimeouts Changes to this property will trigger replacement. []InstanceTemplateSchedulingLocalSsdRecoveryTimeout
Specifies the maximum amount of time a Local Ssd Vm should wait while recovery of the Local Ssd state is attempted. Its value should be in between 0 and 168 hours with hour granularity and the default value being 1 hour.
MaintenanceInterval Changes to this property will trigger replacement. string
Specifies the frequency of planned maintenance events. The accepted values are: PERIODIC.
MaxRunDuration Changes to this property will trigger replacement. InstanceTemplateSchedulingMaxRunDuration
The duration of the instance. Instance will run and be terminated after then, the termination action could be defined in instance_termination_action. Structure is documented below.
MinNodeCpus Changes to this property will trigger replacement. int
Minimum number of cpus for the instance.
NodeAffinities Changes to this property will trigger replacement. []InstanceTemplateSchedulingNodeAffinity
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 Changes to this property will trigger replacement. string
Defines the maintenance behavior for this instance.
OnInstanceStopAction Changes to this property will trigger replacement. InstanceTemplateSchedulingOnInstanceStopAction
Specifies the action to be performed when the instance is terminated using max_run_duration and STOP instance_termination_action. Only support true discard_local_ssd at this point. Structure is documented below.
Preemptible Changes to this property will trigger replacement. bool
Allows instance to be preempted. This defaults to false. Read more on this here.
ProvisioningModel Changes to this property will trigger replacement. 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
TerminationTime Changes to this property will trigger replacement. string
Specifies the timestamp, when the instance will be terminated, in RFC3339 text format. If specified, the instance termination action will be performed at the termination time.
automaticRestart Changes to this property will trigger replacement. Boolean
Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). This defaults to true.
availabilityDomain Changes to this property will trigger replacement. Integer
Specifies the availability domain to place the instance in. The value must be a number between 1 and the number of availability domains specified in the spread placement policy attached to the instance.
gracefulShutdown Changes to this property will trigger replacement. InstanceTemplateSchedulingGracefulShutdown
Settings for the instance to perform a graceful shutdown. Structure is documented below.
hostErrorTimeoutSeconds Changes to this property will trigger replacement. Integer
Specifies the time in seconds for host error detection, the value must be within the range of [90, 330] with the increment of 30, if unset, the default behavior of host error recovery will be used.
instanceTerminationAction Changes to this property will trigger replacement. String
Describe the type of termination action for SPOT VM. Can be STOP or DELETE. Read more on here
localSsdRecoveryTimeouts Changes to this property will trigger replacement. List<InstanceTemplateSchedulingLocalSsdRecoveryTimeout>
Specifies the maximum amount of time a Local Ssd Vm should wait while recovery of the Local Ssd state is attempted. Its value should be in between 0 and 168 hours with hour granularity and the default value being 1 hour.
maintenanceInterval Changes to this property will trigger replacement. String
Specifies the frequency of planned maintenance events. The accepted values are: PERIODIC.
maxRunDuration Changes to this property will trigger replacement. InstanceTemplateSchedulingMaxRunDuration
The duration of the instance. Instance will run and be terminated after then, the termination action could be defined in instance_termination_action. Structure is documented below.
minNodeCpus Changes to this property will trigger replacement. Integer
Minimum number of cpus for the instance.
nodeAffinities Changes to this property will trigger replacement. List<InstanceTemplateSchedulingNodeAffinity>
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 Changes to this property will trigger replacement. String
Defines the maintenance behavior for this instance.
onInstanceStopAction Changes to this property will trigger replacement. InstanceTemplateSchedulingOnInstanceStopAction
Specifies the action to be performed when the instance is terminated using max_run_duration and STOP instance_termination_action. Only support true discard_local_ssd at this point. Structure is documented below.
preemptible Changes to this property will trigger replacement. Boolean
Allows instance to be preempted. This defaults to false. Read more on this here.
provisioningModel Changes to this property will trigger replacement. 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
terminationTime Changes to this property will trigger replacement. String
Specifies the timestamp, when the instance will be terminated, in RFC3339 text format. If specified, the instance termination action will be performed at the termination time.
automaticRestart Changes to this property will trigger replacement. boolean
Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). This defaults to true.
availabilityDomain Changes to this property will trigger replacement. number
Specifies the availability domain to place the instance in. The value must be a number between 1 and the number of availability domains specified in the spread placement policy attached to the instance.
gracefulShutdown Changes to this property will trigger replacement. InstanceTemplateSchedulingGracefulShutdown
Settings for the instance to perform a graceful shutdown. Structure is documented below.
hostErrorTimeoutSeconds Changes to this property will trigger replacement. number
Specifies the time in seconds for host error detection, the value must be within the range of [90, 330] with the increment of 30, if unset, the default behavior of host error recovery will be used.
instanceTerminationAction Changes to this property will trigger replacement. string
Describe the type of termination action for SPOT VM. Can be STOP or DELETE. Read more on here
localSsdRecoveryTimeouts Changes to this property will trigger replacement. InstanceTemplateSchedulingLocalSsdRecoveryTimeout[]
Specifies the maximum amount of time a Local Ssd Vm should wait while recovery of the Local Ssd state is attempted. Its value should be in between 0 and 168 hours with hour granularity and the default value being 1 hour.
maintenanceInterval Changes to this property will trigger replacement. string
Specifies the frequency of planned maintenance events. The accepted values are: PERIODIC.
maxRunDuration Changes to this property will trigger replacement. InstanceTemplateSchedulingMaxRunDuration
The duration of the instance. Instance will run and be terminated after then, the termination action could be defined in instance_termination_action. Structure is documented below.
minNodeCpus Changes to this property will trigger replacement. number
Minimum number of cpus for the instance.
nodeAffinities Changes to this property will trigger replacement. InstanceTemplateSchedulingNodeAffinity[]
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 Changes to this property will trigger replacement. string
Defines the maintenance behavior for this instance.
onInstanceStopAction Changes to this property will trigger replacement. InstanceTemplateSchedulingOnInstanceStopAction
Specifies the action to be performed when the instance is terminated using max_run_duration and STOP instance_termination_action. Only support true discard_local_ssd at this point. Structure is documented below.
preemptible Changes to this property will trigger replacement. boolean
Allows instance to be preempted. This defaults to false. Read more on this here.
provisioningModel Changes to this property will trigger replacement. 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
terminationTime Changes to this property will trigger replacement. string
Specifies the timestamp, when the instance will be terminated, in RFC3339 text format. If specified, the instance termination action will be performed at the termination time.
automatic_restart Changes to this property will trigger replacement. bool
Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). This defaults to true.
availability_domain Changes to this property will trigger replacement. int
Specifies the availability domain to place the instance in. The value must be a number between 1 and the number of availability domains specified in the spread placement policy attached to the instance.
graceful_shutdown Changes to this property will trigger replacement. InstanceTemplateSchedulingGracefulShutdown
Settings for the instance to perform a graceful shutdown. Structure is documented below.
host_error_timeout_seconds Changes to this property will trigger replacement. int
Specifies the time in seconds for host error detection, the value must be within the range of [90, 330] with the increment of 30, if unset, the default behavior of host error recovery will be used.
instance_termination_action Changes to this property will trigger replacement. str
Describe the type of termination action for SPOT VM. Can be STOP or DELETE. Read more on here
local_ssd_recovery_timeouts Changes to this property will trigger replacement. Sequence[InstanceTemplateSchedulingLocalSsdRecoveryTimeout]
Specifies the maximum amount of time a Local Ssd Vm should wait while recovery of the Local Ssd state is attempted. Its value should be in between 0 and 168 hours with hour granularity and the default value being 1 hour.
maintenance_interval Changes to this property will trigger replacement. str
Specifies the frequency of planned maintenance events. The accepted values are: PERIODIC.
max_run_duration Changes to this property will trigger replacement. InstanceTemplateSchedulingMaxRunDuration
The duration of the instance. Instance will run and be terminated after then, the termination action could be defined in instance_termination_action. Structure is documented below.
min_node_cpus Changes to this property will trigger replacement. int
Minimum number of cpus for the instance.
node_affinities Changes to this property will trigger replacement. Sequence[InstanceTemplateSchedulingNodeAffinity]
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 Changes to this property will trigger replacement. str
Defines the maintenance behavior for this instance.
on_instance_stop_action Changes to this property will trigger replacement. InstanceTemplateSchedulingOnInstanceStopAction
Specifies the action to be performed when the instance is terminated using max_run_duration and STOP instance_termination_action. Only support true discard_local_ssd at this point. Structure is documented below.
preemptible Changes to this property will trigger replacement. bool
Allows instance to be preempted. This defaults to false. Read more on this here.
provisioning_model Changes to this property will trigger replacement. 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
termination_time Changes to this property will trigger replacement. str
Specifies the timestamp, when the instance will be terminated, in RFC3339 text format. If specified, the instance termination action will be performed at the termination time.
automaticRestart Changes to this property will trigger replacement. Boolean
Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). This defaults to true.
availabilityDomain Changes to this property will trigger replacement. Number
Specifies the availability domain to place the instance in. The value must be a number between 1 and the number of availability domains specified in the spread placement policy attached to the instance.
gracefulShutdown Changes to this property will trigger replacement. Property Map
Settings for the instance to perform a graceful shutdown. Structure is documented below.
hostErrorTimeoutSeconds Changes to this property will trigger replacement. Number
Specifies the time in seconds for host error detection, the value must be within the range of [90, 330] with the increment of 30, if unset, the default behavior of host error recovery will be used.
instanceTerminationAction Changes to this property will trigger replacement. String
Describe the type of termination action for SPOT VM. Can be STOP or DELETE. Read more on here
localSsdRecoveryTimeouts Changes to this property will trigger replacement. List<Property Map>
Specifies the maximum amount of time a Local Ssd Vm should wait while recovery of the Local Ssd state is attempted. Its value should be in between 0 and 168 hours with hour granularity and the default value being 1 hour.
maintenanceInterval Changes to this property will trigger replacement. String
Specifies the frequency of planned maintenance events. The accepted values are: PERIODIC.
maxRunDuration Changes to this property will trigger replacement. Property Map
The duration of the instance. Instance will run and be terminated after then, the termination action could be defined in instance_termination_action. Structure is documented below.
minNodeCpus Changes to this property will trigger replacement. Number
Minimum number of cpus for the instance.
nodeAffinities Changes to this property will trigger replacement. 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 Changes to this property will trigger replacement. String
Defines the maintenance behavior for this instance.
onInstanceStopAction Changes to this property will trigger replacement. Property Map
Specifies the action to be performed when the instance is terminated using max_run_duration and STOP instance_termination_action. Only support true discard_local_ssd at this point. Structure is documented below.
preemptible Changes to this property will trigger replacement. Boolean
Allows instance to be preempted. This defaults to false. Read more on this here.
provisioningModel Changes to this property will trigger replacement. 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
terminationTime Changes to this property will trigger replacement. String
Specifies the timestamp, when the instance will be terminated, in RFC3339 text format. If specified, the instance termination action will be performed at the termination time.

InstanceTemplateSchedulingGracefulShutdown
, InstanceTemplateSchedulingGracefulShutdownArgs

Enabled
This property is required.
Changes to this property will trigger replacement.
bool
Opts-in for graceful shutdown.
MaxDuration InstanceTemplateSchedulingGracefulShutdownMaxDuration
The time allotted for the instance to gracefully shut down. If the graceful shutdown isn't complete after this time, then the instance transitions to the STOPPING state. Structure is documented below:
Enabled
This property is required.
Changes to this property will trigger replacement.
bool
Opts-in for graceful shutdown.
MaxDuration InstanceTemplateSchedulingGracefulShutdownMaxDuration
The time allotted for the instance to gracefully shut down. If the graceful shutdown isn't complete after this time, then the instance transitions to the STOPPING state. Structure is documented below:
enabled
This property is required.
Changes to this property will trigger replacement.
Boolean
Opts-in for graceful shutdown.
maxDuration InstanceTemplateSchedulingGracefulShutdownMaxDuration
The time allotted for the instance to gracefully shut down. If the graceful shutdown isn't complete after this time, then the instance transitions to the STOPPING state. Structure is documented below:
enabled
This property is required.
Changes to this property will trigger replacement.
boolean
Opts-in for graceful shutdown.
maxDuration InstanceTemplateSchedulingGracefulShutdownMaxDuration
The time allotted for the instance to gracefully shut down. If the graceful shutdown isn't complete after this time, then the instance transitions to the STOPPING state. Structure is documented below:
enabled
This property is required.
Changes to this property will trigger replacement.
bool
Opts-in for graceful shutdown.
max_duration InstanceTemplateSchedulingGracefulShutdownMaxDuration
The time allotted for the instance to gracefully shut down. If the graceful shutdown isn't complete after this time, then the instance transitions to the STOPPING state. Structure is documented below:
enabled
This property is required.
Changes to this property will trigger replacement.
Boolean
Opts-in for graceful shutdown.
maxDuration Property Map
The time allotted for the instance to gracefully shut down. If the graceful shutdown isn't complete after this time, then the instance transitions to the STOPPING state. Structure is documented below:

InstanceTemplateSchedulingGracefulShutdownMaxDuration
, InstanceTemplateSchedulingGracefulShutdownMaxDurationArgs

Seconds
This property is required.
Changes to this property will trigger replacement.
int
Span of time at a resolution of a second. The value must be between 1 and 3600, which is 3,600 seconds (one hour).`
Nanos Changes to this property will trigger replacement. int
Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
Seconds
This property is required.
Changes to this property will trigger replacement.
int
Span of time at a resolution of a second. The value must be between 1 and 3600, which is 3,600 seconds (one hour).`
Nanos Changes to this property will trigger replacement. int
Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
seconds
This property is required.
Changes to this property will trigger replacement.
Integer
Span of time at a resolution of a second. The value must be between 1 and 3600, which is 3,600 seconds (one hour).`
nanos Changes to this property will trigger replacement. Integer
Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
seconds
This property is required.
Changes to this property will trigger replacement.
number
Span of time at a resolution of a second. The value must be between 1 and 3600, which is 3,600 seconds (one hour).`
nanos Changes to this property will trigger replacement. number
Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
seconds
This property is required.
Changes to this property will trigger replacement.
int
Span of time at a resolution of a second. The value must be between 1 and 3600, which is 3,600 seconds (one hour).`
nanos Changes to this property will trigger replacement. int
Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
seconds
This property is required.
Changes to this property will trigger replacement.
Number
Span of time at a resolution of a second. The value must be between 1 and 3600, which is 3,600 seconds (one hour).`
nanos Changes to this property will trigger replacement. 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.

InstanceTemplateSchedulingLocalSsdRecoveryTimeout
, InstanceTemplateSchedulingLocalSsdRecoveryTimeoutArgs

Seconds
This property is required.
Changes to this property will trigger replacement.
int
Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years.
Nanos Changes to this property will trigger replacement. int
Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
Seconds
This property is required.
Changes to this property will trigger replacement.
int
Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years.
Nanos Changes to this property will trigger replacement. int
Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
seconds
This property is required.
Changes to this property will trigger replacement.
Integer
Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years.
nanos Changes to this property will trigger replacement. Integer
Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
seconds
This property is required.
Changes to this property will trigger replacement.
number
Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years.
nanos Changes to this property will trigger replacement. number
Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
seconds
This property is required.
Changes to this property will trigger replacement.
int
Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years.
nanos Changes to this property will trigger replacement. int
Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
seconds
This property is required.
Changes to this property will trigger replacement.
Number
Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years.
nanos Changes to this property will trigger replacement. 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.

InstanceTemplateSchedulingMaxRunDuration
, InstanceTemplateSchedulingMaxRunDurationArgs

Seconds
This property is required.
Changes to this property will trigger replacement.
int
Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years.
Nanos Changes to this property will trigger replacement. int
Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
Seconds
This property is required.
Changes to this property will trigger replacement.
int
Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years.
Nanos Changes to this property will trigger replacement. int
Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
seconds
This property is required.
Changes to this property will trigger replacement.
Integer
Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years.
nanos Changes to this property will trigger replacement. Integer
Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
seconds
This property is required.
Changes to this property will trigger replacement.
number
Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years.
nanos Changes to this property will trigger replacement. number
Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
seconds
This property is required.
Changes to this property will trigger replacement.
int
Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years.
nanos Changes to this property will trigger replacement. int
Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
seconds
This property is required.
Changes to this property will trigger replacement.
Number
Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years.
nanos Changes to this property will trigger replacement. 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.

InstanceTemplateSchedulingNodeAffinity
, InstanceTemplateSchedulingNodeAffinityArgs

Key This property is required. string
The key for the node affinity label.
Operator This property is required. string
The operator. Can be IN for node-affinities or NOT_IN for anti-affinities.
Values This property is required. List<string>
Corresponds to the label values of a reservation resource.
Key This property is required. string
The key for the node affinity label.
Operator This property is required. string
The operator. Can be IN for node-affinities or NOT_IN for anti-affinities.
Values This property is required. []string
Corresponds to the label values of a reservation resource.
key This property is required. String
The key for the node affinity label.
operator This property is required. String
The operator. Can be IN for node-affinities or NOT_IN for anti-affinities.
values This property is required. List<String>
Corresponds to the label values of a reservation resource.
key This property is required. string
The key for the node affinity label.
operator This property is required. string
The operator. Can be IN for node-affinities or NOT_IN for anti-affinities.
values This property is required. string[]
Corresponds to the label values of a reservation resource.
key This property is required. str
The key for the node affinity label.
operator This property is required. str
The operator. Can be IN for node-affinities or NOT_IN for anti-affinities.
values This property is required. Sequence[str]
Corresponds to the label values of a reservation resource.
key This property is required. String
The key for the node affinity label.
operator This property is required. String
The operator. Can be IN for node-affinities or NOT_IN for anti-affinities.
values This property is required. List<String>
Corresponds to the label values of a reservation resource.

InstanceTemplateSchedulingOnInstanceStopAction
, InstanceTemplateSchedulingOnInstanceStopActionArgs

DiscardLocalSsd Changes to this property will trigger replacement. bool
Whether to discard local SSDs attached to the VM while terminating using max_run_duration. Only supports true at this point.
DiscardLocalSsd Changes to this property will trigger replacement. bool
Whether to discard local SSDs attached to the VM while terminating using max_run_duration. Only supports true at this point.
discardLocalSsd Changes to this property will trigger replacement. Boolean
Whether to discard local SSDs attached to the VM while terminating using max_run_duration. Only supports true at this point.
discardLocalSsd Changes to this property will trigger replacement. boolean
Whether to discard local SSDs attached to the VM while terminating using max_run_duration. Only supports true at this point.
discard_local_ssd Changes to this property will trigger replacement. bool
Whether to discard local SSDs attached to the VM while terminating using max_run_duration. Only supports true at this point.
discardLocalSsd Changes to this property will trigger replacement. Boolean
Whether to discard local SSDs attached to the VM while terminating using max_run_duration. Only supports true at this point.

InstanceTemplateServiceAccount
, InstanceTemplateServiceAccountArgs

Scopes
This property is required.
Changes to this property will trigger replacement.
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.

The service accounts documentation explains that access scopes are the legacy method of specifying permissions for your instance. To follow best practices you should create a dedicated service account with the minimum permissions the VM requires. To use a dedicated service account this field should be configured as a list containing the cloud-platform scope. See Authenticate workloads using service accounts best practices and Best practices for using service accounts.

Email Changes to this property will trigger replacement. string
The service account e-mail address. If not given, the default Google Compute Engine service account is used.
Scopes
This property is required.
Changes to this property will trigger replacement.
[]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.

The service accounts documentation explains that access scopes are the legacy method of specifying permissions for your instance. To follow best practices you should create a dedicated service account with the minimum permissions the VM requires. To use a dedicated service account this field should be configured as a list containing the cloud-platform scope. See Authenticate workloads using service accounts best practices and Best practices for using service accounts.

Email Changes to this property will trigger replacement. string
The service account e-mail address. If not given, the default Google Compute Engine service account is used.
scopes
This property is required.
Changes to this property will trigger replacement.
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.

The service accounts documentation explains that access scopes are the legacy method of specifying permissions for your instance. To follow best practices you should create a dedicated service account with the minimum permissions the VM requires. To use a dedicated service account this field should be configured as a list containing the cloud-platform scope. See Authenticate workloads using service accounts best practices and Best practices for using service accounts.

email Changes to this property will trigger replacement. String
The service account e-mail address. If not given, the default Google Compute Engine service account is used.
scopes
This property is required.
Changes to this property will trigger replacement.
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.

The service accounts documentation explains that access scopes are the legacy method of specifying permissions for your instance. To follow best practices you should create a dedicated service account with the minimum permissions the VM requires. To use a dedicated service account this field should be configured as a list containing the cloud-platform scope. See Authenticate workloads using service accounts best practices and Best practices for using service accounts.

email Changes to this property will trigger replacement. string
The service account e-mail address. If not given, the default Google Compute Engine service account is used.
scopes
This property is required.
Changes to this property will trigger replacement.
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.

The service accounts documentation explains that access scopes are the legacy method of specifying permissions for your instance. To follow best practices you should create a dedicated service account with the minimum permissions the VM requires. To use a dedicated service account this field should be configured as a list containing the cloud-platform scope. See Authenticate workloads using service accounts best practices and Best practices for using service accounts.

email Changes to this property will trigger replacement. str
The service account e-mail address. If not given, the default Google Compute Engine service account is used.
scopes
This property is required.
Changes to this property will trigger replacement.
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.

The service accounts documentation explains that access scopes are the legacy method of specifying permissions for your instance. To follow best practices you should create a dedicated service account with the minimum permissions the VM requires. To use a dedicated service account this field should be configured as a list containing the cloud-platform scope. See Authenticate workloads using service accounts best practices and Best practices for using service accounts.

email Changes to this property will trigger replacement. String
The service account e-mail address. If not given, the default Google Compute Engine service account is used.

InstanceTemplateShieldedInstanceConfig
, InstanceTemplateShieldedInstanceConfigArgs

EnableIntegrityMonitoring Changes to this property will trigger replacement. 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.
EnableSecureBoot Changes to this property will trigger replacement. bool
  • Verify the digital signature of all boot components, and halt the boot process if signature verification fails. Defaults to false.
EnableVtpm Changes to this property will trigger replacement. 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.
EnableIntegrityMonitoring Changes to this property will trigger replacement. 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.
EnableSecureBoot Changes to this property will trigger replacement. bool
  • Verify the digital signature of all boot components, and halt the boot process if signature verification fails. Defaults to false.
EnableVtpm Changes to this property will trigger replacement. 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.
enableIntegrityMonitoring Changes to this property will trigger replacement. 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.
enableSecureBoot Changes to this property will trigger replacement. Boolean
  • Verify the digital signature of all boot components, and halt the boot process if signature verification fails. Defaults to false.
enableVtpm Changes to this property will trigger replacement. 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.
enableIntegrityMonitoring Changes to this property will trigger replacement. 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.
enableSecureBoot Changes to this property will trigger replacement. boolean
  • Verify the digital signature of all boot components, and halt the boot process if signature verification fails. Defaults to false.
enableVtpm Changes to this property will trigger replacement. 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.
enable_integrity_monitoring Changes to this property will trigger replacement. 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.
enable_secure_boot Changes to this property will trigger replacement. bool
  • Verify the digital signature of all boot components, and halt the boot process if signature verification fails. Defaults to false.
enable_vtpm Changes to this property will trigger replacement. 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.
enableIntegrityMonitoring Changes to this property will trigger replacement. 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.
enableSecureBoot Changes to this property will trigger replacement. Boolean
  • Verify the digital signature of all boot components, and halt the boot process if signature verification fails. Defaults to false.
enableVtpm Changes to this property will trigger replacement. 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.

Import

Instance templates can be imported using any of these accepted formats:

  • projects/{{project}}/global/instanceTemplates/{{name}}

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

  • {{name}}

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

$ pulumi import gcp:compute/instanceTemplate:InstanceTemplate default projects/{{project}}/global/instanceTemplates/{{name}}
Copy
$ pulumi import gcp:compute/instanceTemplate:InstanceTemplate default {{project}}/{{name}}
Copy
$ pulumi import gcp:compute/instanceTemplate:InstanceTemplate default {{name}}
Copy

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

Package Details

Repository
Google Cloud (GCP) Classic pulumi/pulumi-gcp
License
Apache-2.0
Notes
This Pulumi package is based on the google-beta Terraform Provider.