Cluster Director API . projects . locations . clusters

Instance Methods

close()

Close httplib2 connections.

create(parent, body=None, clusterId=None, requestId=None, x__xgafv=None)

Creates a new Cluster in a given project and location.

delete(name, requestId=None, x__xgafv=None)

Deletes a single Cluster.

get(name, x__xgafv=None)

Gets details of a single Cluster.

list(parent, filter=None, orderBy=None, pageSize=None, pageToken=None, x__xgafv=None)

Lists Clusters in a given project and location.

list_next()

Retrieves the next page of results.

patch(name, body=None, requestId=None, updateMask=None, x__xgafv=None)

Updates the parameters of a single Cluster.

Method Details

close()
Close httplib2 connections.
create(parent, body=None, clusterId=None, requestId=None, x__xgafv=None)
Creates a new Cluster in a given project and location.

Args:
  parent: string, Required. Parent location in which the cluster should be created, in the format `projects/{project}/locations/{location}`. (required)
  body: object, The request body.
    The object takes the form of:

{ # 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.
  "computeResources": { # 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).
    "a_key": { # A resource defining how virtual machines and accelerators should be provisioned for the cluster.
      "config": { # Describes how a compute resource should be created at runtime. # Required. Immutable. Configuration for this compute resource, which describes how it should be created at runtime.
        "newFlexStartInstances": { # When set in a ComputeResourceConfig, indicates that VM instances should be created using [Flex Start](https://cloud.google.com/compute/docs/instances/provisioning-models). # Optional. Immutable. If set, indicates that this resource should use flex-start VMs.
          "machineType": "A 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": "A String", # Required. Immutable. Specifies the time limit for created instances. Instances will be terminated at the end of this duration.
          "zone": "A 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.
        },
        "newOnDemandInstances": { # When set in a ComputeResourceConfig, indicates that on-demand (i.e., using the standard provisioning model) VM instances should be created. # Optional. Immutable. If set, indicates that this resource should use on-demand VMs.
          "machineType": "A 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`.
          "zone": "A 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.
        },
        "newReservedInstances": { # When set in a ComputeResourceConfig, indicates that VM instances should be created from a [reservation](https://cloud.google.com/compute/docs/instances/reservations-overview). # Optional. Immutable. If set, indicates that this resource should use reserved VMs.
          "reservation": "A String", # Optional. Immutable. Name of the reservation from which VM instances should be created, in the format `projects/{project}/zones/{zone}/reservations/{reservation}`.
        },
        "newSpotInstances": { # When set in a ComputeResourceConfig, indicates that [spot VM](https://cloud.google.com/compute/docs/instances/spot) instances should be created. # Optional. Immutable. If set, indicates that this resource should use spot VMs.
          "machineType": "A 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": "A String", # Optional. Specifies the termination action of the instance
          "zone": "A 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.
        },
      },
    },
  },
  "createTime": "A String", # Output only. Time that the cluster was originally created.
  "description": "A String", # Optional. User-provided description of the cluster.
  "labels": { # 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.
    "a_key": "A String",
  },
  "name": "A String", # Identifier. [Relative resource name](https://google.aip.dev/122) of the cluster, in the format `projects/{project}/locations/{location}/clusters/{cluster}`.
  "networkResources": { # Optional. Network resources available to the cluster. Must contain at most 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).
    "a_key": { # A resource representing a network that connects the various components of a cluster together.
      "config": { # 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. # 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.
        "existingNetwork": { # When set in a NetworkResourceConfig, indicates that an existing network should be imported. # Optional. Immutable. If set, indicates that an existing network should be imported.
          "network": "A String", # Required. Immutable. Name of the network to import, in the format `projects/{project}/global/networks/{network}`.
          "subnetwork": "A String", # Required. Immutable. Particular subnetwork to use, in the format `projects/{project}/regions/{region}/subnetworks/{subnetwork}`.
        },
        "newNetwork": { # When set in a NetworkResourceConfig, indicates that a new network should be created. # Optional. Immutable. If set, indicates that a new network should be created.
          "description": "A String", # Optional. Immutable. Description of the network. Maximum of 2048 characters.
          "network": "A String", # Required. Immutable. Name of the network to create, in the format `projects/{project}/global/networks/{network}`.
        },
      },
      "network": { # A reference to a [VPC network](https://cloud.google.com/vpc/docs/vpc) in Google Compute Engine. # Reference to a network in Google Compute Engine.
        "network": "A String", # Output only. Name of the network, in the format `projects/{project}/global/networks/{network}`.
        "subnetwork": "A String", # Output only. Name of the particular subnetwork being used by the cluster, in the format `projects/{project}/regions/{region}/subnetworks/{subnetwork}`.
      },
    },
  },
  "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. # Optional. Orchestrator that is responsible for scheduling and running jobs on the cluster.
    "slurm": { # When set in Orchestrator, indicates that the cluster should use [Slurm](https://slurm.schedmd.com/) as the orchestrator. # Optional. If set, indicates that the cluster should use Slurm as the orchestrator.
      "defaultPartition": "A 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.
      "epilogBashScripts": [ # 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.
        "A String",
      ],
      "loginNodes": { # 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. # Required. Configuration for login nodes, which allow users to access the cluster over SSH.
        "bootDisk": { # A [Persistent disk](https://cloud.google.com/compute/docs/disks) used as the boot disk for a Compute Engine VM instance. # Optional. Boot disk for the login node.
          "sizeGb": "A String", # Required. Immutable. Size of the disk in gigabytes. Must be at least 10GB.
          "type": "A 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}`.
        },
        "count": "A String", # Required. Number of login node instances to create.
        "enableOsLogin": True or False, # Optional. Whether [OS Login](https://cloud.google.com/compute/docs/oslogin) should be enabled on login node instances.
        "enablePublicIps": True or False, # Optional. Whether login node instances should be assigned [external IP addresses](https://cloud.google.com/compute/docs/ip-addresses#externaladdresses).
        "instances": [ # Output only. Information about the login node instances that were created in Compute Engine.
          { # Details about a Compute Engine [instance](https://cloud.google.com/compute/docs/instances).
            "instance": "A String", # Output only. Name of the VM instance, in the format `projects/{project}/zones/{zone}/instances/{instance}`.
          },
        ],
        "labels": { # Optional. [Labels](https://cloud.google.com/compute/docs/labeling-resources) that should be applied to each login node instance.
          "a_key": "A String",
        },
        "machineType": "A 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": "A 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`.
        "storageConfigs": [ # Optional. How storage resources should be mounted on each login node.
          { # Description of how a storage resource should be mounted on a VM instance.
            "id": "A String", # Required. ID of the storage resource to mount, which must match a key in the cluster's [storage_resources](Cluster.storage_resources).
            "localMount": "A String", # Required. A directory inside the VM instance's file system where the storage resource should be mounted (e.g., `/mnt/share`).
          },
        ],
        "zone": "A 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.
      },
      "nodeSets": [ # Required. Configuration of Slurm nodesets, which define groups of compute resources that can be used by Slurm. At least one compute node is required.
        { # 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.
          "computeId": "A String", # Optional. ID of the compute resource on which this nodeset will run. Must match a key in the cluster's [compute_resources](Cluster.compute_resources).
          "computeInstance": { # When set in a SlurmNodeSet, indicates that the nodeset should be backed by Compute Engine VM instances. # Optional. If set, indicates that the nodeset should be backed by Compute Engine instances.
            "bootDisk": { # A [Persistent disk](https://cloud.google.com/compute/docs/disks) used as the boot disk for a Compute Engine VM instance. # Optional. Boot disk for the compute instance
              "sizeGb": "A String", # Required. Immutable. Size of the disk in gigabytes. Must be at least 10GB.
              "type": "A 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}`.
            },
            "labels": { # Optional. [Labels](https://cloud.google.com/compute/docs/labeling-resources) that should be applied to each VM instance in the nodeset.
              "a_key": "A String",
            },
            "startupScript": "A 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.
          },
          "id": "A String", # Required. Identifier for the nodeset, which allows it to be referenced by partitions. Must conform to [RFC-1034](https://datatracker.ietf.org/doc/html/rfc1034) (lower-case, alphanumeric, and at most 63 characters).
          "maxDynamicNodeCount": "A String", # 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.
          "staticNodeCount": "A String", # 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.
          "storageConfigs": [ # Optional. How storage resources should be mounted on each compute node.
            { # Description of how a storage resource should be mounted on a VM instance.
              "id": "A String", # Required. ID of the storage resource to mount, which must match a key in the cluster's [storage_resources](Cluster.storage_resources).
              "localMount": "A String", # Required. A directory inside the VM instance's file system where the storage resource should be mounted (e.g., `/mnt/share`).
            },
          ],
        },
      ],
      "partitions": [ # Required. Configuration of Slurm partitions, which group one or more nodesets. Acts as a queue against which jobs can be submitted. At least one partition is required.
        { # Configuration for Slurm partitions in the cluster. Partitions are groups of nodesets, and are how clients specify where their workloads should be run.
          "id": "A 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": [ # Required. IDs of the nodesets that make up this partition. Values must match SlurmNodeSet.id.
            "A String",
          ],
        },
      ],
      "prologBashScripts": [ # 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.
        "A String",
      ],
    },
  },
  "reconciling": True or False, # 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.
  "storageResources": { # 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).
    "a_key": { # A resource representing a form of persistent storage that is accessible to compute resources in the cluster.
      "bucket": { # A reference to a [Google Cloud Storage](https://cloud.google.com/storage) bucket. # Reference to a Google Cloud Storage bucket. Populated if and only if the storage resource was configured to use Google Cloud Storage.
        "bucket": "A String", # Output only. Name of the bucket.
      },
      "config": { # 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. # 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.
        "existingBucket": { # When set in a StorageResourceConfig, indicates that an existing [Google Cloud Storage](https://cloud.google.com/storage) bucket should be imported. # Optional. Immutable. If set, indicates that an existing Cloud Storage bucket should be imported.
          "bucket": "A String", # Required. Immutable. Name of the Cloud Storage bucket to import.
        },
        "existingFilestore": { # When set in a StorageResourceConfig, indicates that an existing [Filestore](https://cloud.google.com/filestore) instance should be imported. # Optional. Immutable. If set, indicates that an existing Filestore instance should be imported.
          "filestore": "A String", # Required. Immutable. Name of the Filestore instance to import, in the format `projects/{project}/locations/{location}/instances/{instance}`
        },
        "existingLustre": { # When set in a StorageResourceConfig, indicates that an existing [Managed Lustre](https://cloud.google.com/products/managed-lustre) instance should be imported. # Optional. Immutable. If set, indicates that an existing Managed Lustre instance should be imported.
          "lustre": "A String", # Required. Immutable. Name of the Managed Lustre instance to import, in the format `projects/{project}/locations/{location}/instances/{instance}`
        },
        "newBucket": { # When set in a StorageResourceConfig, indicates that a new [Google Cloud Storage](https://cloud.google.com/storage) bucket should be created. # Optional. Immutable. If set, indicates that a new Cloud Storage bucket should be created.
          "autoclass": { # Message describing Google Cloud Storage autoclass configuration # Optional. Immutable. If set, indicates that the bucket should use [Autoclass](https://cloud.google.com/storage/docs/autoclass).
            "enabled": True or False, # Required. Enables Auto-class feature.
            "terminalStorageClass": "A String", # Optional. Terminal storage class of the autoclass bucket
          },
          "bucket": "A String", # Required. Immutable. Name of the Cloud Storage bucket to create.
          "hierarchicalNamespace": { # Message describing Google Cloud Storage hierarchical namespace configuration # Optional. Immutable. If set, indicates that the bucket should use [hierarchical namespaces](https://cloud.google.com/storage/docs/hns-overview).
            "enabled": True or False, # Required. Enables hierarchical namespace setup for the bucket.
          },
          "storageClass": "A String", # Optional. Immutable. If set, uses the provided storage class as the bucket's default storage class.
        },
        "newFilestore": { # When set in a StorageResourceConfig, indicates that a new [Filestore](https://cloud.google.com/filestore) instance should be created. # Optional. Immutable. If set, indicates that a new Filestore instance should be created.
          "description": "A String", # Optional. Immutable. Description of the instance. Maximum of 2048 characters.
          "fileShares": [ # Required. Immutable. File system shares on the instance. Exactly one file share must be specified.
            { # Message describing filestore configuration
              "capacityGb": "A String", # 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": "A String", # Required. Filestore share location
            },
          ],
          "filestore": "A String", # Required. Immutable. Name of the Filestore instance to create, in the format `projects/{project}/locations/{location}/instances/{instance}`
          "protocol": "A String", # Optional. Immutable. Access protocol to use for all file shares in the instance. Defaults to NFS V3 if not set.
          "tier": "A String", # Required. Immutable. Service tier to use for the instance.
        },
        "newLustre": { # When set in a StorageResourceConfig, indicates that a new [Managed Lustre](https://cloud.google.com/products/managed-lustre) instance should be created. # Optional. Immutable. If set, indicates that a new Managed Lustre instance should be created.
          "capacityGb": "A String", # Required. Immutable. Storage capacity of the instance in gibibytes (GiB). Allowed values are between 18000 and 7632000.
          "description": "A String", # Optional. Immutable. Description of the Managed Lustre instance. Maximum of 2048 characters.
          "filesystem": "A 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.
          "lustre": "A String", # Required. Immutable. Name of the Managed Lustre instance to create, in the format `projects/{project}/locations/{location}/instances/{instance}`
        },
      },
      "filestore": { # A reference to a [Filestore](https://cloud.google.com/filestore) instance. # Reference to a Filestore instance. Populated if and only if the storage resource was configured to use Filestore.
        "filestore": "A String", # Output only. Name of the Filestore instance, in the format `projects/{project}/locations/{location}/instances/{instance}`
      },
      "lustre": { # A reference to a [Managed Lustre](https://cloud.google.com/products/managed-lustre) instance. # Reference to a Managed Lustre instance. Populated if and only if the storage resource was configured to use Managed Lustre.
        "lustre": "A String", # Output only. Name of the Managed Lustre instance, in the format `projects/{project}/locations/{location}/instances/{instance}`
      },
    },
  },
  "updateTime": "A String", # Output only. Time that the cluster was most recently updated.
}

  clusterId: string, Required. ID of the cluster to create. Must conform to [RFC-1034](https://datatracker.ietf.org/doc/html/rfc1034) (lower-case, alphanumeric, and at most 63 characters).
  requestId: string, Optional. A unique identifier for this request. A random UUID is recommended. This request is idempotent if and only if `request_id` is provided.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This resource represents a long-running operation that is the result of a network API call.
  "done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
  "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
    "code": 42, # The status code, which should be an enum value of google.rpc.Code.
    "details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        "a_key": "", # Properties of the object. Contains field @type with type URL.
      },
    ],
    "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
  "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
  "response": { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
}
delete(name, requestId=None, x__xgafv=None)
Deletes a single Cluster.

