# REST Resource: nodeTemplates

- [Resource: NodeTemplate](https://docs.cloud.google.com/compute/docs/reference/rest/v1/nodeTemplates#NodeTemplate)
  - [JSON representation](https://docs.cloud.google.com/compute/docs/reference/rest/v1/nodeTemplates#NodeTemplate.SCHEMA_REPRESENTATION)
- [Methods](https://docs.cloud.google.com/compute/docs/reference/rest/v1/nodeTemplates#METHODS_SUMMARY)

## Resource: NodeTemplate

Represent a sole-tenant Node Template resource.

You can use a template to define properties for nodes in a node group. For more information, read [Creating node groups and instances](https://docs.cloud.google.com/compute/docs/nodes/create-nodes#create).

| JSON representation |
|---|
| ``` { "kind": string, "id": string, "creationTimestamp": string, "name": string, "description": string, "nodeType": string, "nodeAffinityLabels": { string: string, ... }, "status": enum, "statusMessage": string, "region": string, "selfLink": string, "nodeTypeFlexibility": { "cpus": string, "memory": string, "localSsd": string }, "serverBinding": { "type": enum }, "disks": [ { "diskType": string, "diskSizeGb": integer, "diskCount": integer } ], "accelerators": [ { "acceleratorType": string, "acceleratorCount": integer } ], "cpuOvercommitType": enum } ``` |

| Fields ||
|---|---|
| `kind` | `string` Output only. The type of the resource. Always `compute#nodeTemplate` for node templates. |
| `id` | `string (https://developers.google.com/discovery/v1/type-format format)` Output only. The unique identifier for the resource. This identifier is defined by the server. |
| `creationTimestamp` | `string` Output only. Creation timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format. |
| `name` | `string` The name of the resource, provided by the client when initially creating the resource. The resource name must be 1-63 characters long, and comply with [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). 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. |
| `description` | `string` An optional description of this resource. Provide this property when you create the resource. |
| `nodeType` | `string` The node type to use for nodes group that are created from this template. |
| `nodeAffinityLabels` | `map (key: string, value: string)` Labels to use for node affinity, which will be used in instance scheduling. |
| `status` | `enum` Output only. The status of the node template. One of the following values: `CREATING`, `READY`, and `DELETING`. |
| `statusMessage` | `string` Output only. An optional, human-readable explanation of the status. |
| `region` | `string` Output only. The name of the region where the node template resides, such as us-central1. |
| `selfLink` | `string` Output only. Server-defined URL for the resource. |
| `nodeTypeFlexibility` | `object` Do not use. Instead, use the `nodeType` property. |
| `nodeTypeFlexibility.cpus` | `string` |
| `nodeTypeFlexibility.memory` | `string` |
| `nodeTypeFlexibility.localSsd` | `string` |
| `serverBinding` | `object` Sets the binding properties for the physical server. Valid values include: - **\[Default\]** `RESTART_NODE_ON_ANY_SERVER`: Restarts VMs on any available physical server - `RESTART_NODE_ON_MINIMAL_SERVER`: Restarts VMs on the same physical server whenever possible <br /> See [Sole-tenant node options](https://docs.cloud.google.com/compute/docs/nodes/create-nodes#sole-tenant_node_options) for more information. |
| `serverBinding.type` | `enum` |
| `disks[]` | `object` |
| `disks[].diskType` | `string` Specifies the desired disk type on the node. This disk type must be a local storage type (e.g.: `local-ssd`). Note that for nodeTemplates, this should be the name of the disk type and not its URL. |
| `disks[].diskSizeGb` | `integer` Specifies the size of the disk in base-2 GB. |
| `disks[].diskCount` | `integer` Specifies the number of such disks. |
| `accelerators[]` | `object` |
| `accelerators[].acceleratorType` | `string` Full or partial URL of the accelerator type resource to attach to this instance. For example: `projects/my-project/zones/us-central1-c/acceleratorTypes/nvidia-tesla-p100` If you are creating an instance template, specify only the accelerator name. See [GPUs on Compute Engine](https://docs.cloud.google.com/compute/docs/gpus#introduction) for a full list of accelerator types. |
| `accelerators[].acceleratorCount` | `integer` The number of the guest accelerator cards exposed to this instance. |
| `cpuOvercommitType` | `enum` CPU overcommit. |

| ## Methods ||
|---|---|
| ### `https://docs.cloud.google.com/compute/docs/reference/rest/v1/nodeTemplates/aggregatedList` | Retrieves an aggregated list of node templates. |
| ### `https://docs.cloud.google.com/compute/docs/reference/rest/v1/nodeTemplates/delete` | Deletes the specified NodeTemplate resource. |
| ### `https://docs.cloud.google.com/compute/docs/reference/rest/v1/nodeTemplates/get` | Returns the specified node template. |
| ### `https://docs.cloud.google.com/compute/docs/reference/rest/v1/nodeTemplates/getIamPolicy` | Gets the access control policy for a resource. |
| ### `https://docs.cloud.google.com/compute/docs/reference/rest/v1/nodeTemplates/insert` | Creates a NodeTemplate resource in the specified project using the data included in the request. |
| ### `https://docs.cloud.google.com/compute/docs/reference/rest/v1/nodeTemplates/list` | Retrieves a list of node templates available to the specified project. |
| ### `https://docs.cloud.google.com/compute/docs/reference/rest/v1/nodeTemplates/setIamPolicy` | Sets the access control policy on the specified resource. |
| ### `https://docs.cloud.google.com/compute/docs/reference/rest/v1/nodeTemplates/testIamPermissions` | Returns permissions that a caller has on the specified resource. |