- [JSON representation](https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#SCHEMA_REPRESENTATION)
- [ClusterType](https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#ClusterType)
- [Engine](https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#Engine)
- [GceClusterConfig](https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#GceClusterConfig)
  - [JSON representation](https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#GceClusterConfig.SCHEMA_REPRESENTATION)
- [MultiZoneConfig](https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#MultiZoneConfig)
  - [JSON representation](https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#MultiZoneConfig.SCHEMA_REPRESENTATION)
- [TargetShape](https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#TargetShape)
- [PrivateIpv6GoogleAccess](https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#PrivateIpv6GoogleAccess)
- [ReservationAffinity](https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#ReservationAffinity)
  - [JSON representation](https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#ReservationAffinity.SCHEMA_REPRESENTATION)
- [Type](https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#Type)
- [NodeGroupAffinity](https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#NodeGroupAffinity)
  - [JSON representation](https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#NodeGroupAffinity.SCHEMA_REPRESENTATION)
- [ShieldedInstanceConfig](https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#ShieldedInstanceConfig)
  - [JSON representation](https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#ShieldedInstanceConfig.SCHEMA_REPRESENTATION)
- [ConfidentialInstanceConfig](https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#ConfidentialInstanceConfig)
  - [JSON representation](https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#ConfidentialInstanceConfig.SCHEMA_REPRESENTATION)
- [ConfidentialInstanceType](https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#ConfidentialInstanceType)
- [SoftwareConfig](https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#SoftwareConfig)
  - [JSON representation](https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#SoftwareConfig.SCHEMA_REPRESENTATION)
- [Component](https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#Component)
- [NodeInitializationAction](https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#NodeInitializationAction)
  - [JSON representation](https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#NodeInitializationAction.SCHEMA_REPRESENTATION)
- [EncryptionConfig](https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#EncryptionConfig)
  - [JSON representation](https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#EncryptionConfig.SCHEMA_REPRESENTATION)
- [AutoscalingConfig](https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#AutoscalingConfig)
  - [JSON representation](https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#AutoscalingConfig.SCHEMA_REPRESENTATION)
- [SecurityConfig](https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#SecurityConfig)
  - [JSON representation](https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#SecurityConfig.SCHEMA_REPRESENTATION)
- [KerberosConfig](https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#KerberosConfig)
  - [JSON representation](https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#KerberosConfig.SCHEMA_REPRESENTATION)
- [IdentityConfig](https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#IdentityConfig)
  - [JSON representation](https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#IdentityConfig.SCHEMA_REPRESENTATION)
- [LifecycleConfig](https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#LifecycleConfig)
  - [JSON representation](https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#LifecycleConfig.SCHEMA_REPRESENTATION)
- [EndpointConfig](https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#EndpointConfig)
  - [JSON representation](https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#EndpointConfig.SCHEMA_REPRESENTATION)
- [DataprocMetricConfig](https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#DataprocMetricConfig)
  - [JSON representation](https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#DataprocMetricConfig.SCHEMA_REPRESENTATION)
- [Metric](https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#Metric)
  - [JSON representation](https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#Metric.SCHEMA_REPRESENTATION)
- [MetricSource](https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#MetricSource)
- [AuxiliaryNodeGroup](https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#AuxiliaryNodeGroup)
  - [JSON representation](https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#AuxiliaryNodeGroup.SCHEMA_REPRESENTATION)
- [SchedulingConfig](https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#SchedulingConfig)
  - [JSON representation](https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#SchedulingConfig.SCHEMA_REPRESENTATION)
- [FlexibleInstanceGroupConfig](https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#FlexibleInstanceGroupConfig)
  - [JSON representation](https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#FlexibleInstanceGroupConfig.SCHEMA_REPRESENTATION)
- [HardwareClass](https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#HardwareClass)

The cluster config.

| JSON representation |
|---|
| ``` { "clusterType": enum (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#ClusterType`), "engine": enum (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#Engine`), "configBucket": string, "tempBucket": string, "gceClusterConfig": { object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#GceClusterConfig`) }, "masterConfig": { object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/InstanceGroupConfig`) }, "workerConfig": { object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/InstanceGroupConfig`) }, "secondaryWorkerConfig": { object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/InstanceGroupConfig`) }, "softwareConfig": { object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#SoftwareConfig`) }, "initializationActions": [ { object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#NodeInitializationAction`) } ], "encryptionConfig": { object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#EncryptionConfig`) }, "autoscalingConfig": { object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#AutoscalingConfig`) }, "securityConfig": { object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#SecurityConfig`) }, "lifecycleConfig": { object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#LifecycleConfig`) }, "endpointConfig": { object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#EndpointConfig`) }, "metastoreConfig": { object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/MetastoreConfig`) }, "dataprocMetricConfig": { object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#DataprocMetricConfig`) }, "auxiliaryNodeGroups": [ { object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#AuxiliaryNodeGroup`) } ], "masterFlexibleConfig": { object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#FlexibleInstanceGroupConfig`) }, "workerFlexibleConfig": { object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#FlexibleInstanceGroupConfig`) }, "secondaryWorkerFlexibleConfig": { object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#FlexibleInstanceGroupConfig`) }, // The following is a list of mutually exclusive fields. At most one of the // fields will be set in a response: "schedulingConfig": { object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#SchedulingConfig`) } // End of mutually exclusive fields. } ``` |

| Fields ||
|---|---|
| `clusterType` | ``enum (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#ClusterType`)`` Optional. The type of the cluster. |
| `engine` | ``enum (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#Engine`)`` Optional. The cluster engine. |
| `configBucket` | `string` Optional. A Cloud Storage bucket used to stage job dependencies, config files, and job driver console output. If you do not specify a staging bucket, the service will determine a Cloud Storage location (US, ASIA, or EU) for your cluster's staging bucket according to the Compute Engine zone where your cluster is deployed, and then create and manage this project-level, per-location bucket (see [staging and temp buckets](https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/staging-bucket)). **This field requires a Cloud Storage bucket name, not a `gs://...` URI to a Cloud Storage bucket.** |
| `tempBucket` | `string` Optional. A Cloud Storage bucket used to store ephemeral cluster and jobs data, such as Spark and MapReduce history files. If you do not specify a temp bucket, the service will determine a Cloud Storage location (US, ASIA, or EU) for your cluster's temp bucket according to the Compute Engine zone where your cluster is deployed, and then create and manage this project-level, per-location bucket. The default bucket has a TTL of 90 days, but you can use any TTL (or none) if you specify a bucket (see [staging and temp buckets](https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/staging-bucket)). **This field requires a Cloud Storage bucket name, not a `gs://...` URI to a Cloud Storage bucket.** |
| `gceClusterConfig` | ``object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#GceClusterConfig`)`` Optional. The shared Compute Engine config settings for all instances in a cluster. |
| `masterConfig` | ``object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/InstanceGroupConfig`)`` Optional. The Compute Engine config settings for the cluster's master instance. |
| `workerConfig` | ``object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/InstanceGroupConfig`)`` Optional. The Compute Engine config settings for the cluster's worker instances. |
| `secondaryWorkerConfig` | ``object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/InstanceGroupConfig`)`` Optional. The Compute Engine config settings for a cluster's secondary worker instances |
| `softwareConfig` | ``object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#SoftwareConfig`)`` Optional. The config settings for cluster software. |
| `initializationActions[]` | ``object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#NodeInitializationAction`)`` Optional. Commands to execute on each node after config is completed. By default, executables are run on master and all worker nodes. You can test a node's `role` metadata to run an executable on a master or worker node, as shown below using `curl` (you can also use `wget`): ROLE=$(curl -H Metadata-Flavor:Google http://metadata/computeMetadata/v1/instance/attributes/dataproc-role) if [[ "${ROLE}" == 'Master' ]]; then ... master specific actions ... else ... worker specific actions ... fi |
| `encryptionConfig` | ``object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#EncryptionConfig`)`` Optional. Encryption settings for the cluster. |
| `autoscalingConfig` | ``object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#AutoscalingConfig`)`` Optional. Autoscaling config for the policy associated with the cluster. Cluster does not autoscale if this field is unset. |
| `securityConfig` | ``object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#SecurityConfig`)`` Optional. Security settings for the cluster. |
| `lifecycleConfig` | ``object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#LifecycleConfig`)`` Optional. Lifecycle setting for the cluster. |
| `endpointConfig` | ``object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#EndpointConfig`)`` Optional. Port/endpoint configuration for this cluster |
| `metastoreConfig` | ``object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/MetastoreConfig`)`` Optional. Metastore configuration. |
| `dataprocMetricConfig` | ``object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#DataprocMetricConfig`)`` Optional. The config for metrics. |
| `auxiliaryNodeGroups[]` | ``object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#AuxiliaryNodeGroup`)`` Optional. The node group settings. |
| `masterFlexibleConfig` | ``object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#FlexibleInstanceGroupConfig`)`` Optional. The High Obtainability (HO) config settings for the cluster's master instances. In High Obtainability (HO) mode, flexible configs are the single source of truth for desired cluster configuration across node groups: \* For single-node clusters: `masterFlexibleConfig` must be specified, and no worker configs should be set. \* For multi-node (standard) clusters: both `masterFlexibleConfig` and `https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#FIELDS.worker_flexible_config` must be specified. Mixing standard and flexible configs across node groups is not allowed. Only one of `https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#FIELDS.master_config` or `masterFlexibleConfig` can be set. |
| `workerFlexibleConfig` | ``object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#FlexibleInstanceGroupConfig`)`` Optional. The High Obtainability (HO) config settings for the cluster's worker instances. In High Obtainability (HO) mode, flexible configs are the single source of truth for desired cluster configuration. `numInstances` represents the desired capacity of the worker group and is mutable via cluster updates and autoscaling. Only one of `https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#FIELDS.worker_config` or `workerFlexibleConfig` can be set. In High Obtainability (HO) mode, for multi-node (standard) clusters, both `https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#FIELDS.master_flexible_config` and `workerFlexibleConfig` must be specified. Mixing standard and flexible configs across node groups is not allowed. Single-node clusters do not specify worker configs. |
| `secondaryWorkerFlexibleConfig` | ``object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#FlexibleInstanceGroupConfig`)`` Optional. The High Obtainability (HO) config settings for a cluster's secondary worker instances. In High Obtainability (HO) mode, flexible configs are the single source of truth for desired cluster configuration. `numInstances` represents the desired capacity of the secondary worker group and is mutable via cluster updates and autoscaling. Only one of `https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#FIELDS.secondary_worker_config` or `secondaryWorkerFlexibleConfig` can be set. In High Obtainability (HO) mode, secondary workers are optional. If secondary workers are used in an HO cluster, they must be configured using `secondaryWorkerFlexibleConfig` (not `secondaryWorkerConfig`). |
| Config for provisioning the Compute Engine resources. The following is a list of mutually exclusive fields. At most one of the fields will be set in a response: ||
| `schedulingConfig` | ``object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#SchedulingConfig`)`` Optional. Config for scheduling the resources to be allocated when available. |
| End of mutually exclusive fields. ||

## ClusterType

The type of the cluster.

| Enums ||
|---|---|
| `CLUSTER_TYPE_UNSPECIFIED` | Not set. |
| `STANDARD` | Standard dataproc cluster with a minimum of two primary workers. |
| `SINGLE_NODE` | <https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/single-node-clusters> |
| `ZERO_SCALE` | Clusters that can use only secondary workers and be scaled down to zero secondary worker nodes. |

## Engine

The cluster engine.

| Enums ||
|---|---|
| `ENGINE_UNSPECIFIED` | The engine is not specified. Works the same as ENGINE_DEFAULT. |
| `DEFAULT` | The cluster is a default engine cluster. |
| `LIGHTNING` | The cluster is a [Lightning Engine](https://cloud.google.com/dataproc/docs/guides/lightning-engine) cluster. |

## GceClusterConfig

Common config settings for resources of Compute Engine cluster instances, applicable to all instances in the cluster.

| JSON representation |
|---|
| ``` { "zoneUri": string, "autoZoneExcludeZoneUris": [ string ], "multiZoneConfig": { object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#MultiZoneConfig`) }, "networkUri": string, "subnetworkUri": string, "privateIpv6GoogleAccess": enum (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#PrivateIpv6GoogleAccess`), "serviceAccount": string, "serviceAccountScopes": [ string ], "tags": [ string ], "metadata": { string: string, ... }, "reservationAffinity": { object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#ReservationAffinity`) }, "nodeGroupAffinity": { object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#NodeGroupAffinity`) }, "shieldedInstanceConfig": { object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#ShieldedInstanceConfig`) }, "confidentialInstanceConfig": { object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#ConfidentialInstanceConfig`) }, "resourceManagerTags": { string: string, ... }, "internalIpOnly": boolean } ``` |

| Fields ||
|---|---|
| `zoneUri` | `string` Optional. The Compute Engine zone where the cluster will be located. If omitted, the service will pick a zone in the cluster's Compute Engine region. On a get request, zone will always be present. A full URL, partial URI, or short name are valid. Examples: - `https://www.googleapis.com/compute/v1/projects/[projectId]/zones/[zone]` - `projects/[projectId]/zones/[zone]` - `[zone]` |
| `autoZoneExcludeZoneUris[]` | `string` Optional. An optional list of Compute Engine zones where the cluster will not be located when Auto Zone is enabled. Only one of `zoneUri` or `autoZoneExcludeZoneUris` can be set. If both are omitted, the service will pick a zone in the cluster Compute Engine region. If `autoZoneExcludeZoneUris` is set and there is more than one non-excluded zone, the service will pick one of the non-excluded zones. Otherwise, cluster creation will fail with `INVALID_ARGUMENT` error. A full URL, partial URI, or short name are valid. Examples: - `https://www.googleapis.com/compute/v1/projects/[projectId]/zones/[zone]` - `projects/[projectId]/zones/[zone]` - `[zone]` |
| `multiZoneConfig` | ``object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#MultiZoneConfig`)`` Optional. Controls how instances within this Cluster are allowed to exist in multiple Zones within the Region. Only one of `zoneUri` or `multiZoneConfig` must be set. |
| `networkUri` | `string` Optional. The Compute Engine network to be used for machine communications. Cannot be specified with subnetworkUri. If neither `networkUri` nor `subnetworkUri` is specified, the "default" network of the project is used, if it exists. Cannot be a `Custom Subnet Network` (see [Using Subnetworks](https://cloud.google.com/compute/docs/subnetworks) for more information). A full URL, partial URI, or short name are valid. Examples: - `https://www.googleapis.com/compute/v1/projects/[projectId]/global/networks/default` - `projects/[projectId]/global/networks/default` - `default` |
| `subnetworkUri` | `string` Optional. The Compute Engine subnetwork to be used for machine communications. Cannot be specified with networkUri. A full URL, partial URI, or short name are valid. Examples: - `https://www.googleapis.com/compute/v1/projects/[projectId]/regions/[region]/subnetworks/sub0` - `projects/[projectId]/regions/[region]/subnetworks/sub0` - `sub0` |
| `privateIpv6GoogleAccess` | ``enum (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#PrivateIpv6GoogleAccess`)`` Optional. The type of IPv6 access for a cluster. |
| `serviceAccount` | `string` Optional. The [VM service account](https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/service-accounts#service_accounts_in_dataproc) (also see [VM Data Plane identity](https://cloud.google.com/dataproc/docs/concepts/iam/dataproc-principals#vm_service_account_data_plane_identity)) used by cluster VM instances to access Google Cloud Platform services. If not specified, the [Compute Engine default service account](https://cloud.google.com/compute/docs/access/service-accounts#default_service_account) is used. |
| `serviceAccountScopes[]` | `string` Optional. The URIs of service account scopes to be included in Compute Engine instances. The following base set of scopes is always included: - <https://www.googleapis.com/auth/cloud.useraccounts.readonly> - <https://www.googleapis.com/auth/devstorage.read_write> - <https://www.googleapis.com/auth/logging.write> If no scopes are specified, the following defaults are also provided: - <https://www.googleapis.com/auth/bigquery> - <https://www.googleapis.com/auth/bigtable.admin.table> - <https://www.googleapis.com/auth/bigtable.data> - <https://www.googleapis.com/auth/devstorage.full_control> |
| `tags[]` | `string` The Compute Engine network tags to add to all instances (see [Tagging instances](https://cloud.google.com/vpc/docs/add-remove-network-tags)). |
| `metadata` | `map (key: string, value: string)` Optional. The Compute Engine metadata entries to add to all instances (see [Project and instance metadata](https://cloud.google.com/compute/docs/storing-retrieving-metadata#project_and_instance_metadata)). An object containing a list of `"key": value` pairs. Example: `{ "name": "wrench", "mass": "1.3kg", "count": "3" }`. |
| `reservationAffinity` | ``object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#ReservationAffinity`)`` Optional. Reservation Affinity for consuming Zonal reservation. |
| `nodeGroupAffinity` | ``object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#NodeGroupAffinity`)`` Optional. Node Group Affinity for sole-tenant clusters. |
| `shieldedInstanceConfig` | ``object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#ShieldedInstanceConfig`)`` Optional. Shielded Instance Config for clusters using [Compute Engine Shielded VMs](https://cloud.google.com/security/shielded-cloud/shielded-vm). |
| `confidentialInstanceConfig` | ``object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#ConfidentialInstanceConfig`)`` Optional. Confidential Instance Config for clusters using [Confidential VMs](https://cloud.google.com/confidential-computing/confidential-vm/docs). |
| `resourceManagerTags` | `map (key: string, value: string)` Optional. [Resource manager tags](https://cloud.google.com/resource-manager/docs/tags/tags-creating-and-managing) to add to all instances (see [Use secure tags](https://cloud.google.com/dataproc/docs/guides/use-secure-tags)). An object containing a list of `"key": value` pairs. Example: `{ "name": "wrench", "mass": "1.3kg", "count": "3" }`. |
| `internalIpOnly` | `boolean` Optional. This setting applies to subnetwork-enabled networks. It is set to `true` by default in clusters created with image versions 2.2.x. When set to `true`: - All cluster VMs have internal IP addresses. - [Google Private Access](https://cloud.google.com/vpc/docs/private-google-access) must be enabled to access the Dataproc API and other Google Cloud APIs. - Off-cluster dependencies must be configured to be accessible without external IP addresses. When set to `false`: - Cluster VMs are not restricted to internal IP addresses. - Ephemeral external IP addresses are assigned to each cluster VM. |

## MultiZoneConfig

Configuration for multi-zonal clusters that can create instances across multiple Zones within the Region.

| JSON representation |
|---|
| ``` { "targetShape": enum (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#TargetShape`) } ``` |

| Fields ||
|---|---|
| `targetShape` | ``enum (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#TargetShape`)`` Optional. The distribution shape of the nodes in the multi-zonal cluster. |

## TargetShape

The distribution shape of the nodes in the multi-zonal cluster.

| Enums ||
|---|---|
| `TARGET_SHAPE_UNSPECIFIED` | Target shape is unspecified. Setting this will cause error. |
| `ANY` | Instances may exist in any Zones within the Region. |

## PrivateIpv6GoogleAccess

`PrivateIpv6GoogleAccess` controls whether and how cluster nodes can communicate with Google Services through gRPC over IPv6. These values are directly mapped to corresponding values in the [Compute Engine Instance fields](https://cloud.google.com/compute/docs/reference/rest/v1/instances).

| Enums ||
|---|---|
| `PRIVATE_IPV6_GOOGLE_ACCESS_UNSPECIFIED` | If unspecified, Compute Engine default behavior will apply, which is the same as `https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#PrivateIpv6GoogleAccess.ENUM_VALUES.INHERIT_FROM_SUBNETWORK`. |
| `INHERIT_FROM_SUBNETWORK` | Private access to and from Google Services configuration inherited from the subnetwork configuration. This is the default Compute Engine behavior. |
| `OUTBOUND` | Enables outbound private IPv6 access to Google Services from the cluster. |
| `BIDIRECTIONAL` | Enables bidirectional private IPv6 access between Google Services and the cluster. |

## ReservationAffinity

Reservation Affinity for consuming Zonal reservation.

| JSON representation |
|---|
| ``` { "consumeReservationType": enum (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#Type`), "key": string, "values": [ string ] } ``` |

| Fields ||
|---|---|
| `consumeReservationType` | ``enum (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#Type`)`` Optional. Type of reservation to consume |
| `key` | `string` Optional. Corresponds to the label key of reservation resource. |
| `values[]` | `string` Optional. Corresponds to the label values of reservation resource. |

## Type

Indicates whether to consume capacity from an reservation or not.

| Enums ||
|---|---|
| `TYPE_UNSPECIFIED` |   |
| `NO_RESERVATION` | Do not consume from any allocated capacity. |
| `ANY_RESERVATION` | Consume any reservation available. |
| `SPECIFIC_RESERVATION` | Must consume from a specific reservation. Must specify key value fields for specifying the reservations. |

## NodeGroupAffinity

Node Group Affinity for clusters using sole-tenant node groups. **The `NodeGroupAffinity` resource is not related to the `https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/projects.regions.clusters.nodeGroups#NodeGroup` resource.**

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

| Fields ||
|---|---|
| `nodeGroupUri` | `string` Required. The URI of a sole-tenant [node group resource](https://cloud.google.com/compute/docs/reference/rest/v1/nodeGroups) that the cluster will be created on. A full URL, partial URI, or node group name are valid. Examples: - `https://www.googleapis.com/compute/v1/projects/[projectId]/zones/[zone]/nodeGroups/node-group-1` - `projects/[projectId]/zones/[zone]/nodeGroups/node-group-1` - `node-group-1` |

## ShieldedInstanceConfig

Shielded Instance Config for clusters using [Compute Engine Shielded VMs](https://cloud.google.com/security/shielded-cloud/shielded-vm).

| JSON representation |
|---|
| ``` { "enableSecureBoot": boolean, "enableVtpm": boolean, "enableIntegrityMonitoring": boolean } ``` |

| Fields ||
|---|---|
| `enableSecureBoot` | `boolean` Optional. Defines whether instances have Secure Boot enabled. |
| `enableVtpm` | `boolean` Optional. Defines whether instances have the vTPM enabled. |
| `enableIntegrityMonitoring` | `boolean` Optional. Defines whether instances have integrity monitoring enabled. |

## ConfidentialInstanceConfig

Confidential Instance Config for clusters using [Confidential VMs](https://cloud.google.com/confidential-computing/confidential-vm/docs)

| JSON representation |
|---|
| ``` { "enableConfidentialCompute": boolean, "confidentialInstanceType": enum (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#ConfidentialInstanceType`) } ``` |

| Fields ||
|---|---|
| `enableConfidentialCompute (deprecated)` | `boolean` > [!WARNING] > This item is deprecated! Optional. Deprecated: Use 'confidentialInstanceType' instead. Defines whether the instance should have confidential compute enabled. |
| `confidentialInstanceType` | ``enum (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#ConfidentialInstanceType`)`` Optional. Defines the type of Confidential Compute technology to use. |

## ConfidentialInstanceType

The type of Confidential Compute technology as per [Confidential Computing types](https://cloud.google.com/confidential-computing/confidential-vm/docs/create-a-confidential-vm-instance#create-instance). New values may be added in the future.

| Enums ||
|---|---|
| `CONFIDENTIAL_INSTANCE_TYPE_UNSPECIFIED` | Confidential Instance Type is not specified. |
| `SEV` | [AMD Secure Encrypted Virtualization](https://cloud.google.com/confidential-computing/confidential-vm/docs/confidential-vm-overview#amd_sev) |
| `SEV_SNP` | [AMD Secure Encrypted Virtualization-Secure Nested Paging](https://cloud.google.com/confidential-computing/confidential-vm/docs/confidential-vm-overview#amd_sev-snp) |
| `TDX` | [Intel Trust Domain Extensions](https://cloud.google.com/confidential-computing/confidential-vm/docs/confidential-vm-overview#intel_tdx) |

## SoftwareConfig

Specifies the selection and config of software inside the cluster.

| JSON representation |
|---|
| ``` { "imageVersion": string, "properties": { string: string, ... }, "optionalComponents": [ enum (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#Component`) ] } ``` |

| Fields ||
|---|---|
| `imageVersion` | `string` Optional. The version of software inside the cluster. It must be one of the supported [Image Versions](https://cloud.google.com/dataproc/docs/concepts/versioning/dataproc-versions#supported-dataproc-image-versions), such as "1.2" (including a subminor version, such as "1.2.29"), or the ["preview" version](https://cloud.google.com/dataproc/docs/concepts/versioning/dataproc-versions#other_versions). If unspecified, it defaults to the latest Debian version. |
| `properties` | `map (key: string, value: string)` Optional. The properties to set on daemon config files. Property keys are specified in `prefix:property` format, for example `core:hadoop.tmp.dir`. The following are supported prefixes and their mappings: - capacity-scheduler: `capacity-scheduler.xml` - core: `core-site.xml` - distcp: `distcp-default.xml` - hdfs: `hdfs-site.xml` - hive: `hive-site.xml` - mapred: `mapred-site.xml` - pig: `pig.properties` - spark: `spark-defaults.conf` - yarn: `yarn-site.xml` For more information, see [Cluster properties](https://cloud.google.com/dataproc/docs/concepts/cluster-properties). An object containing a list of `"key": value` pairs. Example: `{ "name": "wrench", "mass": "1.3kg", "count": "3" }`. |
| `optionalComponents[]` | ``enum (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#Component`)`` Optional. The set of components to activate on the cluster. |

## Component

Cluster components that can be activated.

| Enums ||
|---|---|
| `COMPONENT_UNSPECIFIED` | Unspecified component. Specifying this will cause Cluster creation to fail. |
| `ALLOYDB_CONNECTOR` | The AlloyDB Connector. |
| `ANACONDA` | The Anaconda component is no longer supported or applicable to [supported Dataproc on Compute Engine image versions](https://cloud.google.com/dataproc/docs/concepts/versioning/dataproc-version-clusters#supported-dataproc-image-versions). It cannot be activated on clusters created with supported Dataproc on Compute Engine image versions. |
| `DELTA` | Delta Lake. |
| `DOCKER` | Docker |
| `DRUID` | The Druid query engine. (alpha) |
| `FLINK` | Flink |
| `HBASE` | HBase. (beta) |
| `HIVE_WEBHCAT` | The Hive Web HCatalog (the REST service for accessing HCatalog). |
| `HUDI` | Hudi. |
| `ICEBERG` | Iceberg. |
| `JUPYTER` | The Jupyter Notebook. |
| `PRESTO` | The Presto query engine. |
| `TRINO` | The Trino query engine. |
| `RANGER` | The Ranger service. |
| `SOLR` | The Solr service. |
| `ZEPPELIN` | The Zeppelin notebook. |
| `ZOOKEEPER` | The Zookeeper service. |
| `JUPYTER_KERNEL_GATEWAY` | The Jupyter Kernel Gateway. |

## NodeInitializationAction

Specifies an executable to run on a fully configured node and a timeout period for executable completion.

| JSON representation |
|---|
| ``` { "executableFile": string, "executionTimeout": string } ``` |

| Fields ||
|---|---|
| `executableFile` | `string` Required. Cloud Storage URI of executable file. |
| `executionTimeout` | ``string (`https://protobuf.dev/reference/protobuf/google.protobuf#duration` format)`` Optional. Amount of time executable has to complete. Default is 10 minutes (see JSON representation of [Duration](https://developers.google.com/protocol-buffers/docs/proto3#json)). Cluster creation fails with an explanatory error message (the name of the executable that caused the error and the exceeded timeout period) if the executable is not completed at end of the timeout period. |

## EncryptionConfig

Encryption settings for the cluster.

| JSON representation |
|---|
| ``` { "gcePdKmsKeyName": string, "kmsKey": string } ``` |

| Fields ||
|---|---|
| `gcePdKmsKeyName` | `string` Optional. The Cloud KMS key resource name to use for persistent disk encryption for all instances in the cluster. See [Use CMEK with cluster data](https://cloud.google.com//dataproc/docs/concepts/configuring-clusters/customer-managed-encryption#use_cmek_with_cluster_data) for more information. |
| `kmsKey` | `string` Optional. The Cloud KMS key resource name to use for cluster persistent disk and job argument encryption. See [Use CMEK with cluster data](https://cloud.google.com//dataproc/docs/concepts/configuring-clusters/customer-managed-encryption#use_cmek_with_cluster_data) for more information. When this key resource name is provided, the following job arguments of the following job types submitted to the cluster are encrypted using CMEK: - [FlinkJob args](https://cloud.google.com/dataproc/docs/reference/rest/v1/FlinkJob) - [HadoopJob args](https://cloud.google.com/dataproc/docs/reference/rest/v1/HadoopJob) - [SparkJob args](https://cloud.google.com/dataproc/docs/reference/rest/v1/SparkJob) - [SparkRJob args](https://cloud.google.com/dataproc/docs/reference/rest/v1/SparkRJob) - [PySparkJob args](https://cloud.google.com/dataproc/docs/reference/rest/v1/PySparkJob) - [SparkSqlJob](https://cloud.google.com/dataproc/docs/reference/rest/v1/SparkSqlJob) scriptVariables and queryList.queries - [HiveJob](https://cloud.google.com/dataproc/docs/reference/rest/v1/HiveJob) scriptVariables and queryList.queries - [PigJob](https://cloud.google.com/dataproc/docs/reference/rest/v1/PigJob) scriptVariables and queryList.queries - [PrestoJob](https://cloud.google.com/dataproc/docs/reference/rest/v1/PrestoJob) scriptVariables and queryList.queries |

## AutoscalingConfig

Autoscaling Policy config associated with the cluster.

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

| Fields ||
|---|---|
| `policyUri` | `string` Optional. The autoscaling policy used by the cluster. Only resource names including projectid and location (region) are valid. Examples: - `https://www.googleapis.com/compute/v1/projects/[projectId]/locations/[dataproc_region]/autoscalingPolicies/[policyId]` - `projects/[projectId]/locations/[dataproc_region]/autoscalingPolicies/[policyId]` Note that the policy must be in the same project and region. |

## SecurityConfig

Security related configuration, including encryption, Kerberos, etc.

| JSON representation |
|---|
| ``` { "kerberosConfig": { object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#KerberosConfig`) }, "identityConfig": { object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#IdentityConfig`) } } ``` |

| Fields ||
|---|---|
| `kerberosConfig` | ``object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#KerberosConfig`)`` Optional. Kerberos related configuration. |
| `identityConfig` | ``object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#IdentityConfig`)`` Optional. Identity related configuration, including service account based secure multi-tenancy user mappings. |

## KerberosConfig

Specifies Kerberos related configuration.

| JSON representation |
|---|
| ``` { "enableKerberos": boolean, "rootPrincipalPasswordUri": string, "kmsKeyUri": string, "keystoreUri": string, "truststoreUri": string, "keystorePasswordUri": string, "keyPasswordUri": string, "truststorePasswordUri": string, "crossRealmTrustRealm": string, "crossRealmTrustKdc": string, "crossRealmTrustAdminServer": string, "crossRealmTrustSharedPasswordUri": string, "kdcDbKeyUri": string, "tgtLifetimeHours": integer, "realm": string } ``` |

| Fields ||
|---|---|
| `enableKerberos` | `boolean` Optional. Flag to indicate whether to Kerberize the cluster (default: false). Set this field to true to enable Kerberos on a cluster. |
| `rootPrincipalPasswordUri` | `string` Optional. The Cloud Storage URI of a KMS encrypted file containing the root principal password. |
| `kmsKeyUri` | `string` Optional. The URI of the KMS key used to encrypt sensitive files. |
| `keystoreUri` | `string` Optional. The Cloud Storage URI of the keystore file used for SSL encryption. If not provided, the service will provide a self-signed certificate. |
| `truststoreUri` | `string` Optional. The Cloud Storage URI of the truststore file used for SSL encryption. If not provided, the service will provide a self-signed certificate. |
| `keystorePasswordUri` | `string` Optional. The Cloud Storage URI of a KMS encrypted file containing the password to the user provided keystore. For the self-signed certificate, this password is generated by the service. |
| `keyPasswordUri` | `string` Optional. The Cloud Storage URI of a KMS encrypted file containing the password to the user provided key. For the self-signed certificate, this password is generated by the service. |
| `truststorePasswordUri` | `string` Optional. The Cloud Storage URI of a KMS encrypted file containing the password to the user provided truststore. For the self-signed certificate, this password is generated by the service. |
| `crossRealmTrustRealm` | `string` Optional. The remote realm the on-cluster KDC will trust, should the user enable cross realm trust. |
| `crossRealmTrustKdc` | `string` Optional. The KDC (IP or hostname) for the remote trusted realm in a cross realm trust relationship. |
| `crossRealmTrustAdminServer` | `string` Optional. The admin server (IP or hostname) for the remote trusted realm in a cross realm trust relationship. |
| `crossRealmTrustSharedPasswordUri` | `string` Optional. The Cloud Storage URI of a KMS encrypted file containing the shared password between the on-cluster Kerberos realm and the remote trusted realm, in a cross realm trust relationship. |
| `kdcDbKeyUri` | `string` Optional. The Cloud Storage URI of a KMS encrypted file containing the master key of the KDC database. |
| `tgtLifetimeHours` | `integer` Optional. The lifetime of the ticket granting ticket, in hours. If not specified, or user specifies 0, then default value 10 will be used. |
| `realm` | `string` Optional. The name of the on-cluster Kerberos realm. If not specified, the uppercased domain of hostnames will be the realm. |

## IdentityConfig

Identity related configuration, including service account based secure multi-tenancy user mappings.

| JSON representation |
|---|
| ``` { "userServiceAccountMapping": { string: string, ... }, "enableSsh": boolean } ``` |

| Fields ||
|---|---|
| `userServiceAccountMapping` | `map (key: string, value: string)` Required. Map of user to service account. An object containing a list of `"key": value` pairs. Example: `{ "name": "wrench", "mass": "1.3kg", "count": "3" }`. |
| `enableSsh` | `boolean` Optional. Whether to enable SSH access for the cluster. The default is `true` for image versions prior to `3.1` and `false` for image versions `3.1` and later. The default behavior can be changed when creating clusters using image versions `2.3.30` and later. |

## LifecycleConfig

Specifies the cluster auto-delete schedule configuration.

| JSON representation |
|---|
| ``` { "idleDeleteTtl": string, "idleStopTtl": string, "idleStartTime": string, // The following is a list of mutually exclusive fields. At most one of the // fields will be set in a response: "autoDeleteTime": string, "autoDeleteTtl": string // End of mutually exclusive fields. // The following is a list of mutually exclusive fields. At most one of the // fields will be set in a response: "autoStopTime": string, "autoStopTtl": string // End of mutually exclusive fields. } ``` |

| Fields ||
|---|---|
| `idleDeleteTtl` | ``string (`https://protobuf.dev/reference/protobuf/google.protobuf#duration` format)`` Optional. The duration to keep the cluster alive while idling (when no jobs are running). Passing this threshold will cause the cluster to be deleted. Minimum value is 5 minutes; maximum value is 14 days (see JSON representation of [Duration](https://developers.google.com/protocol-buffers/docs/proto3#json)). |
| `idleStopTtl` | ``string (`https://protobuf.dev/reference/protobuf/google.protobuf#duration` format)`` Optional. The duration to keep the cluster started while idling (when no jobs are running). Passing this threshold will cause the cluster to be stopped. Minimum value is 5 minutes; maximum value is 14 days (see JSON representation of [Duration](https://developers.google.com/protocol-buffers/docs/proto3#json)). |
| `idleStartTime` | ``string (`https://protobuf.dev/reference/protobuf/google.protobuf#timestamp` format)`` Output only. The time when cluster became idle (most recent job finished) and became eligible for deletion due to idleness (see JSON representation of [Timestamp](https://developers.google.com/protocol-buffers/docs/proto3#json)). Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: `"2014-10-02T15:01:23Z"`, `"2014-10-02T15:01:23.045123456Z"` or `"2014-10-02T15:01:23+05:30"`. |
| Either the exact time the cluster should be deleted at or the cluster maximum age. The following is a list of mutually exclusive fields. At most one of the fields will be set in a response: ||
| `autoDeleteTime` | ``string (`https://protobuf.dev/reference/protobuf/google.protobuf#timestamp` format)`` Optional. The time when cluster will be auto-deleted (see JSON representation of [Timestamp](https://developers.google.com/protocol-buffers/docs/proto3#json)). Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: `"2014-10-02T15:01:23Z"`, `"2014-10-02T15:01:23.045123456Z"` or `"2014-10-02T15:01:23+05:30"`. |
| `autoDeleteTtl` | ``string (`https://protobuf.dev/reference/protobuf/google.protobuf#duration` format)`` Optional. The lifetime duration of cluster. The cluster will be auto-deleted at the end of this period. Minimum value is 10 minutes; maximum value is 14 days (see JSON representation of [Duration](https://developers.google.com/protocol-buffers/docs/proto3#json)). |
| End of mutually exclusive fields. ||
| Either the exact time the cluster should be stopped at or the cluster maximum age. The following is a list of mutually exclusive fields. At most one of the fields will be set in a response: ||
| `autoStopTime` | ``string (`https://protobuf.dev/reference/protobuf/google.protobuf#timestamp` format)`` Optional. The time when cluster will be auto-stopped (see JSON representation of [Timestamp](https://developers.google.com/protocol-buffers/docs/proto3#json)). Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: `"2014-10-02T15:01:23Z"`, `"2014-10-02T15:01:23.045123456Z"` or `"2014-10-02T15:01:23+05:30"`. |
| `autoStopTtl` | ``string (`https://protobuf.dev/reference/protobuf/google.protobuf#duration` format)`` Optional. The lifetime duration of the cluster. The cluster will be auto-stopped at the end of this period, calculated from the time of submission of the create or update cluster request. Minimum value is 10 minutes; maximum value is 14 days (see JSON representation of [Duration](https://developers.google.com/protocol-buffers/docs/proto3#json)). |
| End of mutually exclusive fields. ||

## EndpointConfig

Endpoint config for this cluster

| JSON representation |
|---|
| ``` { "httpPorts": { string: string, ... }, "enableHttpPortAccess": boolean } ``` |

| Fields ||
|---|---|
| `httpPorts` | `map (key: string, value: string)` Output only. The map of port descriptions to URLs. Will only be populated if enableHttpPortAccess is true. An object containing a list of `"key": value` pairs. Example: `{ "name": "wrench", "mass": "1.3kg", "count": "3" }`. |
| `enableHttpPortAccess` | `boolean` Optional. If true, enable http access to specific ports on the cluster from external sources. Defaults to false. |

## DataprocMetricConfig

Metric config.

| JSON representation |
|---|
| ``` { "metrics": [ { object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#Metric`) } ] } ``` |

| Fields ||
|---|---|
| `metrics[]` | ``object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#Metric`)`` Required. Metrics sources to enable. |

## Metric

A custom metric.

| JSON representation |
|---|
| ``` { "metricSource": enum (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#MetricSource`), "metricOverrides": [ string ] } ``` |

| Fields ||
|---|---|
| `metricSource` | ``enum (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#MetricSource`)`` Required. A standard set of metrics is collected unless `metricOverrides` are specified for the metric source (see [Custom metrics](https://cloud.google.com/dataproc/docs/guides/dataproc-metrics#customMetrics) for more information). |
| `metricOverrides[]` | `string` Optional. Specify one or more [Custom metrics](https://cloud.google.com/dataproc/docs/guides/dataproc-metrics#customMetrics) to collect for the metric course (for the `SPARK` metric source (any [Spark metric](https://spark.apache.org/docs/latest/monitoring.html#metrics) can be specified). Provide metrics in the following format: `METRIC_SOURCE:INSTANCE:GROUP:METRIC` Use camelcase as appropriate. Examples: yarn:ResourceManager:QueueMetrics:AppsCompleted spark:driver:DAGScheduler:job.allJobs sparkHistoryServer:JVM:Memory:NonHeapMemoryUsage.committed hiveserver2:JVM:Memory:NonHeapMemoryUsage.used Notes: - Only the specified overridden metrics are collected for the metric source. For example, if one or more `spark:executive` metrics are listed as metric overrides, other `SPARK` metrics are not collected. The collection of the metrics for other enabled custom metric sources is unaffected. For example, if both `SPARK` and `YARN` metric sources are enabled, and overrides are provided for Spark metrics only, all YARN metrics are collected. |

## MetricSource

A source for the collection of custom metrics (see [Custom metrics](https://cloud.google.com//dataproc/docs/guides/dataproc-metrics#customMetrics)).

| Enums ||
|---|---|
| `METRIC_SOURCE_UNSPECIFIED` | Required unspecified metric source. |
| `MONITORING_AGENT_DEFAULTS` | Monitoring agent metrics. If this source is enabled, the service enables the monitoring agent in Compute Engine, and collects monitoring agent metrics, which are published with an `agent.googleapis.com` prefix. |
| `HDFS` | HDFS metric source. |
| `SPARK` | Spark metric source. |
| `YARN` | YARN metric source. |
| `SPARK_HISTORY_SERVER` | Spark History Server metric source. |
| `HIVESERVER2` | Hiveserver2 metric source. |
| `HIVEMETASTORE` | hivemetastore metric source |
| `FLINK` | flink metric source |

## AuxiliaryNodeGroup

Node group identification and configuration information.

| JSON representation |
|---|
| ``` { "nodeGroup": { object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/projects.regions.clusters.nodeGroups#NodeGroup`) }, "nodeGroupId": string } ``` |

| Fields ||
|---|---|
| `nodeGroup` | ``object (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/projects.regions.clusters.nodeGroups#NodeGroup`)`` Required. Node group configuration. |
| `nodeGroupId` | `string` Optional. A node group ID. Generated if not specified. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). Cannot begin or end with underscore or hyphen. Must consist of from 3 to 33 characters. |

## SchedulingConfig

Config for scheduling the request to create Compute Engine resources for the cluster, when available.

| JSON representation |
|---|
| ``` { "schedulingTimeout": string, "requestedRunDuration": string } ``` |

| Fields ||
|---|---|
| `schedulingTimeout` | ``string (`https://protobuf.dev/reference/protobuf/google.protobuf#duration` format)`` Optional. How long to wait for worker resources to be allocated before failing the cluster creation request. Max/Default value: 13 days |
| `requestedRunDuration` | ``string (`https://protobuf.dev/reference/protobuf/google.protobuf#duration` format)`` Optional. Required lifetime of the resources, once provisioned. Min 10 mins, Max/Default 7 days . Note that the cluster can still be deleted before reaching this time. This time is a maximum amount of time before the cluster is forcibly deleted. Lower times are more likely to start running sooner. |

## FlexibleInstanceGroupConfig

The configuration for High Obtainability (HO) flexible instance groups. Flexible instance group configs serve as the single source of truth for desired state.

| JSON representation |
|---|
| ``` { "numInstances": integer, "coreCount": integer, "bootDiskSizeGb": integer, "hardwareClass": enum (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#HardwareClass`) } ``` |

| Fields ||
|---|---|
| `numInstances` | `integer` Optional. The number of VM instances requested. For master instances, this must be 1. For worker and secondary worker instances, this represents the desired capacity of the group and is mutable via cluster update operations and autoscaling. |
| `coreCount` | `integer` Optional. The number of vCPUs per instance. Must be a power of 2 (2, 4, 8, 16, 32). This is a create-time specification and is not currently mutable via update masks. |
| `bootDiskSizeGb` | `integer` Optional. The boot disk size in GB. This is a create-time specification and is not currently mutable via update masks. |
| `hardwareClass` | ``enum (`https://docs.cloud.google.com/managed-spark/docs/reference/rest/v1/ClusterConfig#HardwareClass`)`` Optional. The hardware class of the instances. This is a create-time specification and is not currently mutable via update masks. |

## HardwareClass

Controls the hardware class for the flexible instance group.

| Enums ||
|---|---|
| `HARDWARE_CLASS_UNSPECIFIED` | Unspecified hardware class. |
| `STANDARD` | Standard hardware class. Provides a balanced compute configuration with approximately 4GB of memory per vCPU and standard disk storage tiers. Candidate machine types include `n4-standard`, `n4d-standard`, `n2-standard`, and `n2d-standard` (Rank 0), and `c4-standard` and `c4d-standard` (Rank 1) (for requested core counts 2, 4, 8, 16, 32). Warning: The specific machine families and types selected for this hardware class are subject to change. Users should not take a dependency on the underlying machine type selection. |
| `PERFORMANCE` | Performance hardware class. Provides a high-performance configuration with approximately 8GB of memory per vCPU (e.g. high-memory machine types) and higher-tier disk configurations (e.g. higher IOPS and throughput). Candidate machine types include `n4-highmem`, `n4d-highmem`, `n2-highmem`, and `n2d-highmem` (Rank 0), and `c4-highmem` and `c4d-highmem` (Rank 1) (for requested core counts 2, 4, 8, 16, 32). `n4`, `n4d`, `c4`, and `c4d` use Hyperdisk Balanced with provisioned storage, whereas `n2` and `n2d` use SSD persistent disks. Warning: The specific machine families and types selected for this hardware class are subject to change. Users should not take a dependency on the underlying machine type selection. |