Args:
  name: string, Required. Name of the cluster to delete, in the format `projects/{project}/locations/{location}/clusters/{cluster}`. (required)
  requestId: string, Optional. A unique identifier for this request. A random UUID is recommended. This request is idempotent if and only if `request_id` is provided.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This resource represents a long-running operation that is the result of a network API call.
  "done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
  "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
    "code": 42, # The status code, which should be an enum value of google.rpc.Code.
    "details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        "a_key": "", # Properties of the object. Contains field @type with type URL.
      },
    ],
    "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
  "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
  "response": { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
}
get(name, x__xgafv=None)
Gets details of a single Cluster.

Args:
  name: string, Required. Name of the cluster to retrieve, in the format `projects/{project}/locations/{location}/clusters/{cluster}`. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # 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.
  "computeResources": { # 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).
    "a_key": { # A resource defining how virtual machines and accelerators should be provisioned for the cluster.
      "config": { # Describes how a compute resource should be created at runtime. # Required. Immutable. Configuration for this compute resource, which describes how it should be created at runtime.
        "newFlexStartInstances": { # When set in a ComputeResourceConfig, indicates that VM instances should be created using [Flex Start](https://cloud.google.com/compute/docs/instances/provisioning-models). # Optional. Immutable. If set, indicates that this resource should use flex-start VMs.
          "machineType": "A 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": "A String", # Required. Immutable. Specifies the time limit for created instances. Instances will be terminated at the end of this duration.
          "zone": "A 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.
        },
        "newOnDemandInstances": { # When set in a ComputeResourceConfig, indicates that on-demand (i.e., using the standard provisioning model) VM instances should be created. # Optional. Immutable. If set, indicates that this resource should use on-demand VMs.
          "machineType": "A 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`.
          "zone": "A 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.
        },
        "newReservedInstances": { # When set in a ComputeResourceConfig, indicates that VM instances should be created from a [reservation](https://cloud.google.com/compute/docs/instances/reservations-overview). # Optional. Immutable. If set, indicates that this resource should use reserved VMs.
          "reservation": "A String", # Optional. Immutable. Name of the reservation from which VM instances should be created, in the format `projects/{project}/zones/{zone}/reservations/{reservation}`.
        },
        "newSpotInstances": { # When set in a ComputeResourceConfig, indicates that [spot VM](https://cloud.google.com/compute/docs/instances/spot) instances should be created. # Optional. Immutable. If set, indicates that this resource should use spot VMs.
          "machineType": "A 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": "A String", # Optional. Specifies the termination action of the instance
          "zone": "A 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.
        },
      },
    },
  },
  "createTime": "A String", # Output only. Time that the cluster was originally created.
  "description": "A String", # Optional. User-provided description of the cluster.
  "labels": { # 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.
    "a_key": "A String",
  },
  "name": "A String", # Identifier. [Relative resource name](https://google.aip.dev/122) of the cluster, in the format `projects/{project}/locations/{location}/clusters/{cluster}`.
  "networkResources": { # Optional. Network resources available to the cluster. Must contain at most 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).
    "a_key": { # A resource representing a network that connects the various components of a cluster together.
      "config": { # 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. # 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.
        "existingNetwork": { # When set in a NetworkResourceConfig, indicates that an existing network should be imported. # Optional. Immutable. If set, indicates that an existing network should be imported.
          "network": "A String", # Required. Immutable. Name of the network to import, in the format `projects/{project}/global/networks/{network}`.
          "subnetwork": "A String", # Required. Immutable. Particular subnetwork to use, in the format `projects/{project}/regions/{region}/subnetworks/{subnetwork}`.
        },
        "newNetwork": { # When set in a NetworkResourceConfig, indicates that a new network should be created. # Optional. Immutable. If set, indicates that a new network should be created.
          "description": "A String", # Optional. Immutable. Description of the network. Maximum of 2048 characters.
          "network": "A String", # Required. Immutable. Name of the network to create, in the format `projects/{project}/global/networks/{network}`.
        },
      },
      "network": { # A reference to a [VPC network](https://cloud.google.com/vpc/docs/vpc) in Google Compute Engine. # Reference to a network in Google Compute Engine.
        "network": "A String", # Output only. Name of the network, in the format `projects/{project}/global/networks/{network}`.
        "subnetwork": "A String", # Output only. Name of the particular subnetwork being used by the cluster, in the format `projects/{project}/regions/{region}/subnetworks/{subnetwork}`.
      },
    },
  },
  "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. # Optional. Orchestrator that is responsible for scheduling and running jobs on the cluster.
    "slurm": { # When set in Orchestrator, indicates that the cluster should use [Slurm](https://slurm.schedmd.com/) as the orchestrator. # Optional. If set, indicates that the cluster should use Slurm as the orchestrator.
      "defaultPartition": "A 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.
      "epilogBashScripts": [ # 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.
        "A String",
      ],
      "loginNodes": { # 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. # Required. Configuration for login nodes, which allow users to access the cluster over SSH.
        "bootDisk": { # A [Persistent disk](https://cloud.google.com/compute/docs/disks) used as the boot disk for a Compute Engine VM instance. # Optional. Boot disk for the login node.
          "sizeGb": "A String", # Required. Immutable. Size of the disk in gigabytes. Must be at least 10GB.
          "type": "A 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}`.
        },
        "count": "A String", # Required. Number of login node instances to create.
        "enableOsLogin": True or False, # Optional. Whether [OS Login](https://cloud.google.com/compute/docs/oslogin) should be enabled on login node instances.
        "enablePublicIps": True or False, # Optional. Whether login node instances should be assigned [external IP addresses](https://cloud.google.com/compute/docs/ip-addresses#externaladdresses).
        "instances": [ # Output only. Information about the login node instances that were created in Compute Engine.
          { # Details about a Compute Engine [instance](https://cloud.google.com/compute/docs/instances).
            "instance": "A String", # Output only. Name of the VM instance, in the format `projects/{project}/zones/{zone}/instances/{instance}`.
          },
        ],
        "labels": { # Optional. [Labels](https://cloud.google.com/compute/docs/labeling-resources) that should be applied to each login node instance.
          "a_key": "A String",
        },
        "machineType": "A 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": "A 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`.
        "storageConfigs": [ # Optional. How storage resources should be mounted on each login node.
          { # Description of how a storage resource should be mounted on a VM instance.
            "id": "A String", # Required. ID of the storage resource to mount, which must match a key in the cluster's [storage_resources](Cluster.storage_resources).
            "localMount": "A String", # Required. A directory inside the VM instance's file system where the storage resource should be mounted (e.g., `/mnt/share`).
          },
        ],
        "zone": "A 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.
      },
      "nodeSets": [ # Required. Configuration of Slurm nodesets, which define groups of compute resources that can be used by Slurm. At least one compute node is required.
        { # 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.
          "computeId": "A String", # Optional. ID of the compute resource on which this nodeset will run. Must match a key in the cluster's [compute_resources](Cluster.compute_resources).
          "computeInstance": { # When set in a SlurmNodeSet, indicates that the nodeset should be backed by Compute Engine VM instances. # Optional. If set, indicates that the nodeset should be backed by Compute Engine instances.
            "bootDisk": { # A [Persistent disk](https://cloud.google.com/compute/docs/disks) used as the boot disk for a Compute Engine VM instance. # Optional. Boot disk for the compute instance
              "sizeGb": "A String", # Required. Immutable. Size of the disk in gigabytes. Must be at least 10GB.
              "type": "A 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}`.
            },
            "labels": { # Optional. [Labels](https://cloud.google.com/compute/docs/labeling-resources) that should be applied to each VM instance in the nodeset.
              "a_key": "A String",
            },
            "startupScript": "A 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.
          },
          "id": "A String", # Required. Identifier for the nodeset, which allows it to be referenced by partitions. Must conform to [RFC-1034](https://datatracker.ietf.org/doc/html/rfc1034) (lower-case, alphanumeric, and at most 63 characters).
          "maxDynamicNodeCount": "A String", # 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.
          "staticNodeCount": "A String", # 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.
          "storageConfigs": [ # Optional. How storage resources should be mounted on each compute node.
            { # Description of how a storage resource should be mounted on a VM instance.
              "id": "A String", # Required. ID of the storage resource to mount, which must match a key in the cluster's [storage_resources](Cluster.storage_resources).
              "localMount": "A String", # Required. A directory inside the VM instance's file system where the storage resource should be mounted (e.g., `/mnt/share`).
            },
          ],
        },
      ],
      "partitions": [ # Required. Configuration of Slurm partitions, which group one or more nodesets. Acts as a queue against which jobs can be submitted. At least one partition is required.
        { # Configuration for Slurm partitions in the cluster. Partitions are groups of nodesets, and are how clients specify where their workloads should be run.
          "id": "A 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": [ # Required. IDs of the nodesets that make up this partition. Values must match SlurmNodeSet.id.
            "A String",
          ],
        },
      ],
      "prologBashScripts": [ # 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.
        "A String",
      ],
    },
  },
  "reconciling": True or False, # 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.
  "storageResources": { # 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).
    "a_key": { # A resource representing a form of persistent storage that is accessible to compute resources in the cluster.
      "bucket": { # A reference to a [Google Cloud Storage](https://cloud.google.com/storage) bucket. # Reference to a Google Cloud Storage bucket. Populated if and only if the storage resource was configured to use Google Cloud Storage.
        "bucket": "A String", # Output only. Name of the bucket.
      },
      "config": { # 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. # 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.
        "existingBucket": { # When set in a StorageResourceConfig, indicates that an existing [Google Cloud Storage](https://cloud.google.com/storage) bucket should be imported. # Optional. Immutable. If set, indicates that an existing Cloud Storage bucket should be imported.
          "bucket": "A String", # Required. Immutable. Name of the Cloud Storage bucket to import.
        },
        "existingFilestore": { # When set in a StorageResourceConfig, indicates that an existing [Filestore](https://cloud.google.com/filestore) instance should be imported. # Optional. Immutable. If set, indicates that an existing Filestore instance should be imported.
          "filestore": "A String", # Required. Immutable. Name of the Filestore instance to import, in the format `projects/{project}/locations/{location}/instances/{instance}`
        },
        "existingLustre": { # When set in a StorageResourceConfig, indicates that an existing [Managed Lustre](https://cloud.google.com/products/managed-lustre) instance should be imported. # Optional. Immutable. If set, indicates that an existing Managed Lustre instance should be imported.
          "lustre": "A String", # Required. Immutable. Name of the Managed Lustre instance to import, in the format `projects/{project}/locations/{location}/instances/{instance}`
        },
        "newBucket": { # When set in a StorageResourceConfig, indicates that a new [Google Cloud Storage](https://cloud.google.com/storage) bucket should be created. # Optional. Immutable. If set, indicates that a new Cloud Storage bucket should be created.
          "autoclass": { # Message describing Google Cloud Storage autoclass configuration # Optional. Immutable. If set, indicates that the bucket should use [Autoclass](https://cloud.google.com/storage/docs/autoclass).
            "enabled": True or False, # Required. Enables Auto-class feature.
            "terminalStorageClass": "A String", # Optional. Terminal storage class of the autoclass bucket
          },
          "bucket": "A String", # Required. Immutable. Name of the Cloud Storage bucket to create.
          "hierarchicalNamespace": { # Message describing Google Cloud Storage hierarchical namespace configuration # Optional. Immutable. If set, indicates that the bucket should use [hierarchical namespaces](https://cloud.google.com/storage/docs/hns-overview).
            "enabled": True or False, # Required. Enables hierarchical namespace setup for the bucket.
          },
          "storageClass": "A String", # Optional. Immutable. If set, uses the provided storage class as the bucket's default storage class.
        },
        "newFilestore": { # When set in a StorageResourceConfig, indicates that a new [Filestore](https://cloud.google.com/filestore) instance should be created. # Optional. Immutable. If set, indicates that a new Filestore instance should be created.
          "description": "A String", # Optional. Immutable. Description of the instance. Maximum of 2048 characters.
          "fileShares": [ # Required. Immutable. File system shares on the instance. Exactly one file share must be specified.
            { # Message describing filestore configuration
              "capacityGb": "A String", # 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": "A String", # Required. Filestore share location
            },
          ],
          "filestore": "A String", # Required. Immutable. Name of the Filestore instance to create, in the format `projects/{project}/locations/{location}/instances/{instance}`
          "protocol": "A String", # Optional. Immutable. Access protocol to use for all file shares in the instance. Defaults to NFS V3 if not set.
          "tier": "A String", # Required. Immutable. Service tier to use for the instance.
        },
        "newLustre": { # When set in a StorageResourceConfig, indicates that a new [Managed Lustre](https://cloud.google.com/products/managed-lustre) instance should be created. # Optional. Immutable. If set, indicates that a new Managed Lustre instance should be created.
          "capacityGb": "A String", # Required. Immutable. Storage capacity of the instance in gibibytes (GiB). Allowed values are between 18000 and 7632000.
          "description": "A String", # Optional. Immutable. Description of the Managed Lustre instance. Maximum of 2048 characters.
          "filesystem": "A 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.
          "lustre": "A String", # Required. Immutable. Name of the Managed Lustre instance to create, in the format `projects/{project}/locations/{location}/instances/{instance}`
        },
      },
      "filestore": { # A reference to a [Filestore](https://cloud.google.com/filestore) instance. # Reference to a Filestore instance. Populated if and only if the storage resource was configured to use Filestore.
        "filestore": "A String", # Output only. Name of the Filestore instance, in the format `projects/{project}/locations/{location}/instances/{instance}`
      },
      "lustre": { # A reference to a [Managed Lustre](https://cloud.google.com/products/managed-lustre) instance. # Reference to a Managed Lustre instance. Populated if and only if the storage resource was configured to use Managed Lustre.
        "lustre": "A String", # Output only. Name of the Managed Lustre instance, in the format `projects/{project}/locations/{location}/instances/{instance}`
      },
    },
  },
  "updateTime": "A String", # Output only. Time that the cluster was most recently updated.
}
list(parent, filter=None, orderBy=None, pageSize=None, pageToken=None, x__xgafv=None)
Lists Clusters in a given project and location.

