# REST Resource: projects.locations.clusters

- [Resource: Cluster](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#Cluster)
  - [JSON representation](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#Cluster.SCHEMA_REPRESENTATION)
- [NetworkResource](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#NetworkResource)
  - [JSON representation](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#NetworkResource.SCHEMA_REPRESENTATION)
- [NetworkReference](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#NetworkReference)
  - [JSON representation](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#NetworkReference.SCHEMA_REPRESENTATION)
- [NetworkResourceConfig](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#NetworkResourceConfig)
  - [JSON representation](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#NetworkResourceConfig.SCHEMA_REPRESENTATION)
- [NewNetworkConfig](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#NewNetworkConfig)
  - [JSON representation](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#NewNetworkConfig.SCHEMA_REPRESENTATION)
- [ExistingNetworkConfig](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#ExistingNetworkConfig)
  - [JSON representation](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#ExistingNetworkConfig.SCHEMA_REPRESENTATION)
- [StorageResource](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#StorageResource)
  - [JSON representation](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#StorageResource.SCHEMA_REPRESENTATION)
- [FilestoreReference](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#FilestoreReference)
  - [JSON representation](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#FilestoreReference.SCHEMA_REPRESENTATION)
- [BucketReference](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#BucketReference)
  - [JSON representation](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#BucketReference.SCHEMA_REPRESENTATION)
- [LustreReference](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#LustreReference)
  - [JSON representation](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#LustreReference.SCHEMA_REPRESENTATION)
- [StorageResourceConfig](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#StorageResourceConfig)
  - [JSON representation](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#StorageResourceConfig.SCHEMA_REPRESENTATION)
- [NewFilestoreConfig](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#NewFilestoreConfig)
  - [JSON representation](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#NewFilestoreConfig.SCHEMA_REPRESENTATION)
- [FileShareConfig](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#FileShareConfig)
  - [JSON representation](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#FileShareConfig.SCHEMA_REPRESENTATION)
- [Tier](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#Tier)
- [Protocol](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#Protocol)
- [ExistingFilestoreConfig](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#ExistingFilestoreConfig)
  - [JSON representation](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#ExistingFilestoreConfig.SCHEMA_REPRESENTATION)
- [NewBucketConfig](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#NewBucketConfig)
  - [JSON representation](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#NewBucketConfig.SCHEMA_REPRESENTATION)
- [GcsAutoclassConfig](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#GcsAutoclassConfig)
  - [JSON representation](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#GcsAutoclassConfig.SCHEMA_REPRESENTATION)
- [TerminalStorageClass](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#TerminalStorageClass)
- [StorageClass](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#StorageClass)
- [GcsHierarchicalNamespaceConfig](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#GcsHierarchicalNamespaceConfig)
  - [JSON representation](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#GcsHierarchicalNamespaceConfig.SCHEMA_REPRESENTATION)
- [ExistingBucketConfig](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#ExistingBucketConfig)
  - [JSON representation](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#ExistingBucketConfig.SCHEMA_REPRESENTATION)
- [NewLustreConfig](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#NewLustreConfig)
  - [JSON representation](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#NewLustreConfig.SCHEMA_REPRESENTATION)
- [ExistingLustreConfig](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#ExistingLustreConfig)
  - [JSON representation](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#ExistingLustreConfig.SCHEMA_REPRESENTATION)
- [ComputeResource](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#ComputeResource)
  - [JSON representation](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#ComputeResource.SCHEMA_REPRESENTATION)
- [ComputeResourceConfig](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#ComputeResourceConfig)
  - [JSON representation](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#ComputeResourceConfig.SCHEMA_REPRESENTATION)
- [NewOnDemandInstancesConfig](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#NewOnDemandInstancesConfig)
  - [JSON representation](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#NewOnDemandInstancesConfig.SCHEMA_REPRESENTATION)
- [NewSpotInstancesConfig](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#NewSpotInstancesConfig)
  - [JSON representation](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#NewSpotInstancesConfig.SCHEMA_REPRESENTATION)
- [TerminationAction](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#TerminationAction)
- [NewReservedInstancesConfig](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#NewReservedInstancesConfig)
  - [JSON representation](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#NewReservedInstancesConfig.SCHEMA_REPRESENTATION)
- [NewFlexStartInstancesConfig](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#NewFlexStartInstancesConfig)
  - [JSON representation](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#NewFlexStartInstancesConfig.SCHEMA_REPRESENTATION)
- [Orchestrator](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#Orchestrator)
  - [JSON representation](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#Orchestrator.SCHEMA_REPRESENTATION)
- [SlurmOrchestrator](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#SlurmOrchestrator)
  - [JSON representation](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#SlurmOrchestrator.SCHEMA_REPRESENTATION)
- [SlurmLoginNodes](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#SlurmLoginNodes)
  - [JSON representation](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#SlurmLoginNodes.SCHEMA_REPRESENTATION)
- [StorageConfig](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#StorageConfig)
  - [JSON representation](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#StorageConfig.SCHEMA_REPRESENTATION)
- [ComputeInstance](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#ComputeInstance)
  - [JSON representation](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#ComputeInstance.SCHEMA_REPRESENTATION)
- [BootDisk](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#BootDisk)
  - [JSON representation](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#BootDisk.SCHEMA_REPRESENTATION)
- [SlurmNodeSet](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#SlurmNodeSet)
  - [JSON representation](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#SlurmNodeSet.SCHEMA_REPRESENTATION)
- [ComputeInstanceSlurmNodeSet](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#ComputeInstanceSlurmNodeSet)
  - [JSON representation](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#ComputeInstanceSlurmNodeSet.SCHEMA_REPRESENTATION)
- [SlurmPartition](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#SlurmPartition)
  - [JSON representation](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#SlurmPartition.SCHEMA_REPRESENTATION)
- [Methods](https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#METHODS_SUMMARY)

## Resource: Cluster

A collection of virtual machines and connected resources forming a high-performance computing cluster capable of running large-scale, tightly coupled workloads. A cluster combines a set a compute resources that perform computations, storage resources that contain inputs and store outputs, an orchestrator that is responsible for assigning jobs to compute resources, and network resources that connect everything together.

| JSON representation |
|---|
| ``` { "name": string, "description": string, "labels": { string: string, ... }, "createTime": string, "updateTime": string, "reconciling": boolean, "networkResources": { string: { object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#NetworkResource`) }, ... }, "storageResources": { string: { object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#StorageResource`) }, ... }, "computeResources": { string: { object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#ComputeResource`) }, ... }, "orchestrator": { object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#Orchestrator`) } } ``` |

| Fields ||
|---|---|
| `name` | `string` Identifier. [Relative resource name](https://google.aip.dev/122) of the cluster, in the format `projects/{project}/locations/{location}/clusters/{cluster}`. |
| `description` | `string` Optional. A description for your cluster. You can use up to 2,048 characters. |
| `labels` | `map (key: string, value: string)` Optional. [Labels](https://cloud.google.com/compute/docs/labeling-resources) applied to the cluster. Labels can be used to organize clusters and to filter them in queries. An object containing a list of `"key": value` pairs. Example: `{ "name": "wrench", "mass": "1.3kg", "count": "3" }`. |
| `createTime` | ``string (`https://protobuf.dev/reference/protobuf/google.protobuf#timestamp` format)`` Output only. Time that the cluster was originally created. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: `"2014-10-02T15:01:23Z"`, `"2014-10-02T15:01:23.045123456Z"` or `"2014-10-02T15:01:23+05:30"`. |
| `updateTime` | ``string (`https://protobuf.dev/reference/protobuf/google.protobuf#timestamp` format)`` Output only. Time that the cluster was most recently updated. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: `"2014-10-02T15:01:23Z"`, `"2014-10-02T15:01:23.045123456Z"` or `"2014-10-02T15:01:23+05:30"`. |
| `reconciling` | `boolean` Output only. Indicates whether changes to the cluster are currently in flight. If this is `true`, then the current state might not match the cluster's intended state. |
| `networkResources` | ``map (key: string, value: object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#NetworkResource`))`` Optional. Network resources available to the cluster. Must contain exactly one value. Keys specify the ID of the network resource by which it can be referenced elsewhere, and must conform to [RFC-1034](https://datatracker.ietf.org/doc/html/rfc1034) (lower-case, alphanumeric, and at most 63 characters). An object containing a list of `"key": value` pairs. Example: `{ "name": "wrench", "mass": "1.3kg", "count": "3" }`. |
| `storageResources` | ``map (key: string, value: object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#StorageResource`))`` Optional. Storage resources available to the cluster. Keys specify the ID of the storage resource by which it can be referenced elsewhere, and must conform to [RFC-1034](https://datatracker.ietf.org/doc/html/rfc1034) (lower-case, alphanumeric, and at most 63 characters). An object containing a list of `"key": value` pairs. Example: `{ "name": "wrench", "mass": "1.3kg", "count": "3" }`. |
| `computeResources` | ``map (key: string, value: object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#ComputeResource`))`` Optional. Compute resources available to the cluster. Keys specify the ID of the compute resource by which it can be referenced elsewhere, and must conform to [RFC-1034](https://datatracker.ietf.org/doc/html/rfc1034) (lower-case, alphanumeric, and at most 63 characters). An object containing a list of `"key": value` pairs. Example: `{ "name": "wrench", "mass": "1.3kg", "count": "3" }`. |
| `orchestrator` | ``object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#Orchestrator`)`` Optional. Orchestrator that is responsible for scheduling and running jobs on the cluster. |

## NetworkResource

A resource representing a network that connects the various components of a cluster together.

| JSON representation |
|---|
| ``` { "config": { object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#NetworkResourceConfig`) }, // Union field `reference` can be only one of the following: "network": { object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#NetworkReference`) } // End of list of possible types for union field `reference`. } ``` |

| Fields ||
|---|---|
| `config` | ``object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#NetworkResourceConfig`)`` Immutable. Configuration for this network resource, which describes how it should be created or imported. This field only controls how the network resource is initially created or imported. Subsequent changes to the network resource should be made via the resource's API and will not be reflected in the configuration. |
| Union field `reference`. A reference to the network resource in Google Cloud. Exactly one of these fields will be populated based on the configured type of network resource. `reference` can be only one of the following: ||
| `network` | ``object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#NetworkReference`)`` Output only. A reference to a network in Google Compute Engine. |

## NetworkReference

A reference to a [VPC network](https://cloud.google.com/vpc/docs/vpc) in Google Compute Engine.

| JSON representation |
|---|
| ``` { "network": string, "subnetwork": string } ``` |

| Fields ||
|---|---|
| `network` | `string` Output only. Name of the network, in the format `projects/{project}/global/networks/{network}`. |
| `subnetwork` | `string` Output only. Name of the particular subnetwork being used by the cluster, in the format `projects/{project}/regions/{region}/subnetworks/{subnetwork}`. |

## NetworkResourceConfig

Describes how a network resource should be initialized. Each network resource can either be imported from an existing Google Cloud resource or initialized when the cluster is created.

| JSON representation |
|---|
| ``` { // Union field `config` can be only one of the following: "newNetwork": { object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#NewNetworkConfig`) }, "existingNetwork": { object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#ExistingNetworkConfig`) } // End of list of possible types for union field `config`. } ``` |

| Fields ||
|---|---|
| Union field `config`. Particular type of configuration for this network resource. `config` can be only one of the following: ||
| `newNetwork` | ``object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#NewNetworkConfig`)`` Optional. Immutable. If set, indicates that a new network should be created. |
| `existingNetwork` | ``object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#ExistingNetworkConfig`)`` Optional. Immutable. If set, indicates that an existing network should be imported. |

## NewNetworkConfig

When set in a `https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#NetworkResourceConfig`, indicates that a new network should be created.

| JSON representation |
|---|
| ``` { "network": string, "description": string } ``` |

| Fields ||
|---|---|
| `network` | `string` Required. Immutable. Name of the network to create, in the format `projects/{project}/global/networks/{network}`. |
| `description` | `string` Optional. Immutable. Description of the network. Maximum of 2048 characters. |

## ExistingNetworkConfig

When set in a `https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#NetworkResourceConfig`, indicates that an existing network should be imported.

| JSON representation |
|---|
| ``` { "network": string, "subnetwork": string } ``` |

| Fields ||
|---|---|
| `network` | `string` Required. Immutable. Name of the network to import, in the format `projects/{project}/global/networks/{network}`. |
| `subnetwork` | `string` Required. Immutable. Particular subnetwork to use, in the format `projects/{project}/regions/{region}/subnetworks/{subnetwork}`. |

## StorageResource

Represents a form of persistent storage that you can mount onto compute resources in the cluster.

| JSON representation |
|---|
| ``` { "config": { object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#StorageResourceConfig`) }, // Union field `reference` can be only one of the following: "filestore": { object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#FilestoreReference`) }, "bucket": { object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#BucketReference`) }, "lustre": { object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#LustreReference`) } // End of list of possible types for union field `reference`. } ``` |

| Fields ||
|---|---|
| `config` | ``object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#StorageResourceConfig`)`` Required. Immutable. Configuration for this storage resource, which describes how it should be created or imported. This field only controls how the storage resource is initially created or imported. Subsequent changes to the storage resource should be made via the resource's API and will not be reflected in the configuration. |
| Union field `reference`. A reference to the storage resource in Google Cloud. Exactly one of these fields will be populated based on the configured type of storage resource. `reference` can be only one of the following: ||
| `filestore` | ``object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#FilestoreReference`)`` Output only. A reference to a Filestore instance. Populated if and only if the storage resource was configured to use Filestore. |
| `bucket` | ``object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#BucketReference`)`` Output only. A reference to a Google Cloud Storage bucket. Populated if and only if the storage resource was configured to use Google Cloud Storage. |
| `lustre` | ``object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#LustreReference`)`` Output only. A reference to a Managed Lustre instance. Populated if and only if the storage resource was configured to use Managed Lustre. |

## FilestoreReference

A reference to a [Filestore](https://cloud.google.com/filestore) instance.

| JSON representation |
|---|
| ``` { "filestore": string } ``` |

| Fields ||
|---|---|
| `filestore` | `string` Output only. Name of the Filestore instance, in the format `projects/{project}/locations/{location}/instances/{instance}` |

## BucketReference

A reference to a [Google Cloud Storage](https://cloud.google.com/storage) bucket.

| JSON representation |
|---|
| ``` { "bucket": string } ``` |

| Fields ||
|---|---|
| `bucket` | `string` Output only. Name of the bucket. |

## LustreReference

A reference to a [Managed Lustre](https://cloud.google.com/products/managed-lustre) instance.

| JSON representation |
|---|
| ``` { "lustre": string } ``` |

| Fields ||
|---|---|
| `lustre` | `string` Output only. Name of the Managed Lustre instance, in the format `projects/{project}/locations/{location}/instances/{instance}` |

## StorageResourceConfig

Describes how a storage resource should be initialized. Each storage resource can either be imported from an existing Google Cloud resource or initialized when the cluster is created.

| JSON representation |
|---|
| ``` { // Union field `config` can be only one of the following: "newFilestore": { object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#NewFilestoreConfig`) }, "existingFilestore": { object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#ExistingFilestoreConfig`) }, "newBucket": { object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#NewBucketConfig`) }, "existingBucket": { object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#ExistingBucketConfig`) }, "newLustre": { object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#NewLustreConfig`) }, "existingLustre": { object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#ExistingLustreConfig`) } // End of list of possible types for union field `config`. } ``` |

| Fields ||
|---|---|
| Union field `config`. Particular type of configuration for this storage resource. `config` can be only one of the following: ||
| `newFilestore` | ``object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#NewFilestoreConfig`)`` Optional. Immutable. If set, indicates that a new Filestore instance should be created. |
| `existingFilestore` | ``object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#ExistingFilestoreConfig`)`` Optional. Immutable. If set, indicates that an existing Filestore instance should be imported. |
| `newBucket` | ``object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#NewBucketConfig`)`` Optional. Immutable. If set, indicates that a new Cloud Storage bucket should be created. |
| `existingBucket` | ``object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#ExistingBucketConfig`)`` Optional. Immutable. If set, indicates that an existing Cloud Storage bucket should be imported. |
| `newLustre` | ``object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#NewLustreConfig`)`` Optional. Immutable. If set, indicates that a new Managed Lustre instance should be created. |
| `existingLustre` | ``object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#ExistingLustreConfig`)`` Optional. Immutable. If set, indicates that an existing Managed Lustre instance should be imported. |

## NewFilestoreConfig

When set in a `https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#StorageResourceConfig`, indicates that a new [Filestore](https://cloud.google.com/filestore) instance should be created.

| JSON representation |
|---|
| ``` { "filestore": string, "description": string, "fileShares": [ { object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#FileShareConfig`) } ], "tier": enum (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#Tier`), "protocol": enum (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#Protocol`) } ``` |

| Fields ||
|---|---|
| `filestore` | `string` Required. Immutable. Name of the Filestore instance to create, in the format `projects/{project}/locations/{location}/instances/{instance}`. |
| `description` | `string` Optional. Immutable. Description of the instance. Maximum of 2048 characters. |
| `fileShares[]` | ``object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#FileShareConfig`)`` Required. Immutable. File system shares on the instance. Exactly one file share must be specified. |
| `tier` | ``enum (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#Tier`)`` Required. Immutable. Service tier to use for the instance. |
| `protocol` | ``enum (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#Protocol`)`` Optional. Immutable. Access protocol to use for all file shares in the instance. Defaults to NFS V3 if not set. |

## FileShareConfig

Message describing filestore configuration

| JSON representation |
|---|
| ``` { "capacityGb": string, "fileShare": string } ``` |

| Fields ||
|---|---|
| `capacityGb` | `string (https://developers.google.com/discovery/v1/type-format format)` Required. Size of the filestore in GB. Must be between 1024 and 102400, and must meet scalability requirements described at <https://cloud.google.com/filestore/docs/service-tiers>. |
| `fileShare` | `string` Required. Filestore share location |

## Tier

Available [service tiers](https://cloud.google.com/filestore/docs/service-tiers) for Filestore instances.

| Enums ||
|---|---|
| `TIER_UNSPECIFIED` | Not set. |
| `ZONAL` | Offers expanded capacity and performance scaling capabilities suitable for high-performance computing application requirements. |
| `REGIONAL` | Offers features and availability needed for mission-critical, high-performance computing workloads. |

## Protocol

File access protocol for Filestore instances.

| Enums ||
|---|---|
| `PROTOCOL_UNSPECIFIED` | Not set. |
| `NFSV3` | NFS 3.0. |
| `NFSV41` | NFS 4.1. |

## ExistingFilestoreConfig

When set in a `https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#StorageResourceConfig`, indicates that an existing [Filestore](https://cloud.google.com/filestore) instance should be imported.

| JSON representation |
|---|
| ``` { "filestore": string } ``` |

| Fields ||
|---|---|
| `filestore` | `string` Required. Immutable. Name of the Filestore instance to import, in the format `projects/{project}/locations/{location}/instances/{instance}` |

## NewBucketConfig

When set in a `https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#StorageResourceConfig`, indicates that a new [Google Cloud Storage](https://cloud.google.com/storage) bucket should be created.

| JSON representation |
|---|
| ``` { "bucket": string, "hierarchicalNamespace": { object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#GcsHierarchicalNamespaceConfig`) }, // Union field `option` can be only one of the following: "autoclass": { object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#GcsAutoclassConfig`) }, "storageClass": enum (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#StorageClass`) // End of list of possible types for union field `option`. } ``` |

| Fields ||
|---|---|
| `bucket` | `string` Required. Immutable. Name of the Cloud Storage bucket to create. |
| `hierarchicalNamespace` | ``object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#GcsHierarchicalNamespaceConfig`)`` Optional. Immutable. If set, indicates that the bucket should use [hierarchical namespaces](https://cloud.google.com/storage/docs/hns-overview). |
| Union field `option`. Storage class of the bucket, which can be set automatically or explicitly. `option` can be only one of the following: ||
| `autoclass` | ``object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#GcsAutoclassConfig`)`` Optional. Immutable. If set, indicates that the bucket should use [Autoclass](https://cloud.google.com/storage/docs/autoclass). |
| `storageClass` | ``enum (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#StorageClass`)`` Optional. Immutable. If set, uses the provided storage class as the bucket's default storage class. |

## GcsAutoclassConfig

Message describing Google Cloud Storage autoclass configuration

| JSON representation |
|---|
| ``` { "enabled": boolean, "terminalStorageClass": enum (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#TerminalStorageClass`) } ``` |

| Fields ||
|---|---|
| `enabled` | `boolean` Required. Enables Auto-class feature. |
| `terminalStorageClass` | ``enum (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#TerminalStorageClass`)`` Optional. Terminal storage class of the autoclass bucket |

## TerminalStorageClass

Terminal storage class types of the autoclass bucket

| Enums ||
|---|---|
| `TERMINAL_STORAGE_CLASS_UNSPECIFIED` | Unspecified terminal storage class |
| `NEARLINE` | Nearline terminal storage class |
| `ARCHIVE` | Archive terminal storage class |

## StorageClass

[Storage class](https://cloud.google.com/storage/docs/storage-classes) for a Cloud Storage bucket.

| Enums ||
|---|---|
| `STORAGE_CLASS_UNSPECIFIED` | Not set. |
| `STANDARD` | Best for data that is frequently accessed. |
| `NEARLINE` | Low-cost storage for data that is accessed less frequently. |
| `COLDLINE` | Very low-cost storage for infrequently accessed data. |
| `ARCHIVE` | Lowest-cost storage for data archiving, online backup, and disaster recovery. |

## GcsHierarchicalNamespaceConfig

Message describing Google Cloud Storage hierarchical namespace configuration

| JSON representation |
|---|
| ``` { "enabled": boolean } ``` |

| Fields ||
|---|---|
| `enabled` | `boolean` Required. Enables hierarchical namespace setup for the bucket. |

## ExistingBucketConfig

When set in a `https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#StorageResourceConfig`, indicates that an existing [Google Cloud Storage](https://cloud.google.com/storage) bucket should be imported.

| JSON representation |
|---|
| ``` { "bucket": string } ``` |

| Fields ||
|---|---|
| `bucket` | `string` Required. Immutable. Name of the Cloud Storage bucket to import. |

## NewLustreConfig

When set in a `https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#StorageResourceConfig`, indicates that a new [Managed Lustre](https://cloud.google.com/products/managed-lustre) instance should be created.

| JSON representation |
|---|
| ``` { "lustre": string, "description": string, "filesystem": string, "capacityGb": string, "perUnitStorageThroughput": string } ``` |

| Fields ||
|---|---|
| `lustre` | `string` Required. Immutable. Name of the Managed Lustre instance to create, in the format `projects/{project}/locations/{location}/instances/{instance}` |
| `description` | `string` Optional. Immutable. Description of the Managed Lustre instance. Maximum of 2048 characters. |
| `filesystem` | `string` Required. Immutable. Filesystem name for this instance. This name is used by client-side tools, including when mounting the instance. Must be 8 characters or less and can only contain letters and numbers. |
| `capacityGb` | `string (https://developers.google.com/discovery/v1/type-format format)` Required. Immutable. Storage capacity of the instance in gibibytes (GiB). Allowed values are between 18000 and 7632000. |
| `perUnitStorageThroughput` | `string (https://developers.google.com/discovery/v1/type-format format)` Optional. Immutable. Throughput of the instance in MB/s/TiB. Valid values are 125, 250, 500, 1000. See [Performance tiers and maximum storage capacities](https://cloud.google.com/managed-lustre/docs/create-instance#performance-tiers) for more information. |

## ExistingLustreConfig

When set in a `https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#StorageResourceConfig`, indicates that an existing [Managed Lustre](https://cloud.google.com/products/managed-lustre) instance should be imported.

| JSON representation |
|---|
| ``` { "lustre": string } ``` |

| Fields ||
|---|---|
| `lustre` | `string` Required. Immutable. Name of the Managed Lustre instance to import, in the format `projects/{project}/locations/{location}/instances/{instance}` |

## ComputeResource

A resource defining how virtual machines and accelerators should be provisioned for the cluster.

| JSON representation |
|---|
| ``` { "config": { object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#ComputeResourceConfig`) } } ``` |

| Fields ||
|---|---|
| `config` | ``object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#ComputeResourceConfig`)`` Required. Immutable. Configuration for this compute resource, which describes how it should be created at runtime. |

## ComputeResourceConfig

Describes how a compute resource should be created at runtime.

| JSON representation |
|---|
| ``` { // Union field `config` can be only one of the following: "newOnDemandInstances": { object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#NewOnDemandInstancesConfig`) }, "newSpotInstances": { object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#NewSpotInstancesConfig`) }, "newReservedInstances": { object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#NewReservedInstancesConfig`) }, "newFlexStartInstances": { object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#NewFlexStartInstancesConfig`) } // End of list of possible types for union field `config`. } ``` |

| Fields ||
|---|---|
| Union field `config`. Particular type of configuration for this compute resource. `config` can be only one of the following: ||
| `newOnDemandInstances` | ``object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#NewOnDemandInstancesConfig`)`` Optional. Immutable. If set, indicates that this resource should use on-demand VMs. |
| `newSpotInstances` | ``object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#NewSpotInstancesConfig`)`` Optional. Immutable. If set, indicates that this resource should use spot VMs. |
| `newReservedInstances` | ``object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#NewReservedInstancesConfig`)`` Optional. Immutable. If set, indicates that this resource should use reserved VMs. |
| `newFlexStartInstances` | ``object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#NewFlexStartInstancesConfig`)`` Optional. Immutable. If set, indicates that this resource should use flex-start VMs. |

## NewOnDemandInstancesConfig

When set in a `https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#ComputeResourceConfig`, indicates that on-demand (i.e., using the standard provisioning model) VM instances should be created.

| JSON representation |
|---|
| ``` { "zone": string, "machineType": string } ``` |

| Fields ||
|---|---|
| `zone` | `string` Required. Immutable. Name of the zone in which VM instances should run, e.g., `us-central1-a`. Must be in the same region as the cluster, and must match the zone of any other resources specified in the cluster. |
| `machineType` | `string` Required. Immutable. Name of the Compute Engine [machine type](https://cloud.google.com/compute/docs/machine-resource) to use, e.g. `n2-standard-2`. |

## NewSpotInstancesConfig

When set in a `https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#ComputeResourceConfig`, indicates that [spot VM](https://cloud.google.com/compute/docs/instances/spot) instances should be created.

| JSON representation |
|---|
| ``` { "zone": string, "machineType": string, "terminationAction": enum (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#TerminationAction`) } ``` |

| Fields ||
|---|---|
| `zone` | `string` Required. Immutable. Name of the zone in which VM instances should run, e.g., `us-central1-a`. Must be in the same region as the cluster, and must match the zone of any other resources specified in the cluster. |
| `machineType` | `string` Required. Immutable. Name of the Compute Engine [machine type](https://cloud.google.com/compute/docs/machine-resource) to use, e.g. `n2-standard-2`. |
| `terminationAction` | ``enum (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#TerminationAction`)`` Optional. Termination action for the instance. If not specified, Compute Engine sets the termination action to DELETE. |

## TerminationAction

Specifies the termination action of the instance.

| Enums ||
|---|---|
| `TERMINATION_ACTION_UNSPECIFIED` | Not set. |
| `STOP` | Compute Engine stops the Spot VM on preemption. |
| `DELETE` | Compute Engine deletes the Spot VM on preemption. |

## NewReservedInstancesConfig

When set in a `https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#ComputeResourceConfig`, indicates that VM instances should be created from a [reservation](https://cloud.google.com/compute/docs/instances/reservations-overview).

| JSON representation |
|---|
| ``` { // Union field `source` can be only one of the following: "reservation": string, "reservationBlock": string, "reservationSubBlock": string // End of list of possible types for union field `source`. } ``` |

| Fields ||
|---|---|
| Union field `source`. Source of the reservation `source` can be only one of the following: ||
| `reservation` | `string` Optional. Immutable. Name of the reservation from which VM instances should be created, in the format `projects/{project}/zones/{zone}/reservations/{reservation}`. |
| `reservationBlock` | `string` Optional. Immutable. Name of the reservation block from which VM instances should be created, in the format `projects/{project}/zones/{zone}/reservations/{reservation}/reservationBlocks/{reservationBlock}`. |
| `reservationSubBlock` | `string` Optional. Immutable. Name of the reservation sub block from which VM instances should be created, in the format `projects/{project}/zones/{zone}/reservations/{reservation}/reservationBlocks/{reservationBlock}/reservationSubBlocks/{reservationSubBlock}`. |

## NewFlexStartInstancesConfig

When set in a `https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#ComputeResourceConfig`, indicates that VM instances should be created using [Flex Start](https://cloud.google.com/compute/docs/instances/provisioning-models).

| JSON representation |
|---|
| ``` { "zone": string, "machineType": string, "maxDuration": string } ``` |

| Fields ||
|---|---|
| `zone` | `string` Required. Immutable. Name of the zone in which VM instances should run, e.g., `us-central1-a`. Must be in the same region as the cluster, and must match the zone of any other resources specified in the cluster. |
| `machineType` | `string` Required. Immutable. Name of the Compute Engine [machine type](https://cloud.google.com/compute/docs/machine-resource) to use, e.g. `n2-standard-2`. |
| `maxDuration` | ``string (`https://protobuf.dev/reference/protobuf/google.protobuf#duration` format)`` Required. Immutable. Specifies the time limit for created instances. Instances will be terminated at the end of this duration. A duration in seconds with up to nine fractional digits, ending with '`s`'. Example: `"3.5s"`. |

## Orchestrator

The component responsible for scheduling and running workloads on the cluster as well as providing the user interface for interacting with the cluster at runtime.

| JSON representation |
|---|
| ``` { // Union field `option` can be only one of the following: "slurm": { object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#SlurmOrchestrator`) } // End of list of possible types for union field `option`. } ``` |

| Fields ||
|---|---|
| Union field `option`. Particular type of orchestrator to use in this cluster. `option` can be only one of the following: ||
| `slurm` | ``object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#SlurmOrchestrator`)`` Optional. If set, indicates that the cluster should use Slurm as the orchestrator. |

## SlurmOrchestrator

When set in `https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#Orchestrator`, indicates that the cluster should use [Slurm](https://slurm.schedmd.com/) as the orchestrator.

| JSON representation |
|---|
| ``` { "loginNodes": { object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#SlurmLoginNodes`) }, "nodeSets": [ { object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#SlurmNodeSet`) } ], "partitions": [ { object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#SlurmPartition`) } ], "defaultPartition": string, "prologBashScripts": [ string ], "epilogBashScripts": [ string ] } ``` |

| Fields ||
|---|---|
| `loginNodes` | ``object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#SlurmLoginNodes`)`` Required. Configuration for login nodes, which allow users to access the cluster over SSH. |
| `nodeSets[]` | ``object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#SlurmNodeSet`)`` Optional. Compute resource configuration for the Slurm nodesets in your cluster. If not specified, the cluster won't create any nodes. |
| `partitions[]` | ``object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#SlurmPartition`)`` Optional. Configuration for the Slurm partitions in your cluster. Each partition can contain one or more nodesets, and you can submit separate jobs on each partition. If you don't specify at least one partition in your cluster, you can't submit jobs to the cluster. |
| `defaultPartition` | `string` Optional. Default partition to use for submitted jobs that do not explicitly specify a partition. Required if and only if there is more than one partition, in which case it must match the id of one of the partitions. |
| `prologBashScripts[]` | `string` Optional. Slurm [prolog scripts](https://slurm.schedmd.com/prolog_epilog.html), which will be executed by compute nodes before a node begins running a new job. Values must not be empty. |
| `epilogBashScripts[]` | `string` Optional. Slurm [epilog scripts](https://slurm.schedmd.com/prolog_epilog.html), which will be executed by compute nodes whenever a node finishes running a job. Values must not be empty. |

## SlurmLoginNodes

Configuration for Slurm [login nodes](https://slurm.schedmd.com/quickstart_admin.html#login) in the cluster. Login nodes are Compute Engine VM instances that allow users to access the cluster over SSH.

| JSON representation |
|---|
| ``` { "count": string, "zone": string, "machineType": string, "startupScript": string, "enableOsLogin": boolean, "enablePublicIps": boolean, "labels": { string: string, ... }, "storageConfigs": [ { object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#StorageConfig`) } ], "instances": [ { object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#ComputeInstance`) } ], "bootDisk": { object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#BootDisk`) } } ``` |

| Fields ||
|---|---|
| `count` | `string (https://developers.google.com/discovery/v1/type-format format)` Required. Number of login node instances to create. |
| `zone` | `string` Required. Name of the zone in which login nodes should run, e.g., `us-central1-a`. Must be in the same region as the cluster, and must match the zone of any other resources specified in the cluster. |
| `machineType` | `string` Required. Name of the Compute Engine [machine type](https://cloud.google.com/compute/docs/machine-resource) to use for login nodes, e.g. `n2-standard-2`. |
| `startupScript` | `string` Optional. [Startup script](https://cloud.google.com/compute/docs/instances/startup-scripts/linux) to be run on each login node instance. Max 256KB. The script must complete within the system-defined default timeout of 5 minutes. For tasks that require more time, consider running them in the background using methods such as `&` or `nohup`. |
| `enableOsLogin` | `boolean` Optional. Whether [OS Login](https://cloud.google.com/compute/docs/oslogin) should be enabled on login node instances. |
| `enablePublicIps` | `boolean` Optional. Whether login node instances should be assigned [external IP addresses](https://cloud.google.com/compute/docs/ip-addresses#externaladdresses). |
| `labels` | `map (key: string, value: string)` Optional. [Labels](https://cloud.google.com/compute/docs/labeling-resources) that should be applied to each login node instance. An object containing a list of `"key": value` pairs. Example: `{ "name": "wrench", "mass": "1.3kg", "count": "3" }`. |
| `storageConfigs[]` | ``object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#StorageConfig`)`` Optional. How `https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#StorageResource` should be mounted on each login node. |
| `instances[]` | ``object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#ComputeInstance`)`` Output only. Information about the login node instances that were created in Compute Engine. |
| `bootDisk` | ``object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#BootDisk`)`` Optional. Boot disk for the login node. |

## StorageConfig

Description of how a `https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#StorageResource` should be mounted on a VM instance.

| JSON representation |
|---|
| ``` { "id": string, "localMount": string } ``` |

| Fields ||
|---|---|
| `id` | `string` Required. ID of the storage resource to mount, which must match a key in the cluster's `https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#Cluster.FIELDS.storage_resources`. |
| `localMount` | `string` Required. A directory inside the VM instance's file system where the storage resource should be mounted (e.g., `/mnt/share`). |

## ComputeInstance

Details about a Compute Engine [instance](https://cloud.google.com/compute/docs/instances).

| JSON representation |
|---|
| ``` { "instance": string } ``` |

| Fields ||
|---|---|
| `instance` | `string` Output only. Name of the VM instance, in the format `projects/{project}/zones/{zone}/instances/{instance}`. |

## BootDisk

A [Persistent disk](https://cloud.google.com/compute/docs/disks) used as the boot disk for a Compute Engine VM instance.

| JSON representation |
|---|
| ``` { "type": string, "sizeGb": string } ``` |

| Fields ||
|---|---|
| `type` | `string` Required. Immutable. [Persistent disk type](https://cloud.google.com/compute/docs/disks#disk-types), in the format `projects/{project}/zones/{zone}/diskTypes/{disk_type}`. |
| `sizeGb` | `string (https://developers.google.com/discovery/v1/type-format format)` Required. Immutable. The size of the disk in gigabytes (GB), which must be at least 40 GB. |

## SlurmNodeSet

Configuration for Slurm nodesets in the cluster. Nodesets are groups of compute nodes used by Slurm that are responsible for running workloads submitted to the cluster.

| JSON representation |
|---|
| ``` { "id": string, "computeId": string, "storageConfigs": [ { object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#StorageConfig`) } ], "staticNodeCount": string, "maxDynamicNodeCount": string, // Union field `type` can be only one of the following: "computeInstance": { object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#ComputeInstanceSlurmNodeSet`) } // End of list of possible types for union field `type`. } ``` |

| Fields ||
|---|---|
| `id` | `string` Required. The ID for the nodeset, which allows it to be referenced by cluster partitions. The nodeset ID must start with a lowercase letter (`a`-`z`), use only lowercase letters or numbers, and contain up to 15 characters. For example, specify `nodeset001`. |
| `computeId` | `string` Required. The ID of the compute resource on which this nodeset runs. Must match a key in the cluster's `https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#Cluster.FIELDS.compute_resources`. |
| `storageConfigs[]` | ``object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#StorageConfig`)`` Optional. How `https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#StorageResource` should be mounted on each compute node. |
| `staticNodeCount` | `string (https://developers.google.com/discovery/v1/type-format format)` Optional. Number of nodes to be statically created for this nodeset. The cluster will attempt to ensure that at least this many nodes exist at all times. |
| `maxDynamicNodeCount` | `string (https://developers.google.com/discovery/v1/type-format format)` Optional. Controls how many additional nodes a cluster can bring online to handle workloads. Set this value to enable dynamic node creation and limit the number of additional nodes the cluster can bring online. Leave empty if you do not want the cluster to create nodes dynamically, and instead rely only on static nodes. |
| Union field `type`. Additional configuration for the nodeset. If not set, the nodeset will use `https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#ComputeInstanceSlurmNodeSet` with default values. `type` can be only one of the following: ||
| `computeInstance` | ``object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#ComputeInstanceSlurmNodeSet`)`` Optional. If set, indicates that the nodeset should be backed by Compute Engine instances. |

## ComputeInstanceSlurmNodeSet

When set in a `https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#SlurmNodeSet`, indicates that the nodeset should be backed by Compute Engine VM instances.

| JSON representation |
|---|
| ``` { "startupScript": string, "labels": { string: string, ... }, "bootDisk": { object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#BootDisk`) } } ``` |

| Fields ||
|---|---|
| `startupScript` | `string` Optional. [Startup script](https://cloud.google.com/compute/docs/instances/startup-scripts/linux) to be run on each VM instance in the nodeset. Max 256KB. |
| `labels` | `map (key: string, value: string)` Optional. [Labels](https://cloud.google.com/compute/docs/labeling-resources) that should be applied to each VM instance in the nodeset. An object containing a list of `"key": value` pairs. Example: `{ "name": "wrench", "mass": "1.3kg", "count": "3" }`. |
| `bootDisk` | ``object (`https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#BootDisk`)`` Optional. Boot disk for the compute instance |

## SlurmPartition

Configuration for Slurm partitions in the cluster. Partitions are groups of nodesets, and are how clients specify where their workloads should be run.

| JSON representation |
|---|
| ``` { "id": string, "nodeSetIds": [ string ] } ``` |

| Fields ||
|---|---|
| `id` | `string` Required. ID of the partition, which is how users will identify it. Must conform to [RFC-1034](https://datatracker.ietf.org/doc/html/rfc1034) (lower-case, alphanumeric, and at most 63 characters). |
| `nodeSetIds[]` | `string` Required. IDs of the nodesets that make up this partition. Values must match `https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters#SlurmNodeSet.FIELDS.id`. |

| ## Methods ||
|---|---|
| ### `https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters/create` | Creates a new Cluster in a given project and location. |
| ### `https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters/delete` | Deletes a single Cluster. |
| ### `https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters/get` | Gets details of a single Cluster. |
| ### `https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters/list` | Lists Clusters in a given project and location. |
| ### `https://docs.cloud.google.com/cluster-director/docs/reference/rest/v1beta/projects.locations.clusters/patch` | Updates the parameters of a single Cluster. |