Reference documentation and code samples for the Compute V1 Client class InstanceTemplate.
Represents an Instance Template resource. Google Compute Engine has two Instance Template resources: *Global*RegionalYou can reuse a global instance template in different regions whereas you can use a regional instance template in a specified region only. If you want to reduce cross-region dependency or achieve data residency, use a regional instance template. To create VMs, managed instance groups, and reservations, you can use either global or regional instance templates. For more information, read Instance Templates.
Generated from protobuf messagegoogle.cloud.compute.v1.InstanceTemplate
Namespace
Google \ Cloud \ Compute \ V1
Methods
__construct
Constructor.
Parameters
Name
Description
data
array
Optional. Data for populating the Message object.
↳ creation_timestamp
string
[Output Only] The creation timestamp for this instance template in RFC3339 text format.
↳ description
string
An optional description of this resource. Provide this property when you create the resource.
↳ id
int|string
[Output Only] A unique identifier for this instance template. The server defines this identifier.
↳ kind
string
[Output Only] The resource type, which is always compute#instanceTemplate for instance templates.
↳ name
string
Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression[a-z]([-a-z0-9]*[a-z0-9])?which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
The instance properties for this instance template.
↳ region
string
[Output Only] URL of the region where the instance template resides. Only applicable for regional resources.
↳ self_link
string
[Output Only] The URL for this instance template. The server defines this URL.
↳ source_instance
string
The source instance used to create the template. You can provide this as a partial or full URL to the resource. For example, the following are valid values: -https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance - projects/project/zones/zone/instances/instance
The source instance params to use to create this instance template.
getCreationTimestamp
[Output Only] The creation timestamp for this instance template in RFC3339 text format.
Returns
Type
Description
string
hasCreationTimestamp
clearCreationTimestamp
setCreationTimestamp
[Output Only] The creation timestamp for this instance template in RFC3339 text format.
Parameter
Name
Description
var
string
Returns
Type
Description
$this
getDescription
An optional description of this resource. Provide this property when you create the resource.
Returns
Type
Description
string
hasDescription
clearDescription
setDescription
An optional description of this resource. Provide this property when you create the resource.
Parameter
Name
Description
var
string
Returns
Type
Description
$this
getId
[Output Only] A unique identifier for this instance template. The server defines this identifier.
Returns
Type
Description
int|string
hasId
clearId
setId
[Output Only] A unique identifier for this instance template. The server defines this identifier.
Parameter
Name
Description
var
int|string
Returns
Type
Description
$this
getKind
[Output Only] The resource type, which is always compute#instanceTemplate for instance templates.
Returns
Type
Description
string
hasKind
clearKind
setKind
[Output Only] The resource type, which is always compute#instanceTemplate for instance templates.
Parameter
Name
Description
var
string
Returns
Type
Description
$this
getName
Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression[a-z]([-a-z0-9]*[a-z0-9])?which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
Returns
Type
Description
string
hasName
clearName
setName
Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression[a-z]([-a-z0-9]*[a-z0-9])?which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
Parameter
Name
Description
var
string
Returns
Type
Description
$this
getProperties
The instance properties for this instance template.
[Output Only] URL of the region where the instance template resides. Only applicable for regional resources.
Returns
Type
Description
string
hasRegion
clearRegion
setRegion
[Output Only] URL of the region where the instance template resides. Only applicable for regional resources.
Parameter
Name
Description
var
string
Returns
Type
Description
$this
getSelfLink
[Output Only] The URL for this instance template. The server defines this URL.
Returns
Type
Description
string
hasSelfLink
clearSelfLink
setSelfLink
[Output Only] The URL for this instance template. The server defines this URL.
Parameter
Name
Description
var
string
Returns
Type
Description
$this
getSourceInstance
The source instance used to create the template. You can provide this as a partial or full URL to the resource. For example, the following are valid values: -https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance - projects/project/zones/zone/instances/instance
Returns
Type
Description
string
hasSourceInstance
clearSourceInstance
setSourceInstance
The source instance used to create the template. You can provide this as a partial or full URL to the resource. For example, the following are valid values: -https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance - projects/project/zones/zone/instances/instance
Parameter
Name
Description
var
string
Returns
Type
Description
$this
getSourceInstanceParams
The source instance params to use to create this instance template.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-04 UTC."],[],[],null,["# Compute V1 Client - Class InstanceTemplate (1.35.0)\n\nVersion latestkeyboard_arrow_down\n\n- [1.35.0 (latest)](/php/docs/reference/cloud-compute/latest/V1.InstanceTemplate)\n- [1.34.0](/php/docs/reference/cloud-compute/1.34.0/V1.InstanceTemplate)\n- [1.33.0](/php/docs/reference/cloud-compute/1.33.0/V1.InstanceTemplate)\n- [1.32.0](/php/docs/reference/cloud-compute/1.32.0/V1.InstanceTemplate)\n- [1.31.0](/php/docs/reference/cloud-compute/1.31.0/V1.InstanceTemplate)\n- [1.30.0](/php/docs/reference/cloud-compute/1.30.0/V1.InstanceTemplate)\n- [1.29.0](/php/docs/reference/cloud-compute/1.29.0/V1.InstanceTemplate)\n- [1.28.0](/php/docs/reference/cloud-compute/1.28.0/V1.InstanceTemplate)\n- [1.27.0](/php/docs/reference/cloud-compute/1.27.0/V1.InstanceTemplate)\n- [1.26.0](/php/docs/reference/cloud-compute/1.26.0/V1.InstanceTemplate)\n- [1.25.0](/php/docs/reference/cloud-compute/1.25.0/V1.InstanceTemplate)\n- [1.24.0](/php/docs/reference/cloud-compute/1.24.0/V1.InstanceTemplate)\n- [1.23.0](/php/docs/reference/cloud-compute/1.23.0/V1.InstanceTemplate)\n- [1.22.1](/php/docs/reference/cloud-compute/1.22.1/V1.InstanceTemplate)\n- [1.21.0](/php/docs/reference/cloud-compute/1.21.0/V1.InstanceTemplate)\n- [1.20.0](/php/docs/reference/cloud-compute/1.20.0/V1.InstanceTemplate)\n- [1.19.0](/php/docs/reference/cloud-compute/1.19.0/V1.InstanceTemplate)\n- [1.18.1](/php/docs/reference/cloud-compute/1.18.1/V1.InstanceTemplate)\n- [1.17.0](/php/docs/reference/cloud-compute/1.17.0/V1.InstanceTemplate)\n- [1.16.2](/php/docs/reference/cloud-compute/1.16.2/V1.InstanceTemplate)\n- [1.14.0](/php/docs/reference/cloud-compute/1.14.0/V1.InstanceTemplate)\n- [1.13.0](/php/docs/reference/cloud-compute/1.13.0/V1.InstanceTemplate)\n- [1.12.1](/php/docs/reference/cloud-compute/1.12.1/V1.InstanceTemplate)\n- [1.11.1](/php/docs/reference/cloud-compute/1.11.1/V1.InstanceTemplate)\n- [1.10.1](/php/docs/reference/cloud-compute/1.10.1/V1.InstanceTemplate)\n- [1.9.1](/php/docs/reference/cloud-compute/1.9.1/V1.InstanceTemplate)\n- [1.8.3](/php/docs/reference/cloud-compute/1.8.3/V1.InstanceTemplate)\n- [1.7.1](/php/docs/reference/cloud-compute/1.7.1/V1.InstanceTemplate)\n- [1.6.1](/php/docs/reference/cloud-compute/1.6.1/V1.InstanceTemplate)\n- [1.5.0](/php/docs/reference/cloud-compute/1.5.0/V1.InstanceTemplate) \nReference documentation and code samples for the Compute V1 Client class InstanceTemplate.\n\nRepresents an Instance Template resource. Google Compute Engine has two Instance Template resources: \\* [Global](/compute/docs/reference/rest/v1/instanceTemplates) \\* [Regional](https://cloud.google.com/compute/docs/reference/rest/v1/regionInstanceTemplates) You can reuse a global instance template in different regions whereas you can use a regional instance template in a specified region only. If you want to reduce cross-region dependency or achieve data residency, use a regional instance template. To create VMs, managed instance groups, and reservations, you can use either global or regional instance templates. For more information, read Instance Templates.\n\nGenerated from protobuf message `google.cloud.compute.v1.InstanceTemplate`\n\nNamespace\n---------\n\nGoogle \\\\ Cloud \\\\ Compute \\\\ V1\n\nMethods\n-------\n\n### __construct\n\nConstructor.\n\n### getCreationTimestamp\n\n\\[Output Only\\] The creation timestamp for this instance template in RFC3339 text format.\n\n### hasCreationTimestamp\n\n### clearCreationTimestamp\n\n### setCreationTimestamp\n\n\\[Output Only\\] The creation timestamp for this instance template in RFC3339 text format.\n\n### getDescription\n\nAn optional description of this resource. Provide this property when you create the resource.\n\n### hasDescription\n\n### clearDescription\n\n### setDescription\n\nAn optional description of this resource. Provide this property when you create the resource.\n\n### getId\n\n\\[Output Only\\] A unique identifier for this instance template. The server defines this identifier.\n\n### hasId\n\n### clearId\n\n### setId\n\n\\[Output Only\\] A unique identifier for this instance template. The server defines this identifier.\n\n### getKind\n\n\\[Output Only\\] The resource type, which is always compute#instanceTemplate for instance templates.\n\n### hasKind\n\n### clearKind\n\n### setKind\n\n\\[Output Only\\] The resource type, which is always compute#instanceTemplate for instance templates.\n\n### getName\n\nName of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.\n\n### hasName\n\n### clearName\n\n### setName\n\nName of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.\n\n### getProperties\n\nThe instance properties for this instance template.\n\n### hasProperties\n\n### clearProperties\n\n### setProperties\n\nThe instance properties for this instance template.\n\n### getRegion\n\n\\[Output Only\\] URL of the region where the instance template resides. Only applicable for regional resources.\n\n### hasRegion\n\n### clearRegion\n\n### setRegion\n\n\\[Output Only\\] URL of the region where the instance template resides. Only applicable for regional resources.\n\n### getSelfLink\n\n\\[Output Only\\] The URL for this instance template. The server defines this URL.\n\n### hasSelfLink\n\n### clearSelfLink\n\n### setSelfLink\n\n\\[Output Only\\] The URL for this instance template. The server defines this URL.\n\n### getSourceInstance\n\nThe source instance used to create the template. You can provide this as a partial or full URL to the resource. For example, the following are valid values: - \u003chttps://www.googleapis.com/compute/v1/projects/project/zones/zone\u003e /instances/instance - projects/project/zones/zone/instances/instance\n\n### hasSourceInstance\n\n### clearSourceInstance\n\n### setSourceInstance\n\nThe source instance used to create the template. You can provide this as a partial or full URL to the resource. For example, the following are valid values: - \u003chttps://www.googleapis.com/compute/v1/projects/project/zones/zone\u003e /instances/instance - projects/project/zones/zone/instances/instance\n\n### getSourceInstanceParams\n\nThe source instance params to use to create this instance template.\n\n### hasSourceInstanceParams\n\n### clearSourceInstanceParams\n\n### setSourceInstanceParams\n\nThe source instance params to use to create this instance template."]]