Args:
  parent: string, Required. Parent location of the clusters to list, in the format `projects/{project}/locations/{location}`. (required)
  filter: string, Optional. [Filter](https://google.aip.dev/160) to apply to the returned results.
  orderBy: string, Optional. How to order the resulting clusters. Must be one of the following strings: * `name` * `name desc` * `create_time` * `create_time desc` If not specified, clusters will be returned in an arbitrary order.
  pageSize: integer, Optional. Maximum number of clusters to return. The service may return fewer than this value.
  pageToken: string, Optional. A page token received from a previous `ListClusters` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListClusters` must match the call that provided the page token.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response message for ListClusters.
  "clusters": [ # Clusters in the specified location.
    { # 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.
      "computeResources": { # 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).
        "a_key": { # A resource defining how virtual machines and accelerators should be provisioned for the cluster.
          "config": { # Describes how a compute resource should be created at runtime. # Required. Immutable. Configuration for this compute resource, which describes how it should be created at runtime.
            "newFlexStartInstances": { # When set in a ComputeResourceConfig, indicates that VM instances should be created using [Flex Start](https://cloud.google.com/compute/docs/instances/provisioning-models). # Optional. Immutable. If set, indicates that this resource should use flex-start VMs.
              "machineType": "A 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": "A String", # Required. Immutable. Specifies the time limit for created instances. Instances will be terminated at the end of this duration.
              "zone": "A 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.
            },
            "newOnDemandInstances": { # When set in a ComputeResourceConfig, indicates that on-demand (i.e., using the standard provisioning model) VM instances should be created. # Optional. Immutable. If set, indicates that this resource should use on-demand VMs.
              "machineType": "A 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`.
              "zone": "A 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.
            },
            "newReservedInstances": { # When set in a ComputeResourceConfig, indicates that VM instances should be created from a [reservation](https://cloud.google.com/compute/docs/instances/reservations-overview). # Optional. Immutable. If set, indicates that this resource should use reserved VMs.
              "reservation": "A String", # Optional. Immutable. Name of the reservation from which VM instances should be created, in the format `projects/{project}/zones/{zone}/reservations/{reservation}`.
            },
            "newSpotInstances": { # When set in a ComputeResourceConfig, indicates that [spot VM](https://cloud.google.com/compute/docs/instances/spot) instances should be created. # Optional. Immutable. If set, indicates that this resource should use spot VMs.
              "machineType": "A 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": "A String", # Optional. Specifies the termination action of the instance
              "zone": "A 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.
            },
          },
        },
      },
      "createTime": "A String", # Output only. Time that the cluster was originally created.
      "description": "A String", # Optional. User-provided description of the cluster.
      "labels": { # 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.
        "a_key": "A String",
      },
      "name": "A String", # Identifier. [Relative resource name](https://google.aip.dev/122) of the cluster, in the format `projects/{project}/locations/{location}/clusters/{cluster}`.
      "networkResources": { # Optional. Network resources available to the cluster. Must contain at most 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).
        "a_key": { # A resource representing a network that connects the various components of a cluster together.
          "config": { # 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. # 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.
            "existingNetwork": { # When set in a NetworkResourceConfig, indicates that an existing network should be imported. # Optional. Immutable. If set, indicates that an existing network should be imported.
              "network": "A String", # Required. Immutable. Name of the network to import, in the format `projects/{project}/global/networks/{network}`.
              "subnetwork": "A String", # Required. Immutable. Particular subnetwork to use, in the format `projects/{project}/regions/{region}/subnetworks/{subnetwork}`.
            },
            "newNetwork": { # When set in a NetworkResourceConfig, indicates that a new network should be created. # Optional. Immutable. If set, indicates that a new network should be created.
              "description": "A String", # Optional. Immutable. Description of the network. Maximum of 2048 characters.
              "network": "A String", # Required. Immutable. Name of the network to create, in the format `projects/{project}/global/networks/{network}`.
            },
          },
          "network": { # A reference to a [VPC network](https://cloud.google.com/vpc/docs/vpc) in Google Compute Engine. # Reference to a network in Google Compute Engine.
            "network": "A String", # Output only. Name of the network, in the format `projects/{project}/global/networks/{network}`.
            "subnetwork": "A String", # Output only. Name of the particular subnetwork being used by the cluster, in the format `projects/{project}/regions/{region}/subnetworks/{subnetwork}`.
          },
        },
      },
      "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. # Optional. Orchestrator that is responsible for scheduling and running jobs on the cluster.
        "slurm": { # When set in Orchestrator, indicates that the cluster should use [Slurm](https://slurm.schedmd.com/) as the orchestrator. # Optional. If set, indicates that the cluster should use Slurm as the orchestrator.
          "defaultPartition": "A 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.
          "epilogBashScripts": [ # 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.
            "A String",
          ],
          "loginNodes": { # 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. # Required. Configuration for login nodes, which allow users to access the cluster over SSH.
            "bootDisk": { # A [Persistent disk](https://cloud.google.com/compute/docs/disks) used as the boot disk for a Compute Engine VM instance. # Optional. Boot disk for the login node.
              "sizeGb": "A String", # Required. Immutable. Size of the disk in gigabytes. Must be at least 10GB.
              "type": "A 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}`.
            },
            "count": "A String", # Required. Number of login node instances to create.
            "enableOsLogin": True or False, # Optional. Whether [OS Login](https://cloud.google.com/compute/docs/oslogin) should be enabled on login node instances.
            "enablePublicIps": True or False, # Optional. Whether login node instances should be assigned [external IP addresses](https://cloud.google.com/compute/docs/ip-addresses#externaladdresses).
            "instances": [ # Output only. Information about the login node instances that were created in Compute Engine.
              { # Details about a Compute Engine [instance](https://cloud.google.com/compute/docs/instances).
                "instance": "A String", # Output only. Name of the VM instance, in the format `projects/{project}/zones/{zone}/instances/{instance}`.
              },
            ],
            "labels": { # Optional. [Labels](https://cloud.google.com/compute/docs/labeling-resources) that should be applied to each login node instance.
              "a_key": "A String",
            },
            "machineType": "A 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": "A 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`.
            "storageConfigs": [ # Optional. How storage resources should be mounted on each login node.
              { # Description of how a storage resource should be mounted on a VM instance.
                "id": "A String", # Required. ID of the storage resource to mount, which must match a key in the cluster's [storage_resources](Cluster.storage_resources).
                "localMount": "A String", # Required. A directory inside the VM instance's file system where the storage resource should be mounted (e.g., `/mnt/share`).
              },
            ],
            "zone": "A 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.
          },
          "nodeSets": [ # Required. Configuration of Slurm nodesets, which define groups of compute resources that can be used by Slurm. At least one compute node is required.
            { # 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.
              "computeId": "A String", # Optional. ID of the compute resource on which this nodeset will run. Must match a key in the cluster's [compute_resources](Cluster.compute_resources).
              "computeInstance": { # When set in a SlurmNodeSet, indicates that the nodeset should be backed by Compute Engine VM instances. # Optional. If set, indicates that the nodeset should be backed by Compute Engine instances.
                "bootDisk": { # A [Persistent disk](https://cloud.google.com/compute/docs/disks) used as the boot disk for a Compute Engine VM instance. # Optional. Boot disk for the compute instance
                  "sizeGb": "A String", # Required. Immutable. Size of the disk in gigabytes. Must be at least 10GB.
                  "type": "A 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}`.
                },
                "labels": { # Optional. [Labels](https://cloud.google.com/compute/docs/labeling-resources) that should be applied to each VM instance in the nodeset.
                  "a_key": "A String",
                },
                "startupScript": "A 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.
              },
              "id": "A String", # Required. Identifier for the nodeset, which allows it to be referenced by partitions. Must conform to [RFC-1034](https://datatracker.ietf.org/doc/html/rfc1034) (lower-case, alphanumeric, and at most 63 characters).
              "maxDynamicNodeCount": "A String", # 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.
              "staticNodeCount": "A String", # 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.
              "storageConfigs": [ # Optional. How storage resources should be mounted on each compute node.
                { # Description of how a storage resource should be mounted on a VM instance.
                  "id": "A String", # Required. ID of the storage resource to mount, which must match a key in the cluster's [storage_resources](Cluster.storage_resources).
                  "localMount": "A String", # Required. A directory inside the VM instance's file system where the storage resource should be mounted (e.g., `/mnt/share`).
                },
              ],
            },
          ],
          "partitions": [ # Required. Configuration of Slurm partitions, which group one or more nodesets. Acts as a queue against which jobs can be submitted. At least one partition is required.
            { # Configuration for Slurm partitions in the cluster. Partitions are groups of nodesets, and are how clients specify where their workloads should be run.
              "id": "A 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": [ # Required. IDs of the nodesets that make up this partition. Values must match SlurmNodeSet.id.
                "A String",
              ],
            },
          ],
          "prologBashScripts": [ # 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.
            "A String",
          ],
        },
      },
      "reconciling": True or False, # 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.
      "storageResources": { # 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).
        "a_key": { # A resource representing a form of persistent storage that is accessible to compute resources in the cluster.
          "bucket": { # A reference to a [Google Cloud Storage](https://cloud.google.com/storage) bucket. # Reference to a Google Cloud Storage bucket. Populated if and only if the storage resource was configured to use Google Cloud Storage.
            "bucket": "A String", # Output only. Name of the bucket.
          },
          "config": { # 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. # 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.
            "existingBucket": { # When set in a StorageResourceConfig, indicates that an existing [Google Cloud Storage](https://cloud.google.com/storage) bucket should be imported. # Optional. Immutable. If set, indicates that an existing Cloud Storage bucket should be imported.
              "bucket": "A String", # Required. Immutable. Name of the Cloud Storage bucket to import.
            },
            "existingFilestore": { # When set in a StorageResourceConfig, indicates that an existing [Filestore](https://cloud.google.com/filestore) instance should be imported. # Optional. Immutable. If set, indicates that an existing Filestore instance should be imported.
              "filestore": "A String", # Required. Immutable. Name of the Filestore instance to import, in the format `projects/{project}/locations/{location}/instances/{instance}`
            },
            "existingLustre": { # When set in a StorageResourceConfig, indicates that an existing [Managed Lustre](https://cloud.google.com/products/managed-lustre) instance should be imported. # Optional. Immutable. If set, indicates that an existing Managed Lustre instance should be imported.
              "lustre": "A String", # Required. Immutable. Name of the Managed Lustre instance to import, in the format `projects/{project}/locations/{location}/instances/{instance}`
            },
            "newBucket": { # When set in a StorageResourceConfig, indicates that a new [Google Cloud Storage](https://cloud.google.com/storage) bucket should be created. # Optional. Immutable. If set, indicates that a new Cloud Storage bucket should be created.
              "autoclass": { # Message describing Google Cloud Storage autoclass configuration # Optional. Immutable. If set, indicates that the bucket should use [Autoclass](https://cloud.google.com/storage/docs/autoclass).
                "enabled": True or False, # Required. Enables Auto-class feature.
                "terminalStorageClass": "A String", # Optional. Terminal storage class of the autoclass bucket
              },
              "bucket": "A String", # Required. Immutable. Name of the Cloud Storage bucket to create.
              "hierarchicalNamespace": { # Message describing Google Cloud Storage hierarchical namespace configuration # Optional. Immutable. If set, indicates that the bucket should use [hierarchical namespaces](https://cloud.google.com/storage/docs/hns-overview).
                "enabled": True or False, # Required. Enables hierarchical namespace setup for the bucket.
              },
              "storageClass": "A String", # Optional. Immutable. If set, uses the provided storage class as the bucket's default storage class.
            },
            "newFilestore": { # When set in a StorageResourceConfig, indicates that a new [Filestore](https://cloud.google.com/filestore) instance should be created. # Optional. Immutable. If set, indicates that a new Filestore instance should be created.
              "description": "A String", # Optional. Immutable. Description of the instance. Maximum of 2048 characters.
              "fileShares": [ # Required. Immutable. File system shares on the instance. Exactly one file share must be specified.
                { # Message describing filestore configuration
                  "capacityGb": "A String", # 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": "A String", # Required. Filestore share location
                },
              ],
              "filestore": "A String", # Required. Immutable. Name of the Filestore instance to create, in the format `projects/{project}/locations/{location}/instances/{instance}`
              "protocol": "A String", # Optional. Immutable. Access protocol to use for all file shares in the instance. Defaults to NFS V3 if not set.
              "tier": "A String", # Required. Immutable. Service tier to use for the instance.
            },
            "newLustre": { # When set in a StorageResourceConfig, indicates that a new [Managed Lustre](https://cloud.google.com/products/managed-lustre) instance should be created. # Optional. Immutable. If set, indicates that a new Managed Lustre instance should be created.
              "capacityGb": "A String", # Required. Immutable. Storage capacity of the instance in gibibytes (GiB). Allowed values are between 18000 and 7632000.
              "description": "A String", # Optional. Immutable. Description of the Managed Lustre instance. Maximum of 2048 characters.
              "filesystem": "A 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.
              "lustre": "A String", # Required. Immutable. Name of the Managed Lustre instance to create, in the format `projects/{project}/locations/{location}/instances/{instance}`
            },
          },
          "filestore": { # A reference to a [Filestore](https://cloud.google.com/filestore) instance. # Reference to a Filestore instance. Populated if and only if the storage resource was configured to use Filestore.
            "filestore": "A String", # Output only. Name of the Filestore instance, in the format `projects/{project}/locations/{location}/instances/{instance}`
          },
          "lustre": { # A reference to a [Managed Lustre](https://cloud.google.com/products/managed-lustre) instance. # Reference to a Managed Lustre instance. Populated if and only if the storage resource was configured to use Managed Lustre.
            "lustre": "A String", # Output only. Name of the Managed Lustre instance, in the format `projects/{project}/locations/{location}/instances/{instance}`
          },
        },
      },
      "updateTime": "A String", # Output only. Time that the cluster was most recently updated.
    },
  ],
  "nextPageToken": "A String", # A token that can be sent as `page_token` to retrieve the next page. If this field is absent, there are no subsequent pages.
  "unreachable": [ # Locations that could not be reached.
    "A String",
  ],
}
list_next()
Retrieves the next page of results.

        Args:
          previous_request: The request for the previous page. (required)
          previous_response: The response from the request for the previous page. (required)

        Returns:
          A request object that you can call 'execute()' on to request the next
          page. Returns None if there are no more items in the collection.
        
patch(name, body=None, requestId=None, updateMask=None, x__xgafv=None)
Updates the parameters of a single Cluster.

Args:
  name: string, Identifier. [Relative resource name](https://google.aip.dev/122) of the cluster, in the format `projects/{project}/locations/{location}/clusters/{cluster}`. (required)
  body: object, The request body.
    The object takes the form of:

{ # 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.
  "computeResources": { # 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).
    "a_key": { # A resource defining how virtual machines and accelerators should be provisioned for the cluster.
      "config": { # Describes how a compute resource should be created at runtime. # Required. Immutable. Configuration for this compute resource, which describes how it should be created at runtime.
        "newFlexStartInstances": { # When set in a ComputeResourceConfig, indicates that VM instances should be created using [Flex Start](https://cloud.google.com/compute/docs/instances/provisioning-models). # Optional. Immutable. If set, indicates that this resource should use flex-start VMs.
          "machineType": "A 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": "A String", # Required. Immutable. Specifies the time limit for created instances. Instances will be terminated at the end of this duration.
          "zone": "A 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.
        },
        "newOnDemandInstances": { # When set in a ComputeResourceConfig, indicates that on-demand (i.e., using the standard provisioning model) VM instances should be created. # Optional. Immutable. If set, indicates that this resource should use on-demand VMs.
          "machineType": "A 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`.
          "zone": "A 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.
        },
        "newReservedInstances": { # When set in a ComputeResourceConfig, indicates that VM instances should be created from a [reservation](https://cloud.google.com/compute/docs/instances/reservations-overview). # Optional. Immutable. If set, indicates that this resource should use reserved VMs.
          "reservation": "A String", # Optional. Immutable. Name of the reservation from which VM instances should be created, in the format `projects/{project}/zones/{zone}/reservations/{reservation}`.
        },
        "newSpotInstances": { # When set in a ComputeResourceConfig, indicates that [spot VM](https://cloud.google.com/compute/docs/instances/spot) instances should be created. # Optional. Immutable. If set, indicates that this resource should use spot VMs.
          "machineType": "A 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": "A String", # Optional. Specifies the termination action of the instance
          "zone": "A 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.
        },
      },
    },
  },
  "createTime": "A String", # Output only. Time that the cluster was originally created.
  "description": "A String", # Optional. User-provided description of the cluster.
  "labels": { # 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.
    "a_key": "A String",
  },
  "name": "A String", # Identifier. [Relative resource name](https://google.aip.dev/122) of the cluster, in the format `projects/{project}/locations/{location}/clusters/{cluster}`.
  "networkResources": { # Optional. Network resources available to the cluster. Must contain at most 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).
    "a_key": { # A resource representing a network that connects the various components of a cluster together.
      "config": { # 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. # 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.
        "existingNetwork": { # When set in a NetworkResourceConfig, indicates that an existing network should be imported. # Optional. Immutable. If set, indicates that an existing network should be imported.
          "network": "A String", # Required. Immutable. Name of the network to import, in the format `projects/{project}/global/networks/{network}`.
          "subnetwork": "A String", # Required. Immutable. Particular subnetwork to use, in the format `projects/{project}/regions/{region}/subnetworks/{subnetwork}`.
        },
        "newNetwork": { # When set in a NetworkResourceConfig, indicates that a new network should be created. # Optional. Immutable. If set, indicates that a new network should be created.
          "description": "A String", # Optional. Immutable. Description of the network. Maximum of 2048 characters.
          "network": "A String", # Required. Immutable. Name of the network to create, in the format `projects/{project}/global/networks/{network}`.
        },
      },
      "network": { # A reference to a [VPC network](https://cloud.google.com/vpc/docs/vpc) in Google Compute Engine. # Reference to a network in Google Compute Engine.
        "network": "A String", # Output only. Name of the network, in the format `projects/{project}/global/networks/{network}`.
        "subnetwork": "A String", # Output only. Name of the particular subnetwork being used by the cluster, in the format `projects/{project}/regions/{region}/subnetworks/{subnetwork}`.
      },
    },
  },
  "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. # Optional. Orchestrator that is responsible for scheduling and running jobs on the cluster.
    "slurm": { # When set in Orchestrator, indicates that the cluster should use [Slurm](https://slurm.schedmd.com/) as the orchestrator. # Optional. If set, indicates that the cluster should use Slurm as the orchestrator.
      "defaultPartition": "A 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.
      "epilogBashScripts": [ # 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.
        "A String",
      ],
      "loginNodes": { # 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. # Required. Configuration for login nodes, which allow users to access the cluster over SSH.
        "bootDisk": { # A [Persistent disk](https://cloud.google.com/compute/docs/disks) used as the boot disk for a Compute Engine VM instance. # Optional. Boot disk for the login node.
          "sizeGb": "A String", # Required. Immutable. Size of the disk in gigabytes. Must be at least 10GB.
          "type": "A 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}`.
        },
        "count": "A String", # Required. Number of login node instances to create.
        "enableOsLogin": True or False, # Optional. Whether [OS Login](https://cloud.google.com/compute/docs/oslogin) should be enabled on login node instances.
        "enablePublicIps": True or False, # Optional. Whether login node instances should be assigned [external IP addresses](https://cloud.google.com/compute/docs/ip-addresses#externaladdresses).
        "instances": [ # Output only. Information about the login node instances that were created in Compute Engine.
          { # Details about a Compute Engine [instance](https://cloud.google.com/compute/docs/instances).
            "instance": "A String", # Output only. Name of the VM instance, in the format `projects/{project}/zones/{zone}/instances/{instance}`.
          },
        ],
        "labels": { # Optional. [Labels](https://cloud.google.com/compute/docs/labeling-resources) that should be applied to each login node instance.
          "a_key": "A String",
        },
        "machineType": "A 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": "A 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`.
        "storageConfigs": [ # Optional. How storage resources should be mounted on each login node.
          { # Description of how a storage resource should be mounted on a VM instance.
            "id": "A String", # Required. ID of the storage resource to mount, which must match a key in the cluster's [storage_resources](Cluster.storage_resources).
            "localMount": "A String", # Required. A directory inside the VM instance's file system where the storage resource should be mounted (e.g., `/mnt/share`).
          },
        ],
        "zone": "A 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.
      },
      "nodeSets": [ # Required. Configuration of Slurm nodesets, which define groups of compute resources that can be used by Slurm. At least one compute node is required.
        { # 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.
          "computeId": "A String", # Optional. ID of the compute resource on which this nodeset will run. Must match a key in the cluster's [compute_resources](Cluster.compute_resources).
          "computeInstance": { # When set in a SlurmNodeSet, indicates that the nodeset should be backed by Compute Engine VM instances. # Optional. If set, indicates that the nodeset should be backed by Compute Engine instances.
            "bootDisk": { # A [Persistent disk](https://cloud.google.com/compute/docs/disks) used as the boot disk for a Compute Engine VM instance. # Optional. Boot disk for the compute instance
              "sizeGb": "A String", # Required. Immutable. Size of the disk in gigabytes. Must be at least 10GB.
              "type": "A 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}`.
            },
            "labels": { # Optional. [Labels](https://cloud.google.com/compute/docs/labeling-resources) that should be applied to each VM instance in the nodeset.
              "a_key": "A String",
            },
            "startupScript": "A 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.
          },
          "id": "A String", # Required. Identifier for the nodeset, which allows it to be referenced by partitions. Must conform to [RFC-1034](https://datatracker.ietf.org/doc/html/rfc1034) (lower-case, alphanumeric, and at most 63 characters).
          "maxDynamicNodeCount": "A String", # 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.
          "staticNodeCount": "A String", # 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.
          "storageConfigs": [ # Optional. How storage resources should be mounted on each compute node.
            { # Description of how a storage resource should be mounted on a VM instance.
              "id": "A String", # Required. ID of the storage resource to mount, which must match a key in the cluster's [storage_resources](Cluster.storage_resources).
              "localMount": "A String", # Required. A directory inside the VM instance's file system where the storage resource should be mounted (e.g., `/mnt/share`).
            },
          ],
        },
      ],
      "partitions": [ # Required. Configuration of Slurm partitions, which group one or more nodesets. Acts as a queue against which jobs can be submitted. At least one partition is required.
        { # Configuration for Slurm partitions in the cluster. Partitions are groups of nodesets, and are how clients specify where their workloads should be run.
          "id": "A 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": [ # Required. IDs of the nodesets that make up this partition. Values must match SlurmNodeSet.id.
            "A String",
          ],
        },
      ],
      "prologBashScripts": [ # 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.
        "A String",
      ],
    },
  },
  "reconciling": True or False, # 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.
  "storageResources": { # 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).
    "a_key": { # A resource representing a form of persistent storage that is accessible to compute resources in the cluster.
      "bucket": { # A reference to a [Google Cloud Storage](https://cloud.google.com/storage) bucket. # Reference to a Google Cloud Storage bucket. Populated if and only if the storage resource was configured to use Google Cloud Storage.
        "bucket": "A String", # Output only. Name of the bucket.
      },
      "config": { # 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. # 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.
        "existingBucket": { # When set in a StorageResourceConfig, indicates that an existing [Google Cloud Storage](https://cloud.google.com/storage) bucket should be imported. # Optional. Immutable. If set, indicates that an existing Cloud Storage bucket should be imported.
          "bucket": "A String", # Required. Immutable. Name of the Cloud Storage bucket to import.
        },
        "existingFilestore": { # When set in a StorageResourceConfig, indicates that an existing [Filestore](https://cloud.google.com/filestore) instance should be imported. # Optional. Immutable. If set, indicates that an existing Filestore instance should be imported.
          "filestore": "A String", # Required. Immutable. Name of the Filestore instance to import, in the format `projects/{project}/locations/{location}/instances/{instance}`
        },
        "existingLustre": { # When set in a StorageResourceConfig, indicates that an existing [Managed Lustre](https://cloud.google.com/products/managed-lustre) instance should be imported. # Optional. Immutable. If set, indicates that an existing Managed Lustre instance should be imported.
          "lustre": "A String", # Required. Immutable. Name of the Managed Lustre instance to import, in the format `projects/{project}/locations/{location}/instances/{instance}`
        },
        "newBucket": { # When set in a StorageResourceConfig, indicates that a new [Google Cloud Storage](https://cloud.google.com/storage) bucket should be created. # Optional. Immutable. If set, indicates that a new Cloud Storage bucket should be created.
          "autoclass": { # Message describing Google Cloud Storage autoclass configuration # Optional. Immutable. If set, indicates that the bucket should use [Autoclass](https://cloud.google.com/storage/docs/autoclass).
            "enabled": True or False, # Required. Enables Auto-class feature.
            "terminalStorageClass": "A String", # Optional. Terminal storage class of the autoclass bucket
          },
          "bucket": "A String", # Required. Immutable. Name of the Cloud Storage bucket to create.
          "hierarchicalNamespace": { # Message describing Google Cloud Storage hierarchical namespace configuration # Optional. Immutable. If set, indicates that the bucket should use [hierarchical namespaces](https://cloud.google.com/storage/docs/hns-overview).
            "enabled": True or False, # Required. Enables hierarchical namespace setup for the bucket.
          },
          "storageClass": "A String", # Optional. Immutable. If set, uses the provided storage class as the bucket's default storage class.
        },
        "newFilestore": { # When set in a StorageResourceConfig, indicates that a new [Filestore](https://cloud.google.com/filestore) instance should be created. # Optional. Immutable. If set, indicates that a new Filestore instance should be created.
          "description": "A String", # Optional. Immutable. Description of the instance. Maximum of 2048 characters.
          "fileShares": [ # Required. Immutable. File system shares on the instance. Exactly one file share must be specified.
            { # Message describing filestore configuration
              "capacityGb": "A String", # 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": "A String", # Required. Filestore share location
            },
          ],
          "filestore": "A String", # Required. Immutable. Name of the Filestore instance to create, in the format `projects/{project}/locations/{location}/instances/{instance}`
          "protocol": "A String", # Optional. Immutable. Access protocol to use for all file shares in the instance. Defaults to NFS V3 if not set.
          "tier": "A String", # Required. Immutable. Service tier to use for the instance.
        },
        "newLustre": { # When set in a StorageResourceConfig, indicates that a new [Managed Lustre](https://cloud.google.com/products/managed-lustre) instance should be created. # Optional. Immutable. If set, indicates that a new Managed Lustre instance should be created.
          "capacityGb": "A String", # Required. Immutable. Storage capacity of the instance in gibibytes (GiB). Allowed values are between 18000 and 7632000.
          "description": "A String", # Optional. Immutable. Description of the Managed Lustre instance. Maximum of 2048 characters.
          "filesystem": "A 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.
          "lustre": "A String", # Required. Immutable. Name of the Managed Lustre instance to create, in the format `projects/{project}/locations/{location}/instances/{instance}`
        },
      },
      "filestore": { # A reference to a [Filestore](https://cloud.google.com/filestore) instance. # Reference to a Filestore instance. Populated if and only if the storage resource was configured to use Filestore.
        "filestore": "A String", # Output only. Name of the Filestore instance, in the format `projects/{project}/locations/{location}/instances/{instance}`
      },
      "lustre": { # A reference to a [Managed Lustre](https://cloud.google.com/products/managed-lustre) instance. # Reference to a Managed Lustre instance. Populated if and only if the storage resource was configured to use Managed Lustre.
        "lustre": "A String", # Output only. Name of the Managed Lustre instance, in the format `projects/{project}/locations/{location}/instances/{instance}`
      },
    },
  },
  "updateTime": "A String", # Output only. Time that the cluster was most recently updated.
}

  requestId: string, Optional. A unique identifier for this request. A random UUID is recommended. This request is idempotent if and only if `request_id` is provided.
  updateMask: string, Optional. Mask specifying which fields in the cluster to update. All paths must be specified explicitly - wildcards are not supported. At least one path must be provided.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This resource represents a long-running operation that is the result of a network API call.
  "done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
  "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
    "code": 42, # The status code, which should be an enum value of google.rpc.Code.
    "details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        "a_key": "", # Properties of the object. Contains field @type with type URL.
      },
    ],
    "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
  "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
  "response": { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
}