<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="dataproc_v1.html">Cloud Dataproc API</a> . <a href="dataproc_v1.projects.html">projects</a> . <a href="dataproc_v1.projects.regions.html">regions</a> . <a href="dataproc_v1.projects.regions.workflowTemplates.html">workflowTemplates</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#create">create(parent, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Creates new workflow template.</p>
<p class="toc_element">
  <code><a href="#delete">delete(name, version=None, x__xgafv=None)</a></code></p>
<p class="firstline">Deletes a workflow template. It does not cancel in-progress workflows.</p>
<p class="toc_element">
  <code><a href="#get">get(name, version=None, x__xgafv=None)</a></code></p>
<p class="firstline">Retrieves the latest workflow template.Can retrieve previously instantiated template by specifying optional version parameter.</p>
<p class="toc_element">
  <code><a href="#getIamPolicy">getIamPolicy(resource, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.</p>
<p class="toc_element">
  <code><a href="#instantiate">instantiate(name, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Instantiates a template and begins execution.The returned Operation can be used to track execution of workflow by polling operations.get. The Operation will complete when entire workflow is finished.The running workflow can be aborted via operations.cancel. This will cause any inflight jobs to be cancelled and workflow-owned clusters to be deleted.The Operation.metadata will be WorkflowMetadata (https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#workflowmetadata). Also see Using WorkflowMetadata (https://cloud.google.com/dataproc/docs/concepts/workflows/debugging#using_workflowmetadata).On successful completion, Operation.response will be Empty.</p>
<p class="toc_element">
  <code><a href="#instantiateInline">instantiateInline(parent, body=None, requestId=None, x__xgafv=None)</a></code></p>
<p class="firstline">Instantiates a template and begins execution.This method is equivalent to executing the sequence CreateWorkflowTemplate, InstantiateWorkflowTemplate, DeleteWorkflowTemplate.The returned Operation can be used to track execution of workflow by polling operations.get. The Operation will complete when entire workflow is finished.The running workflow can be aborted via operations.cancel. This will cause any inflight jobs to be cancelled and workflow-owned clusters to be deleted.The Operation.metadata will be WorkflowMetadata (https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#workflowmetadata). Also see Using WorkflowMetadata (https://cloud.google.com/dataproc/docs/concepts/workflows/debugging#using_workflowmetadata).On successful completion, Operation.response will be Empty.</p>
<p class="toc_element">
  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
<p class="firstline">Lists workflows that match the specified filter in the request.</p>
<p class="toc_element">
  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<p class="toc_element">
  <code><a href="#setIamPolicy">setIamPolicy(resource, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Sets the access control policy on the specified resource. Replaces any existing policy.Can return NOT_FOUND, INVALID_ARGUMENT, and PERMISSION_DENIED errors.</p>
<p class="toc_element">
  <code><a href="#testIamPermissions">testIamPermissions(resource, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a NOT_FOUND error.Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may "fail open" without warning.</p>
<p class="toc_element">
  <code><a href="#update">update(name, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Updates (replaces) workflow template. The updated template must contain version that matches the current server version.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="create">create(parent, body=None, x__xgafv=None)</code>
  <pre>Creates new workflow template.

Args:
  parent: string, Required. The resource name of the region or location, as described in https://cloud.google.com/apis/design/resource_names. For projects.regions.workflowTemplates,create, the resource name of the region has the following format: projects/{project_id}/regions/{region} For projects.locations.workflowTemplates.create, the resource name of the location has the following format: projects/{project_id}/locations/{location} (required)
  body: object, The request body.
    The object takes the form of:

{ # A Dataproc workflow template resource.
    &quot;id&quot;: &quot;A String&quot;,
    &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time template was last updated.
    &quot;labels&quot;: { # Optional. The labels to associate with this template. These labels will be propagated to all jobs and clusters created by the workflow instance.Label keys must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt).Label values may be empty, but, if present, must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt).No more than 32 labels can be associated with a template.
      &quot;a_key&quot;: &quot;A String&quot;,
    },
    &quot;placement&quot;: { # Specifies workflow execution target.Either managed_cluster or cluster_selector is required. # Required. WorkflowTemplate scheduling information.
      &quot;clusterSelector&quot;: { # A selector that chooses target cluster for jobs based on metadata. # Optional. A selector that chooses target cluster for jobs based on metadata.The selector is evaluated at the time each job is submitted.
        &quot;zone&quot;: &quot;A String&quot;, # Optional. The zone where workflow process executes. This parameter does not affect the selection of the cluster.If unspecified, the zone of the first cluster matching the selector is used.
        &quot;clusterLabels&quot;: { # Required. The cluster labels. Cluster must have all labels to match.
          &quot;a_key&quot;: &quot;A String&quot;,
        },
      },
      &quot;managedCluster&quot;: { # Cluster that is managed by the workflow. # A cluster that is managed by the workflow.
        &quot;config&quot;: { # The cluster config. # Required. The cluster configuration.
          &quot;tempBucket&quot;: &quot;A String&quot;, # 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, Dataproc will determine a Cloud Storage location (US, ASIA, or EU) for your cluster&#x27;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.
          &quot;lifecycleConfig&quot;: { # Specifies the cluster auto-delete schedule configuration. # Optional. Lifecycle setting for the cluster.
            &quot;autoDeleteTime&quot;: &quot;A String&quot;, # Optional. The time when cluster will be auto-deleted (see JSON representation of Timestamp (https://developers.google.com/protocol-buffers/docs/proto3#json)).
            &quot;idleStartTime&quot;: &quot;A String&quot;, # 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)).
            &quot;idleDeleteTtl&quot;: &quot;A String&quot;, # 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).
            &quot;autoDeleteTtl&quot;: &quot;A String&quot;, # 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)).
          },
          &quot;masterConfig&quot;: { # The config settings for Compute Engine resources in an instance group, such as a master or worker group. # Optional. The Compute Engine config settings for the master instance in a cluster.
            &quot;managedGroupConfig&quot;: { # Specifies the resources used to actively manage an instance group. # Output only. The config for Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
              &quot;instanceGroupManagerName&quot;: &quot;A String&quot;, # Output only. The name of the Instance Group Manager for this group.
              &quot;instanceTemplateName&quot;: &quot;A String&quot;, # Output only. The name of the Instance Template used for the Managed Instance Group.
            },
            &quot;imageUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine image resource used for cluster instances.The URI can represent an image or image family.Image examples: https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/[image-id] projects/[project_id]/global/images/[image-id] image-idImage family examples. Dataproc will use the most recent image from the family: https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/family/[custom-image-family-name] projects/[project_id]/global/images/family/[custom-image-family-name]If the URI is unspecified, it will be inferred from SoftwareConfig.image_version or the system default.
            &quot;machineTypeUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine machine type used for cluster instances.A full URL, partial URI, or short name are valid. Examples: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2 projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2 n1-standard-2Auto Zone Exception: If you are using the Dataproc Auto Zone Placement (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the machine type resource, for example, n1-standard-2.
            &quot;diskConfig&quot;: { # Specifies the config of disk options for a group of VM instances. # Optional. Disk option config settings.
              &quot;bootDiskType&quot;: &quot;A String&quot;, # Optional. Type of the boot disk (default is &quot;pd-standard&quot;). Valid values: &quot;pd-ssd&quot; (Persistent Disk Solid State Drive) or &quot;pd-standard&quot; (Persistent Disk Hard Disk Drive).
              &quot;numLocalSsds&quot;: 42, # Optional. Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
              &quot;bootDiskSizeGb&quot;: 42, # Optional. Size in GB of the boot disk (default is 500GB).
            },
            &quot;numInstances&quot;: 42, # Optional. The number of VM instances in the instance group. For master instance groups, must be set to 1.
            &quot;instanceNames&quot;: [ # Output only. The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group.
              &quot;A String&quot;,
            ],
            &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
            &quot;preemptibility&quot;: &quot;A String&quot;, # Optional. Specifies the preemptibility of the instance group.The default value for master and worker groups is NON_PREEMPTIBLE. This default cannot be changed.The default value for secondary instances is PREEMPTIBLE.
            &quot;minCpuPlatform&quot;: &quot;A String&quot;, # Optional. Specifies the minimum cpu platform for the Instance Group. See Dataproc -&gt; Minimum CPU Platform (https://cloud.google.com/dataproc/docs/concepts/compute/dataproc-min-cpu).
            &quot;accelerators&quot;: [ # Optional. The Compute Engine accelerator configuration for these instances.
              { # Specifies the type and number of accelerator cards attached to the instances of an instance. See GPUs on Compute Engine (https://cloud.google.com/compute/docs/gpus/).
                &quot;acceleratorTypeUri&quot;: &quot;A String&quot;, # Full URL, partial URI, or short name of the accelerator type resource to expose to this instance. See Compute Engine AcceleratorTypes (https://cloud.google.com/compute/docs/reference/beta/acceleratorTypes).Examples: https://www.googleapis.com/compute/beta/projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 nvidia-tesla-k80Auto Zone Exception: If you are using the Dataproc Auto Zone Placement (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the accelerator type resource, for example, nvidia-tesla-k80.
                &quot;acceleratorCount&quot;: 42, # The number of the accelerator cards of this type exposed to this instance.
              },
            ],
            &quot;instanceReferences&quot;: [ # Output only. List of references to Compute Engine instances.
              { # A reference to a Compute Engine instance.
                &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
                &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
              },
            ],
          },
          &quot;softwareConfig&quot;: { # Specifies the selection and config of software inside the cluster. # Optional. The config settings for software inside the cluster.
            &quot;properties&quot;: { # 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.xmlFor more information, see Cluster properties (https://cloud.google.com/dataproc/docs/concepts/cluster-properties).
              &quot;a_key&quot;: &quot;A String&quot;,
            },
            &quot;imageVersion&quot;: &quot;A String&quot;, # Optional. The version of software inside the cluster. It must be one of the supported Dataproc Versions (https://cloud.google.com/dataproc/docs/concepts/versioning/dataproc-versions#supported_dataproc_versions), such as &quot;1.2&quot; (including a subminor version, such as &quot;1.2.29&quot;), or the &quot;preview&quot; version (https://cloud.google.com/dataproc/docs/concepts/versioning/dataproc-versions#other_versions). If unspecified, it defaults to the latest Debian version.
            &quot;optionalComponents&quot;: [ # Optional. The set of components to activate on the cluster.
              &quot;A String&quot;,
            ],
          },
          &quot;configBucket&quot;: &quot;A String&quot;, # 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, Cloud Dataproc will determine a Cloud Storage location (US, ASIA, or EU) for your cluster&#x27;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 Dataproc staging bucket (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/staging-bucket)).
          &quot;initializationActions&quot;: [ # 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&#x27;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 [[ &quot;${ROLE}&quot; == &#x27;Master&#x27; ]]; then ... master specific actions ... else ... worker specific actions ... fi
            { # Specifies an executable to run on a fully configured node and a timeout period for executable completion.
              &quot;executionTimeout&quot;: &quot;A String&quot;, # 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.
              &quot;executableFile&quot;: &quot;A String&quot;, # Required. Cloud Storage URI of executable file.
            },
          ],
          &quot;secondaryWorkerConfig&quot;: { # The config settings for Compute Engine resources in an instance group, such as a master or worker group. # Optional. The Compute Engine config settings for additional worker instances in a cluster.
            &quot;managedGroupConfig&quot;: { # Specifies the resources used to actively manage an instance group. # Output only. The config for Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
              &quot;instanceGroupManagerName&quot;: &quot;A String&quot;, # Output only. The name of the Instance Group Manager for this group.
              &quot;instanceTemplateName&quot;: &quot;A String&quot;, # Output only. The name of the Instance Template used for the Managed Instance Group.
            },
            &quot;imageUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine image resource used for cluster instances.The URI can represent an image or image family.Image examples: https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/[image-id] projects/[project_id]/global/images/[image-id] image-idImage family examples. Dataproc will use the most recent image from the family: https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/family/[custom-image-family-name] projects/[project_id]/global/images/family/[custom-image-family-name]If the URI is unspecified, it will be inferred from SoftwareConfig.image_version or the system default.
            &quot;machineTypeUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine machine type used for cluster instances.A full URL, partial URI, or short name are valid. Examples: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2 projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2 n1-standard-2Auto Zone Exception: If you are using the Dataproc Auto Zone Placement (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the machine type resource, for example, n1-standard-2.
            &quot;diskConfig&quot;: { # Specifies the config of disk options for a group of VM instances. # Optional. Disk option config settings.
              &quot;bootDiskType&quot;: &quot;A String&quot;, # Optional. Type of the boot disk (default is &quot;pd-standard&quot;). Valid values: &quot;pd-ssd&quot; (Persistent Disk Solid State Drive) or &quot;pd-standard&quot; (Persistent Disk Hard Disk Drive).
              &quot;numLocalSsds&quot;: 42, # Optional. Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
              &quot;bootDiskSizeGb&quot;: 42, # Optional. Size in GB of the boot disk (default is 500GB).
            },
            &quot;numInstances&quot;: 42, # Optional. The number of VM instances in the instance group. For master instance groups, must be set to 1.
            &quot;instanceNames&quot;: [ # Output only. The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group.
              &quot;A String&quot;,
            ],
            &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
            &quot;preemptibility&quot;: &quot;A String&quot;, # Optional. Specifies the preemptibility of the instance group.The default value for master and worker groups is NON_PREEMPTIBLE. This default cannot be changed.The default value for secondary instances is PREEMPTIBLE.
            &quot;minCpuPlatform&quot;: &quot;A String&quot;, # Optional. Specifies the minimum cpu platform for the Instance Group. See Dataproc -&gt; Minimum CPU Platform (https://cloud.google.com/dataproc/docs/concepts/compute/dataproc-min-cpu).
            &quot;accelerators&quot;: [ # Optional. The Compute Engine accelerator configuration for these instances.
              { # Specifies the type and number of accelerator cards attached to the instances of an instance. See GPUs on Compute Engine (https://cloud.google.com/compute/docs/gpus/).
                &quot;acceleratorTypeUri&quot;: &quot;A String&quot;, # Full URL, partial URI, or short name of the accelerator type resource to expose to this instance. See Compute Engine AcceleratorTypes (https://cloud.google.com/compute/docs/reference/beta/acceleratorTypes).Examples: https://www.googleapis.com/compute/beta/projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 nvidia-tesla-k80Auto Zone Exception: If you are using the Dataproc Auto Zone Placement (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the accelerator type resource, for example, nvidia-tesla-k80.
                &quot;acceleratorCount&quot;: 42, # The number of the accelerator cards of this type exposed to this instance.
              },
            ],
            &quot;instanceReferences&quot;: [ # Output only. List of references to Compute Engine instances.
              { # A reference to a Compute Engine instance.
                &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
                &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
              },
            ],
          },
          &quot;workerConfig&quot;: { # The config settings for Compute Engine resources in an instance group, such as a master or worker group. # Optional. The Compute Engine config settings for worker instances in a cluster.
            &quot;managedGroupConfig&quot;: { # Specifies the resources used to actively manage an instance group. # Output only. The config for Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
              &quot;instanceGroupManagerName&quot;: &quot;A String&quot;, # Output only. The name of the Instance Group Manager for this group.
              &quot;instanceTemplateName&quot;: &quot;A String&quot;, # Output only. The name of the Instance Template used for the Managed Instance Group.
            },
            &quot;imageUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine image resource used for cluster instances.The URI can represent an image or image family.Image examples: https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/[image-id] projects/[project_id]/global/images/[image-id] image-idImage family examples. Dataproc will use the most recent image from the family: https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/family/[custom-image-family-name] projects/[project_id]/global/images/family/[custom-image-family-name]If the URI is unspecified, it will be inferred from SoftwareConfig.image_version or the system default.
            &quot;machineTypeUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine machine type used for cluster instances.A full URL, partial URI, or short name are valid. Examples: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2 projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2 n1-standard-2Auto Zone Exception: If you are using the Dataproc Auto Zone Placement (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the machine type resource, for example, n1-standard-2.
            &quot;diskConfig&quot;: { # Specifies the config of disk options for a group of VM instances. # Optional. Disk option config settings.
              &quot;bootDiskType&quot;: &quot;A String&quot;, # Optional. Type of the boot disk (default is &quot;pd-standard&quot;). Valid values: &quot;pd-ssd&quot; (Persistent Disk Solid State Drive) or &quot;pd-standard&quot; (Persistent Disk Hard Disk Drive).
              &quot;numLocalSsds&quot;: 42, # Optional. Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
              &quot;bootDiskSizeGb&quot;: 42, # Optional. Size in GB of the boot disk (default is 500GB).
            },
            &quot;numInstances&quot;: 42, # Optional. The number of VM instances in the instance group. For master instance groups, must be set to 1.
            &quot;instanceNames&quot;: [ # Output only. The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group.
              &quot;A String&quot;,
            ],
            &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
            &quot;preemptibility&quot;: &quot;A String&quot;, # Optional. Specifies the preemptibility of the instance group.The default value for master and worker groups is NON_PREEMPTIBLE. This default cannot be changed.The default value for secondary instances is PREEMPTIBLE.
            &quot;minCpuPlatform&quot;: &quot;A String&quot;, # Optional. Specifies the minimum cpu platform for the Instance Group. See Dataproc -&gt; Minimum CPU Platform (https://cloud.google.com/dataproc/docs/concepts/compute/dataproc-min-cpu).
            &quot;accelerators&quot;: [ # Optional. The Compute Engine accelerator configuration for these instances.
              { # Specifies the type and number of accelerator cards attached to the instances of an instance. See GPUs on Compute Engine (https://cloud.google.com/compute/docs/gpus/).
                &quot;acceleratorTypeUri&quot;: &quot;A String&quot;, # Full URL, partial URI, or short name of the accelerator type resource to expose to this instance. See Compute Engine AcceleratorTypes (https://cloud.google.com/compute/docs/reference/beta/acceleratorTypes).Examples: https://www.googleapis.com/compute/beta/projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 nvidia-tesla-k80Auto Zone Exception: If you are using the Dataproc Auto Zone Placement (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the accelerator type resource, for example, nvidia-tesla-k80.
                &quot;acceleratorCount&quot;: 42, # The number of the accelerator cards of this type exposed to this instance.
              },
            ],
            &quot;instanceReferences&quot;: [ # Output only. List of references to Compute Engine instances.
              { # A reference to a Compute Engine instance.
                &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
                &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
              },
            ],
          },
          &quot;encryptionConfig&quot;: { # Encryption settings for the cluster. # Optional. Encryption settings for the cluster.
            &quot;gcePdKmsKeyName&quot;: &quot;A String&quot;, # Optional. The Cloud KMS key name to use for PD disk encryption for all instances in the cluster.
          },
          &quot;securityConfig&quot;: { # Security related configuration, including Kerberos. # Optional. Security settings for the cluster.
            &quot;kerberosConfig&quot;: { # Specifies Kerberos related configuration. # Kerberos related configuration.
              &quot;crossRealmTrustKdc&quot;: &quot;A String&quot;, # Optional. The KDC (IP or hostname) for the remote trusted realm in a cross realm trust relationship.
              &quot;keyPasswordUri&quot;: &quot;A String&quot;, # 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 Dataproc.
              &quot;enableKerberos&quot;: True or False, # Optional. Flag to indicate whether to Kerberize the cluster (default: false). Set this field to true to enable Kerberos on a cluster.
              &quot;crossRealmTrustAdminServer&quot;: &quot;A String&quot;, # Optional. The admin server (IP or hostname) for the remote trusted realm in a cross realm trust relationship.
              &quot;truststoreUri&quot;: &quot;A String&quot;, # Optional. The Cloud Storage URI of the truststore file used for SSL encryption. If not provided, Dataproc will provide a self-signed certificate.
              &quot;rootPrincipalPasswordUri&quot;: &quot;A String&quot;, # Optional. The Cloud Storage URI of a KMS encrypted file containing the root principal password.
              &quot;kmsKeyUri&quot;: &quot;A String&quot;, # Optional. The uri of the KMS key used to encrypt various sensitive files.
              &quot;keystoreUri&quot;: &quot;A String&quot;, # Optional. The Cloud Storage URI of the keystore file used for SSL encryption. If not provided, Dataproc will provide a self-signed certificate.
              &quot;crossRealmTrustSharedPasswordUri&quot;: &quot;A String&quot;, # 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.
              &quot;truststorePasswordUri&quot;: &quot;A String&quot;, # 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 Dataproc.
              &quot;crossRealmTrustRealm&quot;: &quot;A String&quot;, # Optional. The remote realm the Dataproc on-cluster KDC will trust, should the user enable cross realm trust.
              &quot;keystorePasswordUri&quot;: &quot;A String&quot;, # 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 Dataproc.
              &quot;realm&quot;: &quot;A String&quot;, # Optional. The name of the on-cluster Kerberos realm. If not specified, the uppercased domain of hostnames will be the realm.
              &quot;kdcDbKeyUri&quot;: &quot;A String&quot;, # Optional. The Cloud Storage URI of a KMS encrypted file containing the master key of the KDC database.
              &quot;tgtLifetimeHours&quot;: 42, # Optional. The lifetime of the ticket granting ticket, in hours. If not specified, or user specifies 0, then default value 10 will be used.
            },
          },
          &quot;autoscalingConfig&quot;: { # Autoscaling Policy config associated with the cluster. # Optional. Autoscaling config for the policy associated with the cluster. Cluster does not autoscale if this field is unset.
            &quot;policyUri&quot;: &quot;A String&quot;, # 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/[project_id]/locations/[dataproc_region]/autoscalingPolicies/[policy_id] projects/[project_id]/locations/[dataproc_region]/autoscalingPolicies/[policy_id]Note that the policy must be in the same project and Dataproc region.
          },
          &quot;gceClusterConfig&quot;: { # Common config settings for resources of Compute Engine cluster instances, applicable to all instances in the cluster. # Optional. The shared Compute Engine config settings for all instances in a cluster.
            &quot;internalIpOnly&quot;: True or False, # Optional. If true, all instances in the cluster will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This internal_ip_only restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
            &quot;zoneUri&quot;: &quot;A String&quot;, # Optional. The zone where the Compute Engine cluster will be located. On a create request, it is required in the &quot;global&quot; region. If omitted in a non-global Dataproc region, the service will pick a zone in the corresponding 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/[project_id]/zones/[zone] projects/[project_id]/zones/[zone] us-central1-f
            &quot;tags&quot;: [ # The Compute Engine tags to add to all instances (see Tagging instances (https://cloud.google.com/compute/docs/label-or-tag-resources#tags)).
              &quot;A String&quot;,
            ],
            &quot;metadata&quot;: { # 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)).
              &quot;a_key&quot;: &quot;A String&quot;,
            },
            &quot;subnetworkUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine subnetwork to be used for machine communications. Cannot be specified with network_uri.A full URL, partial URI, or short name are valid. Examples: https://www.googleapis.com/compute/v1/projects/[project_id]/regions/us-east1/subnetworks/sub0 projects/[project_id]/regions/us-east1/subnetworks/sub0 sub0
            &quot;serviceAccount&quot;: &quot;A String&quot;, # Optional. The Dataproc 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 Dataproc 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.
            &quot;privateIpv6GoogleAccess&quot;: &quot;A String&quot;, # Optional. The type of IPv6 access for a cluster.
            &quot;serviceAccountScopes&quot;: [ # 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.writeIf 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
              &quot;A String&quot;,
            ],
            &quot;reservationAffinity&quot;: { # Reservation Affinity for consuming Zonal reservation. # Optional. Reservation Affinity for consuming Zonal reservation.
              &quot;values&quot;: [ # Optional. Corresponds to the label values of reservation resource.
                &quot;A String&quot;,
              ],
              &quot;key&quot;: &quot;A String&quot;, # Optional. Corresponds to the label key of reservation resource.
              &quot;consumeReservationType&quot;: &quot;A String&quot;, # Optional. Type of reservation to consume
            },
            &quot;networkUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither network_uri nor subnetwork_uri is specified, the &quot;default&quot; network of the project is used, if it exists. Cannot be a &quot;Custom Subnet Network&quot; (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/[project_id]/regions/global/default projects/[project_id]/regions/global/default default
            &quot;nodeGroupAffinity&quot;: { # Node Group Affinity for clusters using sole-tenant node groups. # Optional. Node Group Affinity for sole-tenant clusters.
              &quot;nodeGroupUri&quot;: &quot;A String&quot;, # 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/[project_id]/zones/us-central1-a/nodeGroups/node-group-1 projects/[project_id]/zones/us-central1-a/nodeGroups/node-group-1 node-group-1
            },
          },
          &quot;endpointConfig&quot;: { # Endpoint config for this cluster # Optional. Port/endpoint configuration for this cluster
            &quot;httpPorts&quot;: { # Output only. The map of port descriptions to URLs. Will only be populated if enable_http_port_access is true.
              &quot;a_key&quot;: &quot;A String&quot;,
            },
            &quot;enableHttpPortAccess&quot;: True or False, # Optional. If true, enable http access to specific ports on the cluster from external sources. Defaults to false.
          },
        },
        &quot;labels&quot;: { # Optional. The labels to associate with this cluster.Label keys must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 32 labels can be associated with a given cluster.
          &quot;a_key&quot;: &quot;A String&quot;,
        },
        &quot;clusterName&quot;: &quot;A String&quot;, # Required. The cluster name prefix. A unique cluster name will be formed by appending a random suffix.The name must contain only lower-case letters (a-z), numbers (0-9), and hyphens (-). Must begin with a letter. Cannot begin or end with hyphen. Must consist of between 2 and 35 characters.
      },
    },
    &quot;version&quot;: 42, # Optional. Used to perform a consistent read-modify-write.This field should be left blank for a CreateWorkflowTemplate request. It is required for an UpdateWorkflowTemplate request, and must match the current server version. A typical update template flow would fetch the current template with a GetWorkflowTemplate request, which will return the current template with the version field filled in with the current server version. The user updates other fields in the template, then returns it as part of the UpdateWorkflowTemplate request.
    &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time template was created.
    &quot;parameters&quot;: [ # Optional. Template parameters whose values are substituted into the template. Values for parameters must be provided when the template is instantiated.
      { # A configurable parameter that replaces one or more fields in the template. Parameterizable fields: - Labels - File uris - Job properties - Job arguments - Script variables - Main class (in HadoopJob and SparkJob) - Zone (in ClusterSelector)
        &quot;validation&quot;: { # Configuration for parameter validation. # Optional. Validation rules to be applied to this parameter&#x27;s value.
          &quot;values&quot;: { # Validation based on a list of allowed values. # Validation based on a list of allowed values.
            &quot;values&quot;: [ # Required. List of allowed values for the parameter.
              &quot;A String&quot;,
            ],
          },
          &quot;regex&quot;: { # Validation based on regular expressions. # Validation based on regular expressions.
            &quot;regexes&quot;: [ # Required. RE2 regular expressions used to validate the parameter&#x27;s value. The value must match the regex in its entirety (substring matches are not sufficient).
              &quot;A String&quot;,
            ],
          },
        },
        &quot;fields&quot;: [ # Required. Paths to all fields that the parameter replaces. A field is allowed to appear in at most one parameter&#x27;s list of field paths.A field path is similar in syntax to a google.protobuf.FieldMask. For example, a field path that references the zone field of a workflow template&#x27;s cluster selector would be specified as placement.clusterSelector.zone.Also, field paths can reference fields using the following syntax: Values in maps can be referenced by key: labels&#x27;key&#x27; placement.clusterSelector.clusterLabels&#x27;key&#x27; placement.managedCluster.labels&#x27;key&#x27; placement.clusterSelector.clusterLabels&#x27;key&#x27; jobs&#x27;step-id&#x27;.labels&#x27;key&#x27; Jobs in the jobs list can be referenced by step-id: jobs&#x27;step-id&#x27;.hadoopJob.mainJarFileUri jobs&#x27;step-id&#x27;.hiveJob.queryFileUri jobs&#x27;step-id&#x27;.pySparkJob.mainPythonFileUri jobs&#x27;step-id&#x27;.hadoopJob.jarFileUris0 jobs&#x27;step-id&#x27;.hadoopJob.archiveUris0 jobs&#x27;step-id&#x27;.hadoopJob.fileUris0 jobs&#x27;step-id&#x27;.pySparkJob.pythonFileUris0 Items in repeated fields can be referenced by a zero-based index: jobs&#x27;step-id&#x27;.sparkJob.args0 Other examples: jobs&#x27;step-id&#x27;.hadoopJob.properties&#x27;key&#x27; jobs&#x27;step-id&#x27;.hadoopJob.args0 jobs&#x27;step-id&#x27;.hiveJob.scriptVariables&#x27;key&#x27; jobs&#x27;step-id&#x27;.hadoopJob.mainJarFileUri placement.clusterSelector.zoneIt may not be possible to parameterize maps and repeated fields in their entirety since only individual map values and individual items in repeated fields can be referenced. For example, the following field paths are invalid: placement.clusterSelector.clusterLabels jobs&#x27;step-id&#x27;.sparkJob.args
          &quot;A String&quot;,
        ],
        &quot;name&quot;: &quot;A String&quot;, # Required. Parameter name. The parameter name is used as the key, and paired with the parameter value, which are passed to the template when the template is instantiated. The name must contain only capital letters (A-Z), numbers (0-9), and underscores (_), and must not start with a number. The maximum length is 40 characters.
        &quot;description&quot;: &quot;A String&quot;, # Optional. Brief description of the parameter. Must not exceed 1024 characters.
      },
    ],
    &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of the workflow template, as described in https://cloud.google.com/apis/design/resource_names. For projects.regions.workflowTemplates, the resource name of the template has the following format: projects/{project_id}/regions/{region}/workflowTemplates/{template_id} For projects.locations.workflowTemplates, the resource name of the template has the following format: projects/{project_id}/locations/{location}/workflowTemplates/{template_id}
    &quot;jobs&quot;: [ # Required. The Directed Acyclic Graph of Jobs to submit.
      { # A job executed by the workflow.
        &quot;stepId&quot;: &quot;A String&quot;, # Required. The step id. The id must be unique among all jobs within the template.The step id is used as prefix for job id, as job goog-dataproc-workflow-step-id label, and in prerequisiteStepIds field from other steps.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 between 3 and 50 characters.
        &quot;pigJob&quot;: { # A Dataproc job for running Apache Pig (https://pig.apache.org/) queries on YARN. # Optional. Job is a Pig job.
          &quot;properties&quot;: { # Optional. A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
            &quot;a_key&quot;: &quot;A String&quot;,
          },
          &quot;scriptVariables&quot;: { # Optional. Mapping of query variable names to values (equivalent to the Pig command: name=[value]).
            &quot;a_key&quot;: &quot;A String&quot;,
          },
          &quot;jarFileUris&quot;: [ # Optional. HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
            &quot;A String&quot;,
          ],
          &quot;loggingConfig&quot;: { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
            &quot;driverLogLevels&quot;: { # The per-package log levels for the driver. This may include &quot;root&quot; package name to configure rootLogger. Examples: &#x27;com.google = FATAL&#x27;, &#x27;root = INFO&#x27;, &#x27;org.apache = DEBUG&#x27;
              &quot;a_key&quot;: &quot;A String&quot;,
            },
          },
          &quot;queryList&quot;: { # A list of queries to run on a cluster. # A list of queries.
            &quot;queries&quot;: [ # Required. The queries to execute. You do not need to end a query expression with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of a Dataproc API snippet that uses a QueryList to specify a HiveJob: &quot;hiveJob&quot;: { &quot;queryList&quot;: { &quot;queries&quot;: [ &quot;query1&quot;, &quot;query2&quot;, &quot;query3;query4&quot;, ] } }
              &quot;A String&quot;,
            ],
          },
          &quot;continueOnFailure&quot;: True or False, # Optional. Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
          &quot;queryFileUri&quot;: &quot;A String&quot;, # The HCFS URI of the script that contains the Pig queries.
        },
        &quot;sparkJob&quot;: { # A Dataproc job for running Apache Spark (http://spark.apache.org/) applications on YARN. # Optional. Job is a Spark job.
          &quot;loggingConfig&quot;: { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
            &quot;driverLogLevels&quot;: { # The per-package log levels for the driver. This may include &quot;root&quot; package name to configure rootLogger. Examples: &#x27;com.google = FATAL&#x27;, &#x27;root = INFO&#x27;, &#x27;org.apache = DEBUG&#x27;
              &quot;a_key&quot;: &quot;A String&quot;,
            },
          },
          &quot;archiveUris&quot;: [ # Optional. HCFS URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
            &quot;A String&quot;,
          ],
          &quot;jarFileUris&quot;: [ # Optional. HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
            &quot;A String&quot;,
          ],
          &quot;properties&quot;: { # Optional. A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
            &quot;a_key&quot;: &quot;A String&quot;,
          },
          &quot;mainClass&quot;: &quot;A String&quot;, # The name of the driver&#x27;s main class. The jar file that contains the class must be in the default CLASSPATH or specified in jar_file_uris.
          &quot;mainJarFileUri&quot;: &quot;A String&quot;, # The HCFS URI of the jar file that contains the main class.
          &quot;args&quot;: [ # Optional. The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
            &quot;A String&quot;,
          ],
          &quot;fileUris&quot;: [ # Optional. HCFS URIs of files to be placed in the working directory of each executor. Useful for naively parallel tasks.
            &quot;A String&quot;,
          ],
        },
        &quot;pysparkJob&quot;: { # A Dataproc job for running Apache PySpark (https://spark.apache.org/docs/0.9.0/python-programming-guide.html) applications on YARN. # Optional. Job is a PySpark job.
          &quot;loggingConfig&quot;: { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
            &quot;driverLogLevels&quot;: { # The per-package log levels for the driver. This may include &quot;root&quot; package name to configure rootLogger. Examples: &#x27;com.google = FATAL&#x27;, &#x27;root = INFO&#x27;, &#x27;org.apache = DEBUG&#x27;
              &quot;a_key&quot;: &quot;A String&quot;,
            },
          },
          &quot;mainPythonFileUri&quot;: &quot;A String&quot;, # Required. The HCFS URI of the main Python file to use as the driver. Must be a .py file.
          &quot;pythonFileUris&quot;: [ # Optional. HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
            &quot;A String&quot;,
          ],
          &quot;args&quot;: [ # Optional. The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
            &quot;A String&quot;,
          ],
          &quot;properties&quot;: { # Optional. A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
            &quot;a_key&quot;: &quot;A String&quot;,
          },
          &quot;jarFileUris&quot;: [ # Optional. HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
            &quot;A String&quot;,
          ],
          &quot;archiveUris&quot;: [ # Optional. HCFS URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
            &quot;A String&quot;,
          ],
          &quot;fileUris&quot;: [ # Optional. HCFS URIs of files to be placed in the working directory of each executor. Useful for naively parallel tasks.
            &quot;A String&quot;,
          ],
        },
        &quot;scheduling&quot;: { # Job scheduling options. # Optional. Job scheduling configuration.
          &quot;maxFailuresTotal&quot;: 42, # Optional. Maximum number of times in total a driver may be restarted as a result of driver exiting with non-zero code before job is reported failed. Maximum value is 240
          &quot;maxFailuresPerHour&quot;: 42, # Optional. Maximum number of times per hour a driver may be restarted as a result of driver exiting with non-zero code before job is reported failed.A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window.Maximum value is 10.
        },
        &quot;sparkSqlJob&quot;: { # A Dataproc job for running Apache Spark SQL (http://spark.apache.org/sql/) queries. # Optional. Job is a SparkSql job.
          &quot;queryFileUri&quot;: &quot;A String&quot;, # The HCFS URI of the script that contains SQL queries.
          &quot;loggingConfig&quot;: { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
            &quot;driverLogLevels&quot;: { # The per-package log levels for the driver. This may include &quot;root&quot; package name to configure rootLogger. Examples: &#x27;com.google = FATAL&#x27;, &#x27;root = INFO&#x27;, &#x27;org.apache = DEBUG&#x27;
              &quot;a_key&quot;: &quot;A String&quot;,
            },
          },
          &quot;scriptVariables&quot;: { # Optional. Mapping of query variable names to values (equivalent to the Spark SQL command: SET name=&quot;value&quot;;).
            &quot;a_key&quot;: &quot;A String&quot;,
          },
          &quot;queryList&quot;: { # A list of queries to run on a cluster. # A list of queries.
            &quot;queries&quot;: [ # Required. The queries to execute. You do not need to end a query expression with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of a Dataproc API snippet that uses a QueryList to specify a HiveJob: &quot;hiveJob&quot;: { &quot;queryList&quot;: { &quot;queries&quot;: [ &quot;query1&quot;, &quot;query2&quot;, &quot;query3;query4&quot;, ] } }
              &quot;A String&quot;,
            ],
          },
          &quot;properties&quot;: { # Optional. A mapping of property names to values, used to configure Spark SQL&#x27;s SparkConf. Properties that conflict with values set by the Dataproc API may be overwritten.
            &quot;a_key&quot;: &quot;A String&quot;,
          },
          &quot;jarFileUris&quot;: [ # Optional. HCFS URIs of jar files to be added to the Spark CLASSPATH.
            &quot;A String&quot;,
          ],
        },
        &quot;hiveJob&quot;: { # A Dataproc job for running Apache Hive (https://hive.apache.org/) queries on YARN. # Optional. Job is a Hive job.
          &quot;jarFileUris&quot;: [ # Optional. HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
            &quot;A String&quot;,
          ],
          &quot;continueOnFailure&quot;: True or False, # Optional. Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
          &quot;properties&quot;: { # Optional. A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
            &quot;a_key&quot;: &quot;A String&quot;,
          },
          &quot;queryList&quot;: { # A list of queries to run on a cluster. # A list of queries.
            &quot;queries&quot;: [ # Required. The queries to execute. You do not need to end a query expression with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of a Dataproc API snippet that uses a QueryList to specify a HiveJob: &quot;hiveJob&quot;: { &quot;queryList&quot;: { &quot;queries&quot;: [ &quot;query1&quot;, &quot;query2&quot;, &quot;query3;query4&quot;, ] } }
              &quot;A String&quot;,
            ],
          },
          &quot;scriptVariables&quot;: { # Optional. Mapping of query variable names to values (equivalent to the Hive command: SET name=&quot;value&quot;;).
            &quot;a_key&quot;: &quot;A String&quot;,
          },
          &quot;queryFileUri&quot;: &quot;A String&quot;, # The HCFS URI of the script that contains Hive queries.
        },
        &quot;prestoJob&quot;: { # A Dataproc job for running Presto (https://prestosql.io/) queries. IMPORTANT: The Dataproc Presto Optional Component (https://cloud.google.com/dataproc/docs/concepts/components/presto) must be enabled when the cluster is created to submit a Presto job to the cluster. # Optional. Job is a Presto job.
          &quot;properties&quot;: { # Optional. A mapping of property names to values. Used to set Presto session properties (https://prestodb.io/docs/current/sql/set-session.html) Equivalent to using the --session flag in the Presto CLI
            &quot;a_key&quot;: &quot;A String&quot;,
          },
          &quot;clientTags&quot;: [ # Optional. Presto client tags to attach to this query
            &quot;A String&quot;,
          ],
          &quot;queryFileUri&quot;: &quot;A String&quot;, # The HCFS URI of the script that contains SQL queries.
          &quot;queryList&quot;: { # A list of queries to run on a cluster. # A list of queries.
            &quot;queries&quot;: [ # Required. The queries to execute. You do not need to end a query expression with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of a Dataproc API snippet that uses a QueryList to specify a HiveJob: &quot;hiveJob&quot;: { &quot;queryList&quot;: { &quot;queries&quot;: [ &quot;query1&quot;, &quot;query2&quot;, &quot;query3;query4&quot;, ] } }
              &quot;A String&quot;,
            ],
          },
          &quot;outputFormat&quot;: &quot;A String&quot;, # Optional. The format in which query output will be displayed. See the Presto documentation for supported output formats
          &quot;continueOnFailure&quot;: True or False, # Optional. Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
          &quot;loggingConfig&quot;: { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
            &quot;driverLogLevels&quot;: { # The per-package log levels for the driver. This may include &quot;root&quot; package name to configure rootLogger. Examples: &#x27;com.google = FATAL&#x27;, &#x27;root = INFO&#x27;, &#x27;org.apache = DEBUG&#x27;
              &quot;a_key&quot;: &quot;A String&quot;,
            },
          },
        },
        &quot;hadoopJob&quot;: { # A Dataproc job for running Apache Hadoop MapReduce (https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html) jobs on Apache Hadoop YARN (https://hadoop.apache.org/docs/r2.7.1/hadoop-yarn/hadoop-yarn-site/YARN.html). # Optional. Job is a Hadoop job.
          &quot;fileUris&quot;: [ # Optional. HCFS (Hadoop Compatible Filesystem) URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
            &quot;A String&quot;,
          ],
          &quot;mainClass&quot;: &quot;A String&quot;, # The name of the driver&#x27;s main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
          &quot;args&quot;: [ # Optional. The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
            &quot;A String&quot;,
          ],
          &quot;mainJarFileUri&quot;: &quot;A String&quot;, # The HCFS URI of the jar file containing the main class. Examples: &#x27;gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar&#x27; &#x27;hdfs:/tmp/test-samples/custom-wordcount.jar&#x27; &#x27;file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar&#x27;
          &quot;jarFileUris&quot;: [ # Optional. Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
            &quot;A String&quot;,
          ],
          &quot;archiveUris&quot;: [ # Optional. HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
            &quot;A String&quot;,
          ],
          &quot;properties&quot;: { # Optional. A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
            &quot;a_key&quot;: &quot;A String&quot;,
          },
          &quot;loggingConfig&quot;: { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
            &quot;driverLogLevels&quot;: { # The per-package log levels for the driver. This may include &quot;root&quot; package name to configure rootLogger. Examples: &#x27;com.google = FATAL&#x27;, &#x27;root = INFO&#x27;, &#x27;org.apache = DEBUG&#x27;
              &quot;a_key&quot;: &quot;A String&quot;,
            },
          },
        },
        &quot;sparkRJob&quot;: { # A Dataproc job for running Apache SparkR (https://spark.apache.org/docs/latest/sparkr.html) applications on YARN. # Optional. Job is a SparkR job.
          &quot;properties&quot;: { # Optional. A mapping of property names to values, used to configure SparkR. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
            &quot;a_key&quot;: &quot;A String&quot;,
          },
          &quot;loggingConfig&quot;: { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
            &quot;driverLogLevels&quot;: { # The per-package log levels for the driver. This may include &quot;root&quot; package name to configure rootLogger. Examples: &#x27;com.google = FATAL&#x27;, &#x27;root = INFO&#x27;, &#x27;org.apache = DEBUG&#x27;
              &quot;a_key&quot;: &quot;A String&quot;,
            },
          },
          &quot;mainRFileUri&quot;: &quot;A String&quot;, # Required. The HCFS URI of the main R file to use as the driver. Must be a .R file.
          &quot;archiveUris&quot;: [ # Optional. HCFS URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
            &quot;A String&quot;,
          ],
          &quot;fileUris&quot;: [ # Optional. HCFS URIs of files to be placed in the working directory of each executor. Useful for naively parallel tasks.
            &quot;A String&quot;,
          ],
          &quot;args&quot;: [ # Optional. The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
            &quot;A String&quot;,
          ],
        },
        &quot;prerequisiteStepIds&quot;: [ # Optional. The optional list of prerequisite job step_ids. If not specified, the job will start at the beginning of workflow.
          &quot;A String&quot;,
        ],
        &quot;labels&quot;: { # Optional. The labels to associate with this job.Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 32 labels can be associated with a given job.
          &quot;a_key&quot;: &quot;A String&quot;,
        },
      },
    ],
  }

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A Dataproc workflow template resource.
      &quot;id&quot;: &quot;A String&quot;,
      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time template was last updated.
      &quot;labels&quot;: { # Optional. The labels to associate with this template. These labels will be propagated to all jobs and clusters created by the workflow instance.Label keys must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt).Label values may be empty, but, if present, must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt).No more than 32 labels can be associated with a template.
        &quot;a_key&quot;: &quot;A String&quot;,
      },
      &quot;placement&quot;: { # Specifies workflow execution target.Either managed_cluster or cluster_selector is required. # Required. WorkflowTemplate scheduling information.
        &quot;clusterSelector&quot;: { # A selector that chooses target cluster for jobs based on metadata. # Optional. A selector that chooses target cluster for jobs based on metadata.The selector is evaluated at the time each job is submitted.
          &quot;zone&quot;: &quot;A String&quot;, # Optional. The zone where workflow process executes. This parameter does not affect the selection of the cluster.If unspecified, the zone of the first cluster matching the selector is used.
          &quot;clusterLabels&quot;: { # Required. The cluster labels. Cluster must have all labels to match.
            &quot;a_key&quot;: &quot;A String&quot;,
          },
        },
        &quot;managedCluster&quot;: { # Cluster that is managed by the workflow. # A cluster that is managed by the workflow.
          &quot;config&quot;: { # The cluster config. # Required. The cluster configuration.
            &quot;tempBucket&quot;: &quot;A String&quot;, # 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, Dataproc will determine a Cloud Storage location (US, ASIA, or EU) for your cluster&#x27;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.
            &quot;lifecycleConfig&quot;: { # Specifies the cluster auto-delete schedule configuration. # Optional. Lifecycle setting for the cluster.
              &quot;autoDeleteTime&quot;: &quot;A String&quot;, # Optional. The time when cluster will be auto-deleted (see JSON representation of Timestamp (https://developers.google.com/protocol-buffers/docs/proto3#json)).
              &quot;idleStartTime&quot;: &quot;A String&quot;, # 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)).
              &quot;idleDeleteTtl&quot;: &quot;A String&quot;, # 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).
              &quot;autoDeleteTtl&quot;: &quot;A String&quot;, # 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)).
            },
            &quot;masterConfig&quot;: { # The config settings for Compute Engine resources in an instance group, such as a master or worker group. # Optional. The Compute Engine config settings for the master instance in a cluster.
              &quot;managedGroupConfig&quot;: { # Specifies the resources used to actively manage an instance group. # Output only. The config for Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
                &quot;instanceGroupManagerName&quot;: &quot;A String&quot;, # Output only. The name of the Instance Group Manager for this group.
                &quot;instanceTemplateName&quot;: &quot;A String&quot;, # Output only. The name of the Instance Template used for the Managed Instance Group.
              },
              &quot;imageUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine image resource used for cluster instances.The URI can represent an image or image family.Image examples: https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/[image-id] projects/[project_id]/global/images/[image-id] image-idImage family examples. Dataproc will use the most recent image from the family: https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/family/[custom-image-family-name] projects/[project_id]/global/images/family/[custom-image-family-name]If the URI is unspecified, it will be inferred from SoftwareConfig.image_version or the system default.
              &quot;machineTypeUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine machine type used for cluster instances.A full URL, partial URI, or short name are valid. Examples: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2 projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2 n1-standard-2Auto Zone Exception: If you are using the Dataproc Auto Zone Placement (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the machine type resource, for example, n1-standard-2.
              &quot;diskConfig&quot;: { # Specifies the config of disk options for a group of VM instances. # Optional. Disk option config settings.
                &quot;bootDiskType&quot;: &quot;A String&quot;, # Optional. Type of the boot disk (default is &quot;pd-standard&quot;). Valid values: &quot;pd-ssd&quot; (Persistent Disk Solid State Drive) or &quot;pd-standard&quot; (Persistent Disk Hard Disk Drive).
                &quot;numLocalSsds&quot;: 42, # Optional. Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
                &quot;bootDiskSizeGb&quot;: 42, # Optional. Size in GB of the boot disk (default is 500GB).
              },
              &quot;numInstances&quot;: 42, # Optional. The number of VM instances in the instance group. For master instance groups, must be set to 1.
              &quot;instanceNames&quot;: [ # Output only. The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group.
                &quot;A String&quot;,
              ],
              &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
              &quot;preemptibility&quot;: &quot;A String&quot;, # Optional. Specifies the preemptibility of the instance group.The default value for master and worker groups is NON_PREEMPTIBLE. This default cannot be changed.The default value for secondary instances is PREEMPTIBLE.
              &quot;minCpuPlatform&quot;: &quot;A String&quot;, # Optional. Specifies the minimum cpu platform for the Instance Group. See Dataproc -&gt; Minimum CPU Platform (https://cloud.google.com/dataproc/docs/concepts/compute/dataproc-min-cpu).
              &quot;accelerators&quot;: [ # Optional. The Compute Engine accelerator configuration for these instances.
                { # Specifies the type and number of accelerator cards attached to the instances of an instance. See GPUs on Compute Engine (https://cloud.google.com/compute/docs/gpus/).
                  &quot;acceleratorTypeUri&quot;: &quot;A String&quot;, # Full URL, partial URI, or short name of the accelerator type resource to expose to this instance. See Compute Engine AcceleratorTypes (https://cloud.google.com/compute/docs/reference/beta/acceleratorTypes).Examples: https://www.googleapis.com/compute/beta/projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 nvidia-tesla-k80Auto Zone Exception: If you are using the Dataproc Auto Zone Placement (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the accelerator type resource, for example, nvidia-tesla-k80.
                  &quot;acceleratorCount&quot;: 42, # The number of the accelerator cards of this type exposed to this instance.
                },
              ],
              &quot;instanceReferences&quot;: [ # Output only. List of references to Compute Engine instances.
                { # A reference to a Compute Engine instance.
                  &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
                  &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
                },
              ],
            },
            &quot;softwareConfig&quot;: { # Specifies the selection and config of software inside the cluster. # Optional. The config settings for software inside the cluster.
              &quot;properties&quot;: { # 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.xmlFor more information, see Cluster properties (https://cloud.google.com/dataproc/docs/concepts/cluster-properties).
                &quot;a_key&quot;: &quot;A String&quot;,
              },
              &quot;imageVersion&quot;: &quot;A String&quot;, # Optional. The version of software inside the cluster. It must be one of the supported Dataproc Versions (https://cloud.google.com/dataproc/docs/concepts/versioning/dataproc-versions#supported_dataproc_versions), such as &quot;1.2&quot; (including a subminor version, such as &quot;1.2.29&quot;), or the &quot;preview&quot; version (https://cloud.google.com/dataproc/docs/concepts/versioning/dataproc-versions#other_versions). If unspecified, it defaults to the latest Debian version.
              &quot;optionalComponents&quot;: [ # Optional. The set of components to activate on the cluster.
                &quot;A String&quot;,
              ],
            },
            &quot;configBucket&quot;: &quot;A String&quot;, # 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, Cloud Dataproc will determine a Cloud Storage location (US, ASIA, or EU) for your cluster&#x27;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 Dataproc staging bucket (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/staging-bucket)).
            &quot;initializationActions&quot;: [ # 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&#x27;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 [[ &quot;${ROLE}&quot; == &#x27;Master&#x27; ]]; then ... master specific actions ... else ... worker specific actions ... fi
              { # Specifies an executable to run on a fully configured node and a timeout period for executable completion.
                &quot;executionTimeout&quot;: &quot;A String&quot;, # 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.
                &quot;executableFile&quot;: &quot;A String&quot;, # Required. Cloud Storage URI of executable file.
              },
            ],
            &quot;secondaryWorkerConfig&quot;: { # The config settings for Compute Engine resources in an instance group, such as a master or worker group. # Optional. The Compute Engine config settings for additional worker instances in a cluster.
              &quot;managedGroupConfig&quot;: { # Specifies the resources used to actively manage an instance group. # Output only. The config for Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
                &quot;instanceGroupManagerName&quot;: &quot;A String&quot;, # Output only. The name of the Instance Group Manager for this group.
                &quot;instanceTemplateName&quot;: &quot;A String&quot;, # Output only. The name of the Instance Template used for the Managed Instance Group.
              },
              &quot;imageUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine image resource used for cluster instances.The URI can represent an image or image family.Image examples: https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/[image-id] projects/[project_id]/global/images/[image-id] image-idImage family examples. Dataproc will use the most recent image from the family: https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/family/[custom-image-family-name] projects/[project_id]/global/images/family/[custom-image-family-name]If the URI is unspecified, it will be inferred from SoftwareConfig.image_version or the system default.
              &quot;machineTypeUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine machine type used for cluster instances.A full URL, partial URI, or short name are valid. Examples: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2 projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2 n1-standard-2Auto Zone Exception: If you are using the Dataproc Auto Zone Placement (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the machine type resource, for example, n1-standard-2.
              &quot;diskConfig&quot;: { # Specifies the config of disk options for a group of VM instances. # Optional. Disk option config settings.
                &quot;bootDiskType&quot;: &quot;A String&quot;, # Optional. Type of the boot disk (default is &quot;pd-standard&quot;). Valid values: &quot;pd-ssd&quot; (Persistent Disk Solid State Drive) or &quot;pd-standard&quot; (Persistent Disk Hard Disk Drive).
                &quot;numLocalSsds&quot;: 42, # Optional. Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
                &quot;bootDiskSizeGb&quot;: 42, # Optional. Size in GB of the boot disk (default is 500GB).
              },
              &quot;numInstances&quot;: 42, # Optional. The number of VM instances in the instance group. For master instance groups, must be set to 1.
              &quot;instanceNames&quot;: [ # Output only. The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group.
                &quot;A String&quot;,
              ],
              &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
              &quot;preemptibility&quot;: &quot;A String&quot;, # Optional. Specifies the preemptibility of the instance group.The default value for master and worker groups is NON_PREEMPTIBLE. This default cannot be changed.The default value for secondary instances is PREEMPTIBLE.
              &quot;minCpuPlatform&quot;: &quot;A String&quot;, # Optional. Specifies the minimum cpu platform for the Instance Group. See Dataproc -&gt; Minimum CPU Platform (https://cloud.google.com/dataproc/docs/concepts/compute/dataproc-min-cpu).
              &quot;accelerators&quot;: [ # Optional. The Compute Engine accelerator configuration for these instances.
                { # Specifies the type and number of accelerator cards attached to the instances of an instance. See GPUs on Compute Engine (https://cloud.google.com/compute/docs/gpus/).
                  &quot;acceleratorTypeUri&quot;: &quot;A String&quot;, # Full URL, partial URI, or short name of the accelerator type resource to expose to this instance. See Compute Engine AcceleratorTypes (https://cloud.google.com/compute/docs/reference/beta/acceleratorTypes).Examples: https://www.googleapis.com/compute/beta/projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 nvidia-tesla-k80Auto Zone Exception: If you are using the Dataproc Auto Zone Placement (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the accelerator type resource, for example, nvidia-tesla-k80.
                  &quot;acceleratorCount&quot;: 42, # The number of the accelerator cards of this type exposed to this instance.
                },
              ],
              &quot;instanceReferences&quot;: [ # Output only. List of references to Compute Engine instances.
                { # A reference to a Compute Engine instance.
                  &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
                  &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
                },
              ],
            },
            &quot;workerConfig&quot;: { # The config settings for Compute Engine resources in an instance group, such as a master or worker group. # Optional. The Compute Engine config settings for worker instances in a cluster.
              &quot;managedGroupConfig&quot;: { # Specifies the resources used to actively manage an instance group. # Output only. The config for Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
                &quot;instanceGroupManagerName&quot;: &quot;A String&quot;, # Output only. The name of the Instance Group Manager for this group.
                &quot;instanceTemplateName&quot;: &quot;A String&quot;, # Output only. The name of the Instance Template used for the Managed Instance Group.
              },
              &quot;imageUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine image resource used for cluster instances.The URI can represent an image or image family.Image examples: https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/[image-id] projects/[project_id]/global/images/[image-id] image-idImage family examples. Dataproc will use the most recent image from the family: https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/family/[custom-image-family-name] projects/[project_id]/global/images/family/[custom-image-family-name]If the URI is unspecified, it will be inferred from SoftwareConfig.image_version or the system default.
              &quot;machineTypeUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine machine type used for cluster instances.A full URL, partial URI, or short name are valid. Examples: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2 projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2 n1-standard-2Auto Zone Exception: If you are using the Dataproc Auto Zone Placement (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the machine type resource, for example, n1-standard-2.
              &quot;diskConfig&quot;: { # Specifies the config of disk options for a group of VM instances. # Optional. Disk option config settings.
                &quot;bootDiskType&quot;: &quot;A String&quot;, # Optional. Type of the boot disk (default is &quot;pd-standard&quot;). Valid values: &quot;pd-ssd&quot; (Persistent Disk Solid State Drive) or &quot;pd-standard&quot; (Persistent Disk Hard Disk Drive).
                &quot;numLocalSsds&quot;: 42, # Optional. Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
                &quot;bootDiskSizeGb&quot;: 42, # Optional. Size in GB of the boot disk (default is 500GB).
              },
              &quot;numInstances&quot;: 42, # Optional. The number of VM instances in the instance group. For master instance groups, must be set to 1.
              &quot;instanceNames&quot;: [ # Output only. The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group.
                &quot;A String&quot;,
              ],
              &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
              &quot;preemptibility&quot;: &quot;A String&quot;, # Optional. Specifies the preemptibility of the instance group.The default value for master and worker groups is NON_PREEMPTIBLE. This default cannot be changed.The default value for secondary instances is PREEMPTIBLE.
              &quot;minCpuPlatform&quot;: &quot;A String&quot;, # Optional. Specifies the minimum cpu platform for the Instance Group. See Dataproc -&gt; Minimum CPU Platform (https://cloud.google.com/dataproc/docs/concepts/compute/dataproc-min-cpu).
              &quot;accelerators&quot;: [ # Optional. The Compute Engine accelerator configuration for these instances.
                { # Specifies the type and number of accelerator cards attached to the instances of an instance. See GPUs on Compute Engine (https://cloud.google.com/compute/docs/gpus/).
                  &quot;acceleratorTypeUri&quot;: &quot;A String&quot;, # Full URL, partial URI, or short name of the accelerator type resource to expose to this instance. See Compute Engine AcceleratorTypes (https://cloud.google.com/compute/docs/reference/beta/acceleratorTypes).Examples: https://www.googleapis.com/compute/beta/projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 nvidia-tesla-k80Auto Zone Exception: If you are using the Dataproc Auto Zone Placement (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the accelerator type resource, for example, nvidia-tesla-k80.
                  &quot;acceleratorCount&quot;: 42, # The number of the accelerator cards of this type exposed to this instance.
                },
              ],
              &quot;instanceReferences&quot;: [ # Output only. List of references to Compute Engine instances.
                { # A reference to a Compute Engine instance.
                  &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
                  &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
                },
              ],
            },
            &quot;encryptionConfig&quot;: { # Encryption settings for the cluster. # Optional. Encryption settings for the cluster.
              &quot;gcePdKmsKeyName&quot;: &quot;A String&quot;, # Optional. The Cloud KMS key name to use for PD disk encryption for all instances in the cluster.
            },
            &quot;securityConfig&quot;: { # Security related configuration, including Kerberos. # Optional. Security settings for the cluster.
              &quot;kerberosConfig&quot;: { # Specifies Kerberos related configuration. # Kerberos related configuration.
                &quot;crossRealmTrustKdc&quot;: &quot;A String&quot;, # Optional. The KDC (IP or hostname) for the remote trusted realm in a cross realm trust relationship.
                &quot;keyPasswordUri&quot;: &quot;A String&quot;, # 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 Dataproc.
                &quot;enableKerberos&quot;: True or False, # Optional. Flag to indicate whether to Kerberize the cluster (default: false). Set this field to true to enable Kerberos on a cluster.
                &quot;crossRealmTrustAdminServer&quot;: &quot;A String&quot;, # Optional. The admin server (IP or hostname) for the remote trusted realm in a cross realm trust relationship.
                &quot;truststoreUri&quot;: &quot;A String&quot;, # Optional. The Cloud Storage URI of the truststore file used for SSL encryption. If not provided, Dataproc will provide a self-signed certificate.
                &quot;rootPrincipalPasswordUri&quot;: &quot;A String&quot;, # Optional. The Cloud Storage URI of a KMS encrypted file containing the root principal password.
                &quot;kmsKeyUri&quot;: &quot;A String&quot;, # Optional. The uri of the KMS key used to encrypt various sensitive files.
                &quot;keystoreUri&quot;: &quot;A String&quot;, # Optional. The Cloud Storage URI of the keystore file used for SSL encryption. If not provided, Dataproc will provide a self-signed certificate.
                &quot;crossRealmTrustSharedPasswordUri&quot;: &quot;A String&quot;, # 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.
                &quot;truststorePasswordUri&quot;: &quot;A String&quot;, # 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 Dataproc.
                &quot;crossRealmTrustRealm&quot;: &quot;A String&quot;, # Optional. The remote realm the Dataproc on-cluster KDC will trust, should the user enable cross realm trust.
                &quot;keystorePasswordUri&quot;: &quot;A String&quot;, # 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 Dataproc.
                &quot;realm&quot;: &quot;A String&quot;, # Optional. The name of the on-cluster Kerberos realm. If not specified, the uppercased domain of hostnames will be the realm.
                &quot;kdcDbKeyUri&quot;: &quot;A String&quot;, # Optional. The Cloud Storage URI of a KMS encrypted file containing the master key of the KDC database.
                &quot;tgtLifetimeHours&quot;: 42, # Optional. The lifetime of the ticket granting ticket, in hours. If not specified, or user specifies 0, then default value 10 will be used.
              },
            },
            &quot;autoscalingConfig&quot;: { # Autoscaling Policy config associated with the cluster. # Optional. Autoscaling config for the policy associated with the cluster. Cluster does not autoscale if this field is unset.
              &quot;policyUri&quot;: &quot;A String&quot;, # 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/[project_id]/locations/[dataproc_region]/autoscalingPolicies/[policy_id] projects/[project_id]/locations/[dataproc_region]/autoscalingPolicies/[policy_id]Note that the policy must be in the same project and Dataproc region.
            },
            &quot;gceClusterConfig&quot;: { # Common config settings for resources of Compute Engine cluster instances, applicable to all instances in the cluster. # Optional. The shared Compute Engine config settings for all instances in a cluster.
              &quot;internalIpOnly&quot;: True or False, # Optional. If true, all instances in the cluster will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This internal_ip_only restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
              &quot;zoneUri&quot;: &quot;A String&quot;, # Optional. The zone where the Compute Engine cluster will be located. On a create request, it is required in the &quot;global&quot; region. If omitted in a non-global Dataproc region, the service will pick a zone in the corresponding 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/[project_id]/zones/[zone] projects/[project_id]/zones/[zone] us-central1-f
              &quot;tags&quot;: [ # The Compute Engine tags to add to all instances (see Tagging instances (https://cloud.google.com/compute/docs/label-or-tag-resources#tags)).
                &quot;A String&quot;,
              ],
              &quot;metadata&quot;: { # 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)).
                &quot;a_key&quot;: &quot;A String&quot;,
              },
              &quot;subnetworkUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine subnetwork to be used for machine communications. Cannot be specified with network_uri.A full URL, partial URI, or short name are valid. Examples: https://www.googleapis.com/compute/v1/projects/[project_id]/regions/us-east1/subnetworks/sub0 projects/[project_id]/regions/us-east1/subnetworks/sub0 sub0
              &quot;serviceAccount&quot;: &quot;A String&quot;, # Optional. The Dataproc 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 Dataproc 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.
              &quot;privateIpv6GoogleAccess&quot;: &quot;A String&quot;, # Optional. The type of IPv6 access for a cluster.
              &quot;serviceAccountScopes&quot;: [ # 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.writeIf 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
                &quot;A String&quot;,
              ],
              &quot;reservationAffinity&quot;: { # Reservation Affinity for consuming Zonal reservation. # Optional. Reservation Affinity for consuming Zonal reservation.
                &quot;values&quot;: [ # Optional. Corresponds to the label values of reservation resource.
                  &quot;A String&quot;,
                ],
                &quot;key&quot;: &quot;A String&quot;, # Optional. Corresponds to the label key of reservation resource.
                &quot;consumeReservationType&quot;: &quot;A String&quot;, # Optional. Type of reservation to consume
              },
              &quot;networkUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither network_uri nor subnetwork_uri is specified, the &quot;default&quot; network of the project is used, if it exists. Cannot be a &quot;Custom Subnet Network&quot; (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/[project_id]/regions/global/default projects/[project_id]/regions/global/default default
              &quot;nodeGroupAffinity&quot;: { # Node Group Affinity for clusters using sole-tenant node groups. # Optional. Node Group Affinity for sole-tenant clusters.
                &quot;nodeGroupUri&quot;: &quot;A String&quot;, # 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/[project_id]/zones/us-central1-a/nodeGroups/node-group-1 projects/[project_id]/zones/us-central1-a/nodeGroups/node-group-1 node-group-1
              },
            },
            &quot;endpointConfig&quot;: { # Endpoint config for this cluster # Optional. Port/endpoint configuration for this cluster
              &quot;httpPorts&quot;: { # Output only. The map of port descriptions to URLs. Will only be populated if enable_http_port_access is true.
                &quot;a_key&quot;: &quot;A String&quot;,
              },
              &quot;enableHttpPortAccess&quot;: True or False, # Optional. If true, enable http access to specific ports on the cluster from external sources. Defaults to false.
            },
          },
          &quot;labels&quot;: { # Optional. The labels to associate with this cluster.Label keys must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 32 labels can be associated with a given cluster.
            &quot;a_key&quot;: &quot;A String&quot;,
          },
          &quot;clusterName&quot;: &quot;A String&quot;, # Required. The cluster name prefix. A unique cluster name will be formed by appending a random suffix.The name must contain only lower-case letters (a-z), numbers (0-9), and hyphens (-). Must begin with a letter. Cannot begin or end with hyphen. Must consist of between 2 and 35 characters.
        },
      },
      &quot;version&quot;: 42, # Optional. Used to perform a consistent read-modify-write.This field should be left blank for a CreateWorkflowTemplate request. It is required for an UpdateWorkflowTemplate request, and must match the current server version. A typical update template flow would fetch the current template with a GetWorkflowTemplate request, which will return the current template with the version field filled in with the current server version. The user updates other fields in the template, then returns it as part of the UpdateWorkflowTemplate request.
      &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time template was created.
      &quot;parameters&quot;: [ # Optional. Template parameters whose values are substituted into the template. Values for parameters must be provided when the template is instantiated.
        { # A configurable parameter that replaces one or more fields in the template. Parameterizable fields: - Labels - File uris - Job properties - Job arguments - Script variables - Main class (in HadoopJob and SparkJob) - Zone (in ClusterSelector)
          &quot;validation&quot;: { # Configuration for parameter validation. # Optional. Validation rules to be applied to this parameter&#x27;s value.
            &quot;values&quot;: { # Validation based on a list of allowed values. # Validation based on a list of allowed values.
              &quot;values&quot;: [ # Required. List of allowed values for the parameter.
                &quot;A String&quot;,
              ],
            },
            &quot;regex&quot;: { # Validation based on regular expressions. # Validation based on regular expressions.
              &quot;regexes&quot;: [ # Required. RE2 regular expressions used to validate the parameter&#x27;s value. The value must match the regex in its entirety (substring matches are not sufficient).
                &quot;A String&quot;,
              ],
            },
          },
          &quot;fields&quot;: [ # Required. Paths to all fields that the parameter replaces. A field is allowed to appear in at most one parameter&#x27;s list of field paths.A field path is similar in syntax to a google.protobuf.FieldMask. For example, a field path that references the zone field of a workflow template&#x27;s cluster selector would be specified as placement.clusterSelector.zone.Also, field paths can reference fields using the following syntax: Values in maps can be referenced by key: labels&#x27;key&#x27; placement.clusterSelector.clusterLabels&#x27;key&#x27; placement.managedCluster.labels&#x27;key&#x27; placement.clusterSelector.clusterLabels&#x27;key&#x27; jobs&#x27;step-id&#x27;.labels&#x27;key&#x27; Jobs in the jobs list can be referenced by step-id: jobs&#x27;step-id&#x27;.hadoopJob.mainJarFileUri jobs&#x27;step-id&#x27;.hiveJob.queryFileUri jobs&#x27;step-id&#x27;.pySparkJob.mainPythonFileUri jobs&#x27;step-id&#x27;.hadoopJob.jarFileUris0 jobs&#x27;step-id&#x27;.hadoopJob.archiveUris0 jobs&#x27;step-id&#x27;.hadoopJob.fileUris0 jobs&#x27;step-id&#x27;.pySparkJob.pythonFileUris0 Items in repeated fields can be referenced by a zero-based index: jobs&#x27;step-id&#x27;.sparkJob.args0 Other examples: jobs&#x27;step-id&#x27;.hadoopJob.properties&#x27;key&#x27; jobs&#x27;step-id&#x27;.hadoopJob.args0 jobs&#x27;step-id&#x27;.hiveJob.scriptVariables&#x27;key&#x27; jobs&#x27;step-id&#x27;.hadoopJob.mainJarFileUri placement.clusterSelector.zoneIt may not be possible to parameterize maps and repeated fields in their entirety since only individual map values and individual items in repeated fields can be referenced. For example, the following field paths are invalid: placement.clusterSelector.clusterLabels jobs&#x27;step-id&#x27;.sparkJob.args
            &quot;A String&quot;,
          ],
          &quot;name&quot;: &quot;A String&quot;, # Required. Parameter name. The parameter name is used as the key, and paired with the parameter value, which are passed to the template when the template is instantiated. The name must contain only capital letters (A-Z), numbers (0-9), and underscores (_), and must not start with a number. The maximum length is 40 characters.
          &quot;description&quot;: &quot;A String&quot;, # Optional. Brief description of the parameter. Must not exceed 1024 characters.
        },
      ],
      &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of the workflow template, as described in https://cloud.google.com/apis/design/resource_names. For projects.regions.workflowTemplates, the resource name of the template has the following format: projects/{project_id}/regions/{region}/workflowTemplates/{template_id} For projects.locations.workflowTemplates, the resource name of the template has the following format: projects/{project_id}/locations/{location}/workflowTemplates/{template_id}
      &quot;jobs&quot;: [ # Required. The Directed Acyclic Graph of Jobs to submit.
        { # A job executed by the workflow.
          &quot;stepId&quot;: &quot;A String&quot;, # Required. The step id. The id must be unique among all jobs within the template.The step id is used as prefix for job id, as job goog-dataproc-workflow-step-id label, and in prerequisiteStepIds field from other steps.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 between 3 and 50 characters.
          &quot;pigJob&quot;: { # A Dataproc job for running Apache Pig (https://pig.apache.org/) queries on YARN. # Optional. Job is a Pig job.
            &quot;properties&quot;: { # Optional. A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
              &quot;a_key&quot;: &quot;A String&quot;,
            },
            &quot;scriptVariables&quot;: { # Optional. Mapping of query variable names to values (equivalent to the Pig command: name=[value]).
              &quot;a_key&quot;: &quot;A String&quot;,
            },
            &quot;jarFileUris&quot;: [ # Optional. HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
              &quot;A String&quot;,
            ],
            &quot;loggingConfig&quot;: { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
              &quot;driverLogLevels&quot;: { # The per-package log levels for the driver. This may include &quot;root&quot; package name to configure rootLogger. Examples: &#x27;com.google = FATAL&#x27;, &#x27;root = INFO&#x27;, &#x27;org.apache = DEBUG&#x27;
                &quot;a_key&quot;: &quot;A String&quot;,
              },
            },
            &quot;queryList&quot;: { # A list of queries to run on a cluster. # A list of queries.
              &quot;queries&quot;: [ # Required. The queries to execute. You do not need to end a query expression with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of a Dataproc API snippet that uses a QueryList to specify a HiveJob: &quot;hiveJob&quot;: { &quot;queryList&quot;: { &quot;queries&quot;: [ &quot;query1&quot;, &quot;query2&quot;, &quot;query3;query4&quot;, ] } }
                &quot;A String&quot;,
              ],
            },
            &quot;continueOnFailure&quot;: True or False, # Optional. Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
            &quot;queryFileUri&quot;: &quot;A String&quot;, # The HCFS URI of the script that contains the Pig queries.
          },
          &quot;sparkJob&quot;: { # A Dataproc job for running Apache Spark (http://spark.apache.org/) applications on YARN. # Optional. Job is a Spark job.
            &quot;loggingConfig&quot;: { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
              &quot;driverLogLevels&quot;: { # The per-package log levels for the driver. This may include &quot;root&quot; package name to configure rootLogger. Examples: &#x27;com.google = FATAL&#x27;, &#x27;root = INFO&#x27;, &#x27;org.apache = DEBUG&#x27;
                &quot;a_key&quot;: &quot;A String&quot;,
              },
            },
            &quot;archiveUris&quot;: [ # Optional. HCFS URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
              &quot;A String&quot;,
            ],
            &quot;jarFileUris&quot;: [ # Optional. HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
              &quot;A String&quot;,
            ],
            &quot;properties&quot;: { # Optional. A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
              &quot;a_key&quot;: &quot;A String&quot;,
            },
            &quot;mainClass&quot;: &quot;A String&quot;, # The name of the driver&#x27;s main class. The jar file that contains the class must be in the default CLASSPATH or specified in jar_file_uris.
            &quot;mainJarFileUri&quot;: &quot;A String&quot;, # The HCFS URI of the jar file that contains the main class.
            &quot;args&quot;: [ # Optional. The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
              &quot;A String&quot;,
            ],
            &quot;fileUris&quot;: [ # Optional. HCFS URIs of files to be placed in the working directory of each executor. Useful for naively parallel tasks.
              &quot;A String&quot;,
            ],
          },
          &quot;pysparkJob&quot;: { # A Dataproc job for running Apache PySpark (https://spark.apache.org/docs/0.9.0/python-programming-guide.html) applications on YARN. # Optional. Job is a PySpark job.
            &quot;loggingConfig&quot;: { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
              &quot;driverLogLevels&quot;: { # The per-package log levels for the driver. This may include &quot;root&quot; package name to configure rootLogger. Examples: &#x27;com.google = FATAL&#x27;, &#x27;root = INFO&#x27;, &#x27;org.apache = DEBUG&#x27;
                &quot;a_key&quot;: &quot;A String&quot;,
              },
            },
            &quot;mainPythonFileUri&quot;: &quot;A String&quot;, # Required. The HCFS URI of the main Python file to use as the driver. Must be a .py file.
            &quot;pythonFileUris&quot;: [ # Optional. HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
              &quot;A String&quot;,
            ],
            &quot;args&quot;: [ # Optional. The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
              &quot;A String&quot;,
            ],
            &quot;properties&quot;: { # Optional. A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
              &quot;a_key&quot;: &quot;A String&quot;,
            },
            &quot;jarFileUris&quot;: [ # Optional. HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
              &quot;A String&quot;,
            ],
            &quot;archiveUris&quot;: [ # Optional. HCFS URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
              &quot;A String&quot;,
            ],
            &quot;fileUris&quot;: [ # Optional. HCFS URIs of files to be placed in the working directory of each executor. Useful for naively parallel tasks.
              &quot;A String&quot;,
            ],
          },
          &quot;scheduling&quot;: { # Job scheduling options. # Optional. Job scheduling configuration.
            &quot;maxFailuresTotal&quot;: 42, # Optional. Maximum number of times in total a driver may be restarted as a result of driver exiting with non-zero code before job is reported failed. Maximum value is 240
            &quot;maxFailuresPerHour&quot;: 42, # Optional. Maximum number of times per hour a driver may be restarted as a result of driver exiting with non-zero code before job is reported failed.A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window.Maximum value is 10.
          },
          &quot;sparkSqlJob&quot;: { # A Dataproc job for running Apache Spark SQL (http://spark.apache.org/sql/) queries. # Optional. Job is a SparkSql job.
            &quot;queryFileUri&quot;: &quot;A String&quot;, # The HCFS URI of the script that contains SQL queries.
            &quot;loggingConfig&quot;: { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
              &quot;driverLogLevels&quot;: { # The per-package log levels for the driver. This may include &quot;root&quot; package name to configure rootLogger. Examples: &#x27;com.google = FATAL&#x27;, &#x27;root = INFO&#x27;, &#x27;org.apache = DEBUG&#x27;
                &quot;a_key&quot;: &quot;A String&quot;,
              },
            },
            &quot;scriptVariables&quot;: { # Optional. Mapping of query variable names to values (equivalent to the Spark SQL command: SET name=&quot;value&quot;;).
              &quot;a_key&quot;: &quot;A String&quot;,
            },
            &quot;queryList&quot;: { # A list of queries to run on a cluster. # A list of queries.
              &quot;queries&quot;: [ # Required. The queries to execute. You do not need to end a query expression with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of a Dataproc API snippet that uses a QueryList to specify a HiveJob: &quot;hiveJob&quot;: { &quot;queryList&quot;: { &quot;queries&quot;: [ &quot;query1&quot;, &quot;query2&quot;, &quot;query3;query4&quot;, ] } }
                &quot;A String&quot;,
              ],
            },
            &quot;properties&quot;: { # Optional. A mapping of property names to values, used to configure Spark SQL&#x27;s SparkConf. Properties that conflict with values set by the Dataproc API may be overwritten.
              &quot;a_key&quot;: &quot;A String&quot;,
            },
            &quot;jarFileUris&quot;: [ # Optional. HCFS URIs of jar files to be added to the Spark CLASSPATH.
              &quot;A String&quot;,
            ],
          },
          &quot;hiveJob&quot;: { # A Dataproc job for running Apache Hive (https://hive.apache.org/) queries on YARN. # Optional. Job is a Hive job.
            &quot;jarFileUris&quot;: [ # Optional. HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
              &quot;A String&quot;,
            ],
            &quot;continueOnFailure&quot;: True or False, # Optional. Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
            &quot;properties&quot;: { # Optional. A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
              &quot;a_key&quot;: &quot;A String&quot;,
            },
            &quot;queryList&quot;: { # A list of queries to run on a cluster. # A list of queries.
              &quot;queries&quot;: [ # Required. The queries to execute. You do not need to end a query expression with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of a Dataproc API snippet that uses a QueryList to specify a HiveJob: &quot;hiveJob&quot;: { &quot;queryList&quot;: { &quot;queries&quot;: [ &quot;query1&quot;, &quot;query2&quot;, &quot;query3;query4&quot;, ] } }
                &quot;A String&quot;,
              ],
            },
            &quot;scriptVariables&quot;: { # Optional. Mapping of query variable names to values (equivalent to the Hive command: SET name=&quot;value&quot;;).
              &quot;a_key&quot;: &quot;A String&quot;,
            },
            &quot;queryFileUri&quot;: &quot;A String&quot;, # The HCFS URI of the script that contains Hive queries.
          },
          &quot;prestoJob&quot;: { # A Dataproc job for running Presto (https://prestosql.io/) queries. IMPORTANT: The Dataproc Presto Optional Component (https://cloud.google.com/dataproc/docs/concepts/components/presto) must be enabled when the cluster is created to submit a Presto job to the cluster. # Optional. Job is a Presto job.
            &quot;properties&quot;: { # Optional. A mapping of property names to values. Used to set Presto session properties (https://prestodb.io/docs/current/sql/set-session.html) Equivalent to using the --session flag in the Presto CLI
              &quot;a_key&quot;: &quot;A String&quot;,
            },
            &quot;clientTags&quot;: [ # Optional. Presto client tags to attach to this query
              &quot;A String&quot;,
            ],
            &quot;queryFileUri&quot;: &quot;A String&quot;, # The HCFS URI of the script that contains SQL queries.
            &quot;queryList&quot;: { # A list of queries to run on a cluster. # A list of queries.
              &quot;queries&quot;: [ # Required. The queries to execute. You do not need to end a query expression with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of a Dataproc API snippet that uses a QueryList to specify a HiveJob: &quot;hiveJob&quot;: { &quot;queryList&quot;: { &quot;queries&quot;: [ &quot;query1&quot;, &quot;query2&quot;, &quot;query3;query4&quot;, ] } }
                &quot;A String&quot;,
              ],
            },
            &quot;outputFormat&quot;: &quot;A String&quot;, # Optional. The format in which query output will be displayed. See the Presto documentation for supported output formats
            &quot;continueOnFailure&quot;: True or False, # Optional. Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
            &quot;loggingConfig&quot;: { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
              &quot;driverLogLevels&quot;: { # The per-package log levels for the driver. This may include &quot;root&quot; package name to configure rootLogger. Examples: &#x27;com.google = FATAL&#x27;, &#x27;root = INFO&#x27;, &#x27;org.apache = DEBUG&#x27;
                &quot;a_key&quot;: &quot;A String&quot;,
              },
            },
          },
          &quot;hadoopJob&quot;: { # A Dataproc job for running Apache Hadoop MapReduce (https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html) jobs on Apache Hadoop YARN (https://hadoop.apache.org/docs/r2.7.1/hadoop-yarn/hadoop-yarn-site/YARN.html). # Optional. Job is a Hadoop job.
            &quot;fileUris&quot;: [ # Optional. HCFS (Hadoop Compatible Filesystem) URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
              &quot;A String&quot;,
            ],
            &quot;mainClass&quot;: &quot;A String&quot;, # The name of the driver&#x27;s main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
            &quot;args&quot;: [ # Optional. The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
              &quot;A String&quot;,
            ],
            &quot;mainJarFileUri&quot;: &quot;A String&quot;, # The HCFS URI of the jar file containing the main class. Examples: &#x27;gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar&#x27; &#x27;hdfs:/tmp/test-samples/custom-wordcount.jar&#x27; &#x27;file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar&#x27;
            &quot;jarFileUris&quot;: [ # Optional. Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
              &quot;A String&quot;,
            ],
            &quot;archiveUris&quot;: [ # Optional. HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
              &quot;A String&quot;,
            ],
            &quot;properties&quot;: { # Optional. A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
              &quot;a_key&quot;: &quot;A String&quot;,
            },
            &quot;loggingConfig&quot;: { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
              &quot;driverLogLevels&quot;: { # The per-package log levels for the driver. This may include &quot;root&quot; package name to configure rootLogger. Examples: &#x27;com.google = FATAL&#x27;, &#x27;root = INFO&#x27;, &#x27;org.apache = DEBUG&#x27;
                &quot;a_key&quot;: &quot;A String&quot;,
              },
            },
          },
          &quot;sparkRJob&quot;: { # A Dataproc job for running Apache SparkR (https://spark.apache.org/docs/latest/sparkr.html) applications on YARN. # Optional. Job is a SparkR job.
            &quot;properties&quot;: { # Optional. A mapping of property names to values, used to configure SparkR. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
              &quot;a_key&quot;: &quot;A String&quot;,
            },
            &quot;loggingConfig&quot;: { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
              &quot;driverLogLevels&quot;: { # The per-package log levels for the driver. This may include &quot;root&quot; package name to configure rootLogger. Examples: &#x27;com.google = FATAL&#x27;, &#x27;root = INFO&#x27;, &#x27;org.apache = DEBUG&#x27;
                &quot;a_key&quot;: &quot;A String&quot;,
              },
            },
            &quot;mainRFileUri&quot;: &quot;A String&quot;, # Required. The HCFS URI of the main R file to use as the driver. Must be a .R file.
            &quot;archiveUris&quot;: [ # Optional. HCFS URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
              &quot;A String&quot;,
            ],
            &quot;fileUris&quot;: [ # Optional. HCFS URIs of files to be placed in the working directory of each executor. Useful for naively parallel tasks.
              &quot;A String&quot;,
            ],
            &quot;args&quot;: [ # Optional. The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
              &quot;A String&quot;,
            ],
          },
          &quot;prerequisiteStepIds&quot;: [ # Optional. The optional list of prerequisite job step_ids. If not specified, the job will start at the beginning of workflow.
            &quot;A String&quot;,
          ],
          &quot;labels&quot;: { # Optional. The labels to associate with this job.Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 32 labels can be associated with a given job.
            &quot;a_key&quot;: &quot;A String&quot;,
          },
        },
      ],
    }</pre>
</div>

<div class="method">
    <code class="details" id="delete">delete(name, version=None, x__xgafv=None)</code>
  <pre>Deletes a workflow template. It does not cancel in-progress workflows.

Args:
  name: string, Required. The resource name of the workflow template, as described in https://cloud.google.com/apis/design/resource_names. For projects.regions.workflowTemplates.delete, the resource name of the template has the following format: projects/{project_id}/regions/{region}/workflowTemplates/{template_id} For projects.locations.workflowTemplates.instantiate, the resource name of the template has the following format: projects/{project_id}/locations/{location}/workflowTemplates/{template_id} (required)
  version: integer, Optional. The version of workflow template to delete. If specified, will only delete the template if the current server version matches specified version.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for Empty is empty JSON object {}.
  }</pre>
</div>

<div class="method">
    <code class="details" id="get">get(name, version=None, x__xgafv=None)</code>
  <pre>Retrieves the latest workflow template.Can retrieve previously instantiated template by specifying optional version parameter.

Args:
  name: string, Required. The resource name of the workflow template, as described in https://cloud.google.com/apis/design/resource_names. For projects.regions.workflowTemplates.get, the resource name of the template has the following format: projects/{project_id}/regions/{region}/workflowTemplates/{template_id} For projects.locations.workflowTemplates.get, the resource name of the template has the following format: projects/{project_id}/locations/{location}/workflowTemplates/{template_id} (required)
  version: integer, Optional. The version of workflow template to retrieve. Only previously instantiated versions can be retrieved.If unspecified, retrieves the current version.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A Dataproc workflow template resource.
      &quot;id&quot;: &quot;A String&quot;,
      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time template was last updated.
      &quot;labels&quot;: { # Optional. The labels to associate with this template. These labels will be propagated to all jobs and clusters created by the workflow instance.Label keys must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt).Label values may be empty, but, if present, must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt).No more than 32 labels can be associated with a template.
        &quot;a_key&quot;: &quot;A String&quot;,
      },
      &quot;placement&quot;: { # Specifies workflow execution target.Either managed_cluster or cluster_selector is required. # Required. WorkflowTemplate scheduling information.
        &quot;clusterSelector&quot;: { # A selector that chooses target cluster for jobs based on metadata. # Optional. A selector that chooses target cluster for jobs based on metadata.The selector is evaluated at the time each job is submitted.
          &quot;zone&quot;: &quot;A String&quot;, # Optional. The zone where workflow process executes. This parameter does not affect the selection of the cluster.If unspecified, the zone of the first cluster matching the selector is used.
          &quot;clusterLabels&quot;: { # Required. The cluster labels. Cluster must have all labels to match.
            &quot;a_key&quot;: &quot;A String&quot;,
          },
        },
        &quot;managedCluster&quot;: { # Cluster that is managed by the workflow. # A cluster that is managed by the workflow.
          &quot;config&quot;: { # The cluster config. # Required. The cluster configuration.
            &quot;tempBucket&quot;: &quot;A String&quot;, # 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, Dataproc will determine a Cloud Storage location (US, ASIA, or EU) for your cluster&#x27;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.
            &quot;lifecycleConfig&quot;: { # Specifies the cluster auto-delete schedule configuration. # Optional. Lifecycle setting for the cluster.
              &quot;autoDeleteTime&quot;: &quot;A String&quot;, # Optional. The time when cluster will be auto-deleted (see JSON representation of Timestamp (https://developers.google.com/protocol-buffers/docs/proto3#json)).
              &quot;idleStartTime&quot;: &quot;A String&quot;, # 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)).
              &quot;idleDeleteTtl&quot;: &quot;A String&quot;, # 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).
              &quot;autoDeleteTtl&quot;: &quot;A String&quot;, # 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)).
            },
            &quot;masterConfig&quot;: { # The config settings for Compute Engine resources in an instance group, such as a master or worker group. # Optional. The Compute Engine config settings for the master instance in a cluster.
              &quot;managedGroupConfig&quot;: { # Specifies the resources used to actively manage an instance group. # Output only. The config for Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
                &quot;instanceGroupManagerName&quot;: &quot;A String&quot;, # Output only. The name of the Instance Group Manager for this group.
                &quot;instanceTemplateName&quot;: &quot;A String&quot;, # Output only. The name of the Instance Template used for the Managed Instance Group.
              },
              &quot;imageUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine image resource used for cluster instances.The URI can represent an image or image family.Image examples: https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/[image-id] projects/[project_id]/global/images/[image-id] image-idImage family examples. Dataproc will use the most recent image from the family: https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/family/[custom-image-family-name] projects/[project_id]/global/images/family/[custom-image-family-name]If the URI is unspecified, it will be inferred from SoftwareConfig.image_version or the system default.
              &quot;machineTypeUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine machine type used for cluster instances.A full URL, partial URI, or short name are valid. Examples: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2 projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2 n1-standard-2Auto Zone Exception: If you are using the Dataproc Auto Zone Placement (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the machine type resource, for example, n1-standard-2.
              &quot;diskConfig&quot;: { # Specifies the config of disk options for a group of VM instances. # Optional. Disk option config settings.
                &quot;bootDiskType&quot;: &quot;A String&quot;, # Optional. Type of the boot disk (default is &quot;pd-standard&quot;). Valid values: &quot;pd-ssd&quot; (Persistent Disk Solid State Drive) or &quot;pd-standard&quot; (Persistent Disk Hard Disk Drive).
                &quot;numLocalSsds&quot;: 42, # Optional. Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
                &quot;bootDiskSizeGb&quot;: 42, # Optional. Size in GB of the boot disk (default is 500GB).
              },
              &quot;numInstances&quot;: 42, # Optional. The number of VM instances in the instance group. For master instance groups, must be set to 1.
              &quot;instanceNames&quot;: [ # Output only. The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group.
                &quot;A String&quot;,
              ],
              &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
              &quot;preemptibility&quot;: &quot;A String&quot;, # Optional. Specifies the preemptibility of the instance group.The default value for master and worker groups is NON_PREEMPTIBLE. This default cannot be changed.The default value for secondary instances is PREEMPTIBLE.
              &quot;minCpuPlatform&quot;: &quot;A String&quot;, # Optional. Specifies the minimum cpu platform for the Instance Group. See Dataproc -&gt; Minimum CPU Platform (https://cloud.google.com/dataproc/docs/concepts/compute/dataproc-min-cpu).
              &quot;accelerators&quot;: [ # Optional. The Compute Engine accelerator configuration for these instances.
                { # Specifies the type and number of accelerator cards attached to the instances of an instance. See GPUs on Compute Engine (https://cloud.google.com/compute/docs/gpus/).
                  &quot;acceleratorTypeUri&quot;: &quot;A String&quot;, # Full URL, partial URI, or short name of the accelerator type resource to expose to this instance. See Compute Engine AcceleratorTypes (https://cloud.google.com/compute/docs/reference/beta/acceleratorTypes).Examples: https://www.googleapis.com/compute/beta/projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 nvidia-tesla-k80Auto Zone Exception: If you are using the Dataproc Auto Zone Placement (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the accelerator type resource, for example, nvidia-tesla-k80.
                  &quot;acceleratorCount&quot;: 42, # The number of the accelerator cards of this type exposed to this instance.
                },
              ],
              &quot;instanceReferences&quot;: [ # Output only. List of references to Compute Engine instances.
                { # A reference to a Compute Engine instance.
                  &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
                  &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
                },
              ],
            },
            &quot;softwareConfig&quot;: { # Specifies the selection and config of software inside the cluster. # Optional. The config settings for software inside the cluster.
              &quot;properties&quot;: { # 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.xmlFor more information, see Cluster properties (https://cloud.google.com/dataproc/docs/concepts/cluster-properties).
                &quot;a_key&quot;: &quot;A String&quot;,
              },
              &quot;imageVersion&quot;: &quot;A String&quot;, # Optional. The version of software inside the cluster. It must be one of the supported Dataproc Versions (https://cloud.google.com/dataproc/docs/concepts/versioning/dataproc-versions#supported_dataproc_versions), such as &quot;1.2&quot; (including a subminor version, such as &quot;1.2.29&quot;), or the &quot;preview&quot; version (https://cloud.google.com/dataproc/docs/concepts/versioning/dataproc-versions#other_versions). If unspecified, it defaults to the latest Debian version.
              &quot;optionalComponents&quot;: [ # Optional. The set of components to activate on the cluster.
                &quot;A String&quot;,
              ],
            },
            &quot;configBucket&quot;: &quot;A String&quot;, # 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, Cloud Dataproc will determine a Cloud Storage location (US, ASIA, or EU) for your cluster&#x27;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 Dataproc staging bucket (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/staging-bucket)).
            &quot;initializationActions&quot;: [ # 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&#x27;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 [[ &quot;${ROLE}&quot; == &#x27;Master&#x27; ]]; then ... master specific actions ... else ... worker specific actions ... fi
              { # Specifies an executable to run on a fully configured node and a timeout period for executable completion.
                &quot;executionTimeout&quot;: &quot;A String&quot;, # 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.
                &quot;executableFile&quot;: &quot;A String&quot;, # Required. Cloud Storage URI of executable file.
              },
            ],
            &quot;secondaryWorkerConfig&quot;: { # The config settings for Compute Engine resources in an instance group, such as a master or worker group. # Optional. The Compute Engine config settings for additional worker instances in a cluster.
              &quot;managedGroupConfig&quot;: { # Specifies the resources used to actively manage an instance group. # Output only. The config for Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
                &quot;instanceGroupManagerName&quot;: &quot;A String&quot;, # Output only. The name of the Instance Group Manager for this group.
                &quot;instanceTemplateName&quot;: &quot;A String&quot;, # Output only. The name of the Instance Template used for the Managed Instance Group.
              },
              &quot;imageUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine image resource used for cluster instances.The URI can represent an image or image family.Image examples: https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/[image-id] projects/[project_id]/global/images/[image-id] image-idImage family examples. Dataproc will use the most recent image from the family: https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/family/[custom-image-family-name] projects/[project_id]/global/images/family/[custom-image-family-name]If the URI is unspecified, it will be inferred from SoftwareConfig.image_version or the system default.
              &quot;machineTypeUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine machine type used for cluster instances.A full URL, partial URI, or short name are valid. Examples: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2 projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2 n1-standard-2Auto Zone Exception: If you are using the Dataproc Auto Zone Placement (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the machine type resource, for example, n1-standard-2.
              &quot;diskConfig&quot;: { # Specifies the config of disk options for a group of VM instances. # Optional. Disk option config settings.
                &quot;bootDiskType&quot;: &quot;A String&quot;, # Optional. Type of the boot disk (default is &quot;pd-standard&quot;). Valid values: &quot;pd-ssd&quot; (Persistent Disk Solid State Drive) or &quot;pd-standard&quot; (Persistent Disk Hard Disk Drive).
                &quot;numLocalSsds&quot;: 42, # Optional. Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
                &quot;bootDiskSizeGb&quot;: 42, # Optional. Size in GB of the boot disk (default is 500GB).
              },
              &quot;numInstances&quot;: 42, # Optional. The number of VM instances in the instance group. For master instance groups, must be set to 1.
              &quot;instanceNames&quot;: [ # Output only. The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group.
                &quot;A String&quot;,
              ],
              &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
              &quot;preemptibility&quot;: &quot;A String&quot;, # Optional. Specifies the preemptibility of the instance group.The default value for master and worker groups is NON_PREEMPTIBLE. This default cannot be changed.The default value for secondary instances is PREEMPTIBLE.
              &quot;minCpuPlatform&quot;: &quot;A String&quot;, # Optional. Specifies the minimum cpu platform for the Instance Group. See Dataproc -&gt; Minimum CPU Platform (https://cloud.google.com/dataproc/docs/concepts/compute/dataproc-min-cpu).
              &quot;accelerators&quot;: [ # Optional. The Compute Engine accelerator configuration for these instances.
                { # Specifies the type and number of accelerator cards attached to the instances of an instance. See GPUs on Compute Engine (https://cloud.google.com/compute/docs/gpus/).
                  &quot;acceleratorTypeUri&quot;: &quot;A String&quot;, # Full URL, partial URI, or short name of the accelerator type resource to expose to this instance. See Compute Engine AcceleratorTypes (https://cloud.google.com/compute/docs/reference/beta/acceleratorTypes).Examples: https://www.googleapis.com/compute/beta/projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 nvidia-tesla-k80Auto Zone Exception: If you are using the Dataproc Auto Zone Placement (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the accelerator type resource, for example, nvidia-tesla-k80.
                  &quot;acceleratorCount&quot;: 42, # The number of the accelerator cards of this type exposed to this instance.
                },
              ],
              &quot;instanceReferences&quot;: [ # Output only. List of references to Compute Engine instances.
                { # A reference to a Compute Engine instance.
                  &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
                  &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
                },
              ],
            },
            &quot;workerConfig&quot;: { # The config settings for Compute Engine resources in an instance group, such as a master or worker group. # Optional. The Compute Engine config settings for worker instances in a cluster.
              &quot;managedGroupConfig&quot;: { # Specifies the resources used to actively manage an instance group. # Output only. The config for Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
                &quot;instanceGroupManagerName&quot;: &quot;A String&quot;, # Output only. The name of the Instance Group Manager for this group.
                &quot;instanceTemplateName&quot;: &quot;A String&quot;, # Output only. The name of the Instance Template used for the Managed Instance Group.
              },
              &quot;imageUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine image resource used for cluster instances.The URI can represent an image or image family.Image examples: https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/[image-id] projects/[project_id]/global/images/[image-id] image-idImage family examples. Dataproc will use the most recent image from the family: https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/family/[custom-image-family-name] projects/[project_id]/global/images/family/[custom-image-family-name]If the URI is unspecified, it will be inferred from SoftwareConfig.image_version or the system default.
              &quot;machineTypeUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine machine type used for cluster instances.A full URL, partial URI, or short name are valid. Examples: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2 projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2 n1-standard-2Auto Zone Exception: If you are using the Dataproc Auto Zone Placement (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the machine type resource, for example, n1-standard-2.
              &quot;diskConfig&quot;: { # Specifies the config of disk options for a group of VM instances. # Optional. Disk option config settings.
                &quot;bootDiskType&quot;: &quot;A String&quot;, # Optional. Type of the boot disk (default is &quot;pd-standard&quot;). Valid values: &quot;pd-ssd&quot; (Persistent Disk Solid State Drive) or &quot;pd-standard&quot; (Persistent Disk Hard Disk Drive).
                &quot;numLocalSsds&quot;: 42, # Optional. Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
                &quot;bootDiskSizeGb&quot;: 42, # Optional. Size in GB of the boot disk (default is 500GB).
              },
              &quot;numInstances&quot;: 42, # Optional. The number of VM instances in the instance group. For master instance groups, must be set to 1.
              &quot;instanceNames&quot;: [ # Output only. The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group.
                &quot;A String&quot;,
              ],
              &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
              &quot;preemptibility&quot;: &quot;A String&quot;, # Optional. Specifies the preemptibility of the instance group.The default value for master and worker groups is NON_PREEMPTIBLE. This default cannot be changed.The default value for secondary instances is PREEMPTIBLE.
              &quot;minCpuPlatform&quot;: &quot;A String&quot;, # Optional. Specifies the minimum cpu platform for the Instance Group. See Dataproc -&gt; Minimum CPU Platform (https://cloud.google.com/dataproc/docs/concepts/compute/dataproc-min-cpu).
              &quot;accelerators&quot;: [ # Optional. The Compute Engine accelerator configuration for these instances.
                { # Specifies the type and number of accelerator cards attached to the instances of an instance. See GPUs on Compute Engine (https://cloud.google.com/compute/docs/gpus/).
                  &quot;acceleratorTypeUri&quot;: &quot;A String&quot;, # Full URL, partial URI, or short name of the accelerator type resource to expose to this instance. See Compute Engine AcceleratorTypes (https://cloud.google.com/compute/docs/reference/beta/acceleratorTypes).Examples: https://www.googleapis.com/compute/beta/projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 nvidia-tesla-k80Auto Zone Exception: If you are using the Dataproc Auto Zone Placement (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the accelerator type resource, for example, nvidia-tesla-k80.
                  &quot;acceleratorCount&quot;: 42, # The number of the accelerator cards of this type exposed to this instance.
                },
              ],
              &quot;instanceReferences&quot;: [ # Output only. List of references to Compute Engine instances.
                { # A reference to a Compute Engine instance.
                  &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
                  &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
                },
              ],
            },
            &quot;encryptionConfig&quot;: { # Encryption settings for the cluster. # Optional. Encryption settings for the cluster.
              &quot;gcePdKmsKeyName&quot;: &quot;A String&quot;, # Optional. The Cloud KMS key name to use for PD disk encryption for all instances in the cluster.
            },
            &quot;securityConfig&quot;: { # Security related configuration, including Kerberos. # Optional. Security settings for the cluster.
              &quot;kerberosConfig&quot;: { # Specifies Kerberos related configuration. # Kerberos related configuration.
                &quot;crossRealmTrustKdc&quot;: &quot;A String&quot;, # Optional. The KDC (IP or hostname) for the remote trusted realm in a cross realm trust relationship.
                &quot;keyPasswordUri&quot;: &quot;A String&quot;, # 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 Dataproc.
                &quot;enableKerberos&quot;: True or False, # Optional. Flag to indicate whether to Kerberize the cluster (default: false). Set this field to true to enable Kerberos on a cluster.
                &quot;crossRealmTrustAdminServer&quot;: &quot;A String&quot;, # Optional. The admin server (IP or hostname) for the remote trusted realm in a cross realm trust relationship.
                &quot;truststoreUri&quot;: &quot;A String&quot;, # Optional. The Cloud Storage URI of the truststore file used for SSL encryption. If not provided, Dataproc will provide a self-signed certificate.
                &quot;rootPrincipalPasswordUri&quot;: &quot;A String&quot;, # Optional. The Cloud Storage URI of a KMS encrypted file containing the root principal password.
                &quot;kmsKeyUri&quot;: &quot;A String&quot;, # Optional. The uri of the KMS key used to encrypt various sensitive files.
                &quot;keystoreUri&quot;: &quot;A String&quot;, # Optional. The Cloud Storage URI of the keystore file used for SSL encryption. If not provided, Dataproc will provide a self-signed certificate.
                &quot;crossRealmTrustSharedPasswordUri&quot;: &quot;A String&quot;, # 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.
                &quot;truststorePasswordUri&quot;: &quot;A String&quot;, # 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 Dataproc.
                &quot;crossRealmTrustRealm&quot;: &quot;A String&quot;, # Optional. The remote realm the Dataproc on-cluster KDC will trust, should the user enable cross realm trust.
                &quot;keystorePasswordUri&quot;: &quot;A String&quot;, # 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 Dataproc.
                &quot;realm&quot;: &quot;A String&quot;, # Optional. The name of the on-cluster Kerberos realm. If not specified, the uppercased domain of hostnames will be the realm.
                &quot;kdcDbKeyUri&quot;: &quot;A String&quot;, # Optional. The Cloud Storage URI of a KMS encrypted file containing the master key of the KDC database.
                &quot;tgtLifetimeHours&quot;: 42, # Optional. The lifetime of the ticket granting ticket, in hours. If not specified, or user specifies 0, then default value 10 will be used.
              },
            },
            &quot;autoscalingConfig&quot;: { # Autoscaling Policy config associated with the cluster. # Optional. Autoscaling config for the policy associated with the cluster. Cluster does not autoscale if this field is unset.
              &quot;policyUri&quot;: &quot;A String&quot;, # 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/[project_id]/locations/[dataproc_region]/autoscalingPolicies/[policy_id] projects/[project_id]/locations/[dataproc_region]/autoscalingPolicies/[policy_id]Note that the policy must be in the same project and Dataproc region.
            },
            &quot;gceClusterConfig&quot;: { # Common config settings for resources of Compute Engine cluster instances, applicable to all instances in the cluster. # Optional. The shared Compute Engine config settings for all instances in a cluster.
              &quot;internalIpOnly&quot;: True or False, # Optional. If true, all instances in the cluster will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This internal_ip_only restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
              &quot;zoneUri&quot;: &quot;A String&quot;, # Optional. The zone where the Compute Engine cluster will be located. On a create request, it is required in the &quot;global&quot; region. If omitted in a non-global Dataproc region, the service will pick a zone in the corresponding 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/[project_id]/zones/[zone] projects/[project_id]/zones/[zone] us-central1-f
              &quot;tags&quot;: [ # The Compute Engine tags to add to all instances (see Tagging instances (https://cloud.google.com/compute/docs/label-or-tag-resources#tags)).
                &quot;A String&quot;,
              ],
              &quot;metadata&quot;: { # 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)).
                &quot;a_key&quot;: &quot;A String&quot;,
              },
              &quot;subnetworkUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine subnetwork to be used for machine communications. Cannot be specified with network_uri.A full URL, partial URI, or short name are valid. Examples: https://www.googleapis.com/compute/v1/projects/[project_id]/regions/us-east1/subnetworks/sub0 projects/[project_id]/regions/us-east1/subnetworks/sub0 sub0
              &quot;serviceAccount&quot;: &quot;A String&quot;, # Optional. The Dataproc 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 Dataproc 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.
              &quot;privateIpv6GoogleAccess&quot;: &quot;A String&quot;, # Optional. The type of IPv6 access for a cluster.
              &quot;serviceAccountScopes&quot;: [ # 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.writeIf 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
                &quot;A String&quot;,
              ],
              &quot;reservationAffinity&quot;: { # Reservation Affinity for consuming Zonal reservation. # Optional. Reservation Affinity for consuming Zonal reservation.
                &quot;values&quot;: [ # Optional. Corresponds to the label values of reservation resource.
                  &quot;A String&quot;,
                ],
                &quot;key&quot;: &quot;A String&quot;, # Optional. Corresponds to the label key of reservation resource.
                &quot;consumeReservationType&quot;: &quot;A String&quot;, # Optional. Type of reservation to consume
              },
              &quot;networkUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither network_uri nor subnetwork_uri is specified, the &quot;default&quot; network of the project is used, if it exists. Cannot be a &quot;Custom Subnet Network&quot; (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/[project_id]/regions/global/default projects/[project_id]/regions/global/default default
              &quot;nodeGroupAffinity&quot;: { # Node Group Affinity for clusters using sole-tenant node groups. # Optional. Node Group Affinity for sole-tenant clusters.
                &quot;nodeGroupUri&quot;: &quot;A String&quot;, # 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/[project_id]/zones/us-central1-a/nodeGroups/node-group-1 projects/[project_id]/zones/us-central1-a/nodeGroups/node-group-1 node-group-1
              },
            },
            &quot;endpointConfig&quot;: { # Endpoint config for this cluster # Optional. Port/endpoint configuration for this cluster
              &quot;httpPorts&quot;: { # Output only. The map of port descriptions to URLs. Will only be populated if enable_http_port_access is true.
                &quot;a_key&quot;: &quot;A String&quot;,
              },
              &quot;enableHttpPortAccess&quot;: True or False, # Optional. If true, enable http access to specific ports on the cluster from external sources. Defaults to false.
            },
          },
          &quot;labels&quot;: { # Optional. The labels to associate with this cluster.Label keys must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 32 labels can be associated with a given cluster.
            &quot;a_key&quot;: &quot;A String&quot;,
          },
          &quot;clusterName&quot;: &quot;A String&quot;, # Required. The cluster name prefix. A unique cluster name will be formed by appending a random suffix.The name must contain only lower-case letters (a-z), numbers (0-9), and hyphens (-). Must begin with a letter. Cannot begin or end with hyphen. Must consist of between 2 and 35 characters.
        },
      },
      &quot;version&quot;: 42, # Optional. Used to perform a consistent read-modify-write.This field should be left blank for a CreateWorkflowTemplate request. It is required for an UpdateWorkflowTemplate request, and must match the current server version. A typical update template flow would fetch the current template with a GetWorkflowTemplate request, which will return the current template with the version field filled in with the current server version. The user updates other fields in the template, then returns it as part of the UpdateWorkflowTemplate request.
      &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time template was created.
      &quot;parameters&quot;: [ # Optional. Template parameters whose values are substituted into the template. Values for parameters must be provided when the template is instantiated.
        { # A configurable parameter that replaces one or more fields in the template. Parameterizable fields: - Labels - File uris - Job properties - Job arguments - Script variables - Main class (in HadoopJob and SparkJob) - Zone (in ClusterSelector)
          &quot;validation&quot;: { # Configuration for parameter validation. # Optional. Validation rules to be applied to this parameter&#x27;s value.
            &quot;values&quot;: { # Validation based on a list of allowed values. # Validation based on a list of allowed values.
              &quot;values&quot;: [ # Required. List of allowed values for the parameter.
                &quot;A String&quot;,
              ],
            },
            &quot;regex&quot;: { # Validation based on regular expressions. # Validation based on regular expressions.
              &quot;regexes&quot;: [ # Required. RE2 regular expressions used to validate the parameter&#x27;s value. The value must match the regex in its entirety (substring matches are not sufficient).
                &quot;A String&quot;,
              ],
            },
          },
          &quot;fields&quot;: [ # Required. Paths to all fields that the parameter replaces. A field is allowed to appear in at most one parameter&#x27;s list of field paths.A field path is similar in syntax to a google.protobuf.FieldMask. For example, a field path that references the zone field of a workflow template&#x27;s cluster selector would be specified as placement.clusterSelector.zone.Also, field paths can reference fields using the following syntax: Values in maps can be referenced by key: labels&#x27;key&#x27; placement.clusterSelector.clusterLabels&#x27;key&#x27; placement.managedCluster.labels&#x27;key&#x27; placement.clusterSelector.clusterLabels&#x27;key&#x27; jobs&#x27;step-id&#x27;.labels&#x27;key&#x27; Jobs in the jobs list can be referenced by step-id: jobs&#x27;step-id&#x27;.hadoopJob.mainJarFileUri jobs&#x27;step-id&#x27;.hiveJob.queryFileUri jobs&#x27;step-id&#x27;.pySparkJob.mainPythonFileUri jobs&#x27;step-id&#x27;.hadoopJob.jarFileUris0 jobs&#x27;step-id&#x27;.hadoopJob.archiveUris0 jobs&#x27;step-id&#x27;.hadoopJob.fileUris0 jobs&#x27;step-id&#x27;.pySparkJob.pythonFileUris0 Items in repeated fields can be referenced by a zero-based index: jobs&#x27;step-id&#x27;.sparkJob.args0 Other examples: jobs&#x27;step-id&#x27;.hadoopJob.properties&#x27;key&#x27; jobs&#x27;step-id&#x27;.hadoopJob.args0 jobs&#x27;step-id&#x27;.hiveJob.scriptVariables&#x27;key&#x27; jobs&#x27;step-id&#x27;.hadoopJob.mainJarFileUri placement.clusterSelector.zoneIt may not be possible to parameterize maps and repeated fields in their entirety since only individual map values and individual items in repeated fields can be referenced. For example, the following field paths are invalid: placement.clusterSelector.clusterLabels jobs&#x27;step-id&#x27;.sparkJob.args
            &quot;A String&quot;,
          ],
          &quot;name&quot;: &quot;A String&quot;, # Required. Parameter name. The parameter name is used as the key, and paired with the parameter value, which are passed to the template when the template is instantiated. The name must contain only capital letters (A-Z), numbers (0-9), and underscores (_), and must not start with a number. The maximum length is 40 characters.
          &quot;description&quot;: &quot;A String&quot;, # Optional. Brief description of the parameter. Must not exceed 1024 characters.
        },
      ],
      &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of the workflow template, as described in https://cloud.google.com/apis/design/resource_names. For projects.regions.workflowTemplates, the resource name of the template has the following format: projects/{project_id}/regions/{region}/workflowTemplates/{template_id} For projects.locations.workflowTemplates, the resource name of the template has the following format: projects/{project_id}/locations/{location}/workflowTemplates/{template_id}
      &quot;jobs&quot;: [ # Required. The Directed Acyclic Graph of Jobs to submit.
        { # A job executed by the workflow.
          &quot;stepId&quot;: &quot;A String&quot;, # Required. The step id. The id must be unique among all jobs within the template.The step id is used as prefix for job id, as job goog-dataproc-workflow-step-id label, and in prerequisiteStepIds field from other steps.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 between 3 and 50 characters.
          &quot;pigJob&quot;: { # A Dataproc job for running Apache Pig (https://pig.apache.org/) queries on YARN. # Optional. Job is a Pig job.
            &quot;properties&quot;: { # Optional. A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
              &quot;a_key&quot;: &quot;A String&quot;,
            },
            &quot;scriptVariables&quot;: { # Optional. Mapping of query variable names to values (equivalent to the Pig command: name=[value]).
              &quot;a_key&quot;: &quot;A String&quot;,
            },
            &quot;jarFileUris&quot;: [ # Optional. HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
              &quot;A String&quot;,
            ],
            &quot;loggingConfig&quot;: { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
              &quot;driverLogLevels&quot;: { # The per-package log levels for the driver. This may include &quot;root&quot; package name to configure rootLogger. Examples: &#x27;com.google = FATAL&#x27;, &#x27;root = INFO&#x27;, &#x27;org.apache = DEBUG&#x27;
                &quot;a_key&quot;: &quot;A String&quot;,
              },
            },
            &quot;queryList&quot;: { # A list of queries to run on a cluster. # A list of queries.
              &quot;queries&quot;: [ # Required. The queries to execute. You do not need to end a query expression with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of a Dataproc API snippet that uses a QueryList to specify a HiveJob: &quot;hiveJob&quot;: { &quot;queryList&quot;: { &quot;queries&quot;: [ &quot;query1&quot;, &quot;query2&quot;, &quot;query3;query4&quot;, ] } }
                &quot;A String&quot;,
              ],
            },
            &quot;continueOnFailure&quot;: True or False, # Optional. Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
            &quot;queryFileUri&quot;: &quot;A String&quot;, # The HCFS URI of the script that contains the Pig queries.
          },
          &quot;sparkJob&quot;: { # A Dataproc job for running Apache Spark (http://spark.apache.org/) applications on YARN. # Optional. Job is a Spark job.
            &quot;loggingConfig&quot;: { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
              &quot;driverLogLevels&quot;: { # The per-package log levels for the driver. This may include &quot;root&quot; package name to configure rootLogger. Examples: &#x27;com.google = FATAL&#x27;, &#x27;root = INFO&#x27;, &#x27;org.apache = DEBUG&#x27;
                &quot;a_key&quot;: &quot;A String&quot;,
              },
            },
            &quot;archiveUris&quot;: [ # Optional. HCFS URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
              &quot;A String&quot;,
            ],
            &quot;jarFileUris&quot;: [ # Optional. HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
              &quot;A String&quot;,
            ],
            &quot;properties&quot;: { # Optional. A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
              &quot;a_key&quot;: &quot;A String&quot;,
            },
            &quot;mainClass&quot;: &quot;A String&quot;, # The name of the driver&#x27;s main class. The jar file that contains the class must be in the default CLASSPATH or specified in jar_file_uris.
            &quot;mainJarFileUri&quot;: &quot;A String&quot;, # The HCFS URI of the jar file that contains the main class.
            &quot;args&quot;: [ # Optional. The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
              &quot;A String&quot;,
            ],
            &quot;fileUris&quot;: [ # Optional. HCFS URIs of files to be placed in the working directory of each executor. Useful for naively parallel tasks.
              &quot;A String&quot;,
            ],
          },
          &quot;pysparkJob&quot;: { # A Dataproc job for running Apache PySpark (https://spark.apache.org/docs/0.9.0/python-programming-guide.html) applications on YARN. # Optional. Job is a PySpark job.
            &quot;loggingConfig&quot;: { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
              &quot;driverLogLevels&quot;: { # The per-package log levels for the driver. This may include &quot;root&quot; package name to configure rootLogger. Examples: &#x27;com.google = FATAL&#x27;, &#x27;root = INFO&#x27;, &#x27;org.apache = DEBUG&#x27;
                &quot;a_key&quot;: &quot;A String&quot;,
              },
            },
            &quot;mainPythonFileUri&quot;: &quot;A String&quot;, # Required. The HCFS URI of the main Python file to use as the driver. Must be a .py file.
            &quot;pythonFileUris&quot;: [ # Optional. HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
              &quot;A String&quot;,
            ],
            &quot;args&quot;: [ # Optional. The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
              &quot;A String&quot;,
            ],
            &quot;properties&quot;: { # Optional. A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
              &quot;a_key&quot;: &quot;A String&quot;,
            },
            &quot;jarFileUris&quot;: [ # Optional. HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
              &quot;A String&quot;,
            ],
            &quot;archiveUris&quot;: [ # Optional. HCFS URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
              &quot;A String&quot;,
            ],
            &quot;fileUris&quot;: [ # Optional. HCFS URIs of files to be placed in the working directory of each executor. Useful for naively parallel tasks.
              &quot;A String&quot;,
            ],
          },
          &quot;scheduling&quot;: { # Job scheduling options. # Optional. Job scheduling configuration.
            &quot;maxFailuresTotal&quot;: 42, # Optional. Maximum number of times in total a driver may be restarted as a result of driver exiting with non-zero code before job is reported failed. Maximum value is 240
            &quot;maxFailuresPerHour&quot;: 42, # Optional. Maximum number of times per hour a driver may be restarted as a result of driver exiting with non-zero code before job is reported failed.A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window.Maximum value is 10.
          },
          &quot;sparkSqlJob&quot;: { # A Dataproc job for running Apache Spark SQL (http://spark.apache.org/sql/) queries. # Optional. Job is a SparkSql job.
            &quot;queryFileUri&quot;: &quot;A String&quot;, # The HCFS URI of the script that contains SQL queries.
            &quot;loggingConfig&quot;: { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
              &quot;driverLogLevels&quot;: { # The per-package log levels for the driver. This may include &quot;root&quot; package name to configure rootLogger. Examples: &#x27;com.google = FATAL&#x27;, &#x27;root = INFO&#x27;, &#x27;org.apache = DEBUG&#x27;
                &quot;a_key&quot;: &quot;A String&quot;,
              },
            },
            &quot;scriptVariables&quot;: { # Optional. Mapping of query variable names to values (equivalent to the Spark SQL command: SET name=&quot;value&quot;;).
              &quot;a_key&quot;: &quot;A String&quot;,
            },
            &quot;queryList&quot;: { # A list of queries to run on a cluster. # A list of queries.
              &quot;queries&quot;: [ # Required. The queries to execute. You do not need to end a query expression with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of a Dataproc API snippet that uses a QueryList to specify a HiveJob: &quot;hiveJob&quot;: { &quot;queryList&quot;: { &quot;queries&quot;: [ &quot;query1&quot;, &quot;query2&quot;, &quot;query3;query4&quot;, ] } }
                &quot;A String&quot;,
              ],
            },
            &quot;properties&quot;: { # Optional. A mapping of property names to values, used to configure Spark SQL&#x27;s SparkConf. Properties that conflict with values set by the Dataproc API may be overwritten.
              &quot;a_key&quot;: &quot;A String&quot;,
            },
            &quot;jarFileUris&quot;: [ # Optional. HCFS URIs of jar files to be added to the Spark CLASSPATH.
              &quot;A String&quot;,
            ],
          },
          &quot;hiveJob&quot;: { # A Dataproc job for running Apache Hive (https://hive.apache.org/) queries on YARN. # Optional. Job is a Hive job.
            &quot;jarFileUris&quot;: [ # Optional. HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
              &quot;A String&quot;,
            ],
            &quot;continueOnFailure&quot;: True or False, # Optional. Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
            &quot;properties&quot;: { # Optional. A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
              &quot;a_key&quot;: &quot;A String&quot;,
            },
            &quot;queryList&quot;: { # A list of queries to run on a cluster. # A list of queries.
              &quot;queries&quot;: [ # Required. The queries to execute. You do not need to end a query expression with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of a Dataproc API snippet that uses a QueryList to specify a HiveJob: &quot;hiveJob&quot;: { &quot;queryList&quot;: { &quot;queries&quot;: [ &quot;query1&quot;, &quot;query2&quot;, &quot;query3;query4&quot;, ] } }
                &quot;A String&quot;,
              ],
            },
            &quot;scriptVariables&quot;: { # Optional. Mapping of query variable names to values (equivalent to the Hive command: SET name=&quot;value&quot;;).
              &quot;a_key&quot;: &quot;A String&quot;,
            },
            &quot;queryFileUri&quot;: &quot;A String&quot;, # The HCFS URI of the script that contains Hive queries.
          },
          &quot;prestoJob&quot;: { # A Dataproc job for running Presto (https://prestosql.io/) queries. IMPORTANT: The Dataproc Presto Optional Component (https://cloud.google.com/dataproc/docs/concepts/components/presto) must be enabled when the cluster is created to submit a Presto job to the cluster. # Optional. Job is a Presto job.
            &quot;properties&quot;: { # Optional. A mapping of property names to values. Used to set Presto session properties (https://prestodb.io/docs/current/sql/set-session.html) Equivalent to using the --session flag in the Presto CLI
              &quot;a_key&quot;: &quot;A String&quot;,
            },
            &quot;clientTags&quot;: [ # Optional. Presto client tags to attach to this query
              &quot;A String&quot;,
            ],
            &quot;queryFileUri&quot;: &quot;A String&quot;, # The HCFS URI of the script that contains SQL queries.
            &quot;queryList&quot;: { # A list of queries to run on a cluster. # A list of queries.
              &quot;queries&quot;: [ # Required. The queries to execute. You do not need to end a query expression with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of a Dataproc API snippet that uses a QueryList to specify a HiveJob: &quot;hiveJob&quot;: { &quot;queryList&quot;: { &quot;queries&quot;: [ &quot;query1&quot;, &quot;query2&quot;, &quot;query3;query4&quot;, ] } }
                &quot;A String&quot;,
              ],
            },
            &quot;outputFormat&quot;: &quot;A String&quot;, # Optional. The format in which query output will be displayed. See the Presto documentation for supported output formats
            &quot;continueOnFailure&quot;: True or False, # Optional. Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
            &quot;loggingConfig&quot;: { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
              &quot;driverLogLevels&quot;: { # The per-package log levels for the driver. This may include &quot;root&quot; package name to configure rootLogger. Examples: &#x27;com.google = FATAL&#x27;, &#x27;root = INFO&#x27;, &#x27;org.apache = DEBUG&#x27;
                &quot;a_key&quot;: &quot;A String&quot;,
              },
            },
          },
          &quot;hadoopJob&quot;: { # A Dataproc job for running Apache Hadoop MapReduce (https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html) jobs on Apache Hadoop YARN (https://hadoop.apache.org/docs/r2.7.1/hadoop-yarn/hadoop-yarn-site/YARN.html). # Optional. Job is a Hadoop job.
            &quot;fileUris&quot;: [ # Optional. HCFS (Hadoop Compatible Filesystem) URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
              &quot;A String&quot;,
            ],
            &quot;mainClass&quot;: &quot;A String&quot;, # The name of the driver&#x27;s main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
            &quot;args&quot;: [ # Optional. The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
              &quot;A String&quot;,
            ],
            &quot;mainJarFileUri&quot;: &quot;A String&quot;, # The HCFS URI of the jar file containing the main class. Examples: &#x27;gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar&#x27; &#x27;hdfs:/tmp/test-samples/custom-wordcount.jar&#x27; &#x27;file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar&#x27;
            &quot;jarFileUris&quot;: [ # Optional. Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
              &quot;A String&quot;,
            ],
            &quot;archiveUris&quot;: [ # Optional. HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
              &quot;A String&quot;,
            ],
            &quot;properties&quot;: { # Optional. A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
              &quot;a_key&quot;: &quot;A String&quot;,
            },
            &quot;loggingConfig&quot;: { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
              &quot;driverLogLevels&quot;: { # The per-package log levels for the driver. This may include &quot;root&quot; package name to configure rootLogger. Examples: &#x27;com.google = FATAL&#x27;, &#x27;root = INFO&#x27;, &#x27;org.apache = DEBUG&#x27;
                &quot;a_key&quot;: &quot;A String&quot;,
              },
            },
          },
          &quot;sparkRJob&quot;: { # A Dataproc job for running Apache SparkR (https://spark.apache.org/docs/latest/sparkr.html) applications on YARN. # Optional. Job is a SparkR job.
            &quot;properties&quot;: { # Optional. A mapping of property names to values, used to configure SparkR. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
              &quot;a_key&quot;: &quot;A String&quot;,
            },
            &quot;loggingConfig&quot;: { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
              &quot;driverLogLevels&quot;: { # The per-package log levels for the driver. This may include &quot;root&quot; package name to configure rootLogger. Examples: &#x27;com.google = FATAL&#x27;, &#x27;root = INFO&#x27;, &#x27;org.apache = DEBUG&#x27;
                &quot;a_key&quot;: &quot;A String&quot;,
              },
            },
            &quot;mainRFileUri&quot;: &quot;A String&quot;, # Required. The HCFS URI of the main R file to use as the driver. Must be a .R file.
            &quot;archiveUris&quot;: [ # Optional. HCFS URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
              &quot;A String&quot;,
            ],
            &quot;fileUris&quot;: [ # Optional. HCFS URIs of files to be placed in the working directory of each executor. Useful for naively parallel tasks.
              &quot;A String&quot;,
            ],
            &quot;args&quot;: [ # Optional. The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
              &quot;A String&quot;,
            ],
          },
          &quot;prerequisiteStepIds&quot;: [ # Optional. The optional list of prerequisite job step_ids. If not specified, the job will start at the beginning of workflow.
            &quot;A String&quot;,
          ],
          &quot;labels&quot;: { # Optional. The labels to associate with this job.Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 32 labels can be associated with a given job.
            &quot;a_key&quot;: &quot;A String&quot;,
          },
        },
      ],
    }</pre>
</div>

<div class="method">
    <code class="details" id="getIamPolicy">getIamPolicy(resource, body=None, x__xgafv=None)</code>
  <pre>Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.

Args:
  resource: string, REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field. (required)
  body: object, The request body.
    The object takes the form of:

{ # Request message for GetIamPolicy method.
    &quot;options&quot;: { # Encapsulates settings provided to GetIamPolicy. # OPTIONAL: A GetPolicyOptions object for specifying options to GetIamPolicy.
      &quot;requestedPolicyVersion&quot;: 42, # Optional. The policy format version to be returned.Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected.Requests for policies with any conditional bindings must specify version 3. Policies without any conditional bindings may specify any valid value or leave the field unset.To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies).
    },
  }

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources.A Policy is a collection of bindings. A binding binds one or more members to a single role. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A role is a named list of permissions; each role can be an IAM predefined role or a user-created custom role.For some types of Google Cloud resources, a binding can also specify a condition, which is a logical expression that allows access to a resource only if the expression evaluates to true. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies).JSON example: { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } YAML example: bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the IAM documentation (https://cloud.google.com/iam/docs/).
    &quot;bindings&quot;: [ # Associates a list of members to a role. Optionally, may specify a condition that determines how and when the bindings are applied. Each of the bindings must contain at least one member.
      { # Associates members with a role.
        &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. members can have the following values: allUsers: A special identifier that represents anyone who is on the internet; with or without a Google account. allAuthenticatedUsers: A special identifier that represents anyone who is authenticated with a Google account or a service account. user:{emailid}: An email address that represents a specific Google account. For example, alice@example.com . serviceAccount:{emailid}: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com. group:{emailid}: An email address that represents a Google group. For example, admins@example.com. deleted:user:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a user that has been recently deleted. For example, alice@example.com?uid=123456789012345678901. If the user is recovered, this value reverts to user:{emailid} and the recovered user retains the role in the binding. deleted:serviceAccount:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901. If the service account is undeleted, this value reverts to serviceAccount:{emailid} and the undeleted service account retains the role in the binding. deleted:group:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, admins@example.com?uid=123456789012345678901. If the group is recovered, this value reverts to group:{emailid} and the recovered group retains the role in the binding. domain:{domain}: The G Suite domain (primary) that represents all the users of that domain. For example, google.com or example.com.
          &quot;A String&quot;,
        ],
        &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to members. For example, roles/viewer, roles/editor, or roles/owner.
        &quot;bindingId&quot;: &quot;A String&quot;,
        &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec.Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding.If the condition evaluates to true, then this binding applies to the current request.If the condition evaluates to false, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding.To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies).
          &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
          &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
          &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
          &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
        },
      },
    ],
    &quot;etag&quot;: &quot;A String&quot;, # etag is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the etag in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An etag is returned in the response to getIamPolicy, and systems are expected to put that etag in the request to setIamPolicy to ensure that their change will be applied to the same version of the policy.Important: If you use IAM Conditions, you must include the etag field whenever you call setIamPolicy. If you omit this field, then IAM allows you to overwrite a version 3 policy with a version 1 policy, and all of the conditions in the version 3 policy are lost.
    &quot;version&quot;: 42, # Specifies the format of the policy.Valid values are 0, 1, and 3. Requests that specify an invalid value are rejected.Any operation that affects conditional role bindings must specify version 3. This requirement applies to the following operations: Getting a policy that includes a conditional role binding Adding a conditional role binding to a policy Changing a conditional role binding in a policy Removing any role binding, with or without a condition, from a policy that includes conditionsImportant: If you use IAM Conditions, you must include the etag field whenever you call setIamPolicy. If you omit this field, then IAM allows you to overwrite a version 3 policy with a version 1 policy, and all of the conditions in the version 3 policy are lost.If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset.To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies).
  }</pre>
</div>

<div class="method">
    <code class="details" id="instantiate">instantiate(name, body=None, x__xgafv=None)</code>
  <pre>Instantiates a template and begins execution.The returned Operation can be used to track execution of workflow by polling operations.get. The Operation will complete when entire workflow is finished.The running workflow can be aborted via operations.cancel. This will cause any inflight jobs to be cancelled and workflow-owned clusters to be deleted.The Operation.metadata will be WorkflowMetadata (https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#workflowmetadata). Also see Using WorkflowMetadata (https://cloud.google.com/dataproc/docs/concepts/workflows/debugging#using_workflowmetadata).On successful completion, Operation.response will be Empty.

Args:
  name: string, Required. The resource name of the workflow template, as described in https://cloud.google.com/apis/design/resource_names. For projects.regions.workflowTemplates.instantiate, the resource name of the template has the following format: projects/{project_id}/regions/{region}/workflowTemplates/{template_id} For projects.locations.workflowTemplates.instantiate, the resource name of the template has the following format: projects/{project_id}/locations/{location}/workflowTemplates/{template_id} (required)
  body: object, The request body.
    The object takes the form of:

{ # A request to instantiate a workflow template.
    &quot;version&quot;: 42, # Optional. The version of workflow template to instantiate. If specified, the workflow will be instantiated only if the current version of the workflow template has the supplied version.This option cannot be used to instantiate a previous version of workflow template.
    &quot;parameters&quot;: { # Optional. Map from parameter names to values that should be used for those parameters. Values may not exceed 1000 characters.
      &quot;a_key&quot;: &quot;A String&quot;,
    },
    &quot;requestId&quot;: &quot;A String&quot;, # Optional. A tag that prevents multiple concurrent workflow instances with the same tag from running. This mitigates risk of concurrent instances started due to retries.It is recommended to always set this value to a UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier).The tag must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). The maximum length is 40 characters.
  }

  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.
    &quot;error&quot;: { # 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.
      &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
      &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
        {
          &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
        },
      ],
      &quot;message&quot;: &quot;A String&quot;, # 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.
    },
    &quot;response&quot;: { # The normal response of the operation in case of success. 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.
      &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
    },
    &quot;done&quot;: 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.
    &quot;name&quot;: &quot;A String&quot;, # 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}.
    &quot;metadata&quot;: { # 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.
      &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
    },
  }</pre>
</div>

<div class="method">
    <code class="details" id="instantiateInline">instantiateInline(parent, body=None, requestId=None, x__xgafv=None)</code>
  <pre>Instantiates a template and begins execution.This method is equivalent to executing the sequence CreateWorkflowTemplate, InstantiateWorkflowTemplate, DeleteWorkflowTemplate.The returned Operation can be used to track execution of workflow by polling operations.get. The Operation will complete when entire workflow is finished.The running workflow can be aborted via operations.cancel. This will cause any inflight jobs to be cancelled and workflow-owned clusters to be deleted.The Operation.metadata will be WorkflowMetadata (https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#workflowmetadata). Also see Using WorkflowMetadata (https://cloud.google.com/dataproc/docs/concepts/workflows/debugging#using_workflowmetadata).On successful completion, Operation.response will be Empty.

Args:
  parent: string, Required. The resource name of the region or location, as described in https://cloud.google.com/apis/design/resource_names. For projects.regions.workflowTemplates,instantiateinline, the resource name of the region has the following format: projects/{project_id}/regions/{region} For projects.locations.workflowTemplates.instantiateinline, the resource name of the location has the following format: projects/{project_id}/locations/{location} (required)
  body: object, The request body.
    The object takes the form of:

{ # A Dataproc workflow template resource.
    &quot;id&quot;: &quot;A String&quot;,
    &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time template was last updated.
    &quot;labels&quot;: { # Optional. The labels to associate with this template. These labels will be propagated to all jobs and clusters created by the workflow instance.Label keys must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt).Label values may be empty, but, if present, must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt).No more than 32 labels can be associated with a template.
      &quot;a_key&quot;: &quot;A String&quot;,
    },
    &quot;placement&quot;: { # Specifies workflow execution target.Either managed_cluster or cluster_selector is required. # Required. WorkflowTemplate scheduling information.
      &quot;clusterSelector&quot;: { # A selector that chooses target cluster for jobs based on metadata. # Optional. A selector that chooses target cluster for jobs based on metadata.The selector is evaluated at the time each job is submitted.
        &quot;zone&quot;: &quot;A String&quot;, # Optional. The zone where workflow process executes. This parameter does not affect the selection of the cluster.If unspecified, the zone of the first cluster matching the selector is used.
        &quot;clusterLabels&quot;: { # Required. The cluster labels. Cluster must have all labels to match.
          &quot;a_key&quot;: &quot;A String&quot;,
        },
      },
      &quot;managedCluster&quot;: { # Cluster that is managed by the workflow. # A cluster that is managed by the workflow.
        &quot;config&quot;: { # The cluster config. # Required. The cluster configuration.
          &quot;tempBucket&quot;: &quot;A String&quot;, # 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, Dataproc will determine a Cloud Storage location (US, ASIA, or EU) for your cluster&#x27;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.
          &quot;lifecycleConfig&quot;: { # Specifies the cluster auto-delete schedule configuration. # Optional. Lifecycle setting for the cluster.
            &quot;autoDeleteTime&quot;: &quot;A String&quot;, # Optional. The time when cluster will be auto-deleted (see JSON representation of Timestamp (https://developers.google.com/protocol-buffers/docs/proto3#json)).
            &quot;idleStartTime&quot;: &quot;A String&quot;, # 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)).
            &quot;idleDeleteTtl&quot;: &quot;A String&quot;, # 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).
            &quot;autoDeleteTtl&quot;: &quot;A String&quot;, # 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)).
          },
          &quot;masterConfig&quot;: { # The config settings for Compute Engine resources in an instance group, such as a master or worker group. # Optional. The Compute Engine config settings for the master instance in a cluster.
            &quot;managedGroupConfig&quot;: { # Specifies the resources used to actively manage an instance group. # Output only. The config for Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
              &quot;instanceGroupManagerName&quot;: &quot;A String&quot;, # Output only. The name of the Instance Group Manager for this group.
              &quot;instanceTemplateName&quot;: &quot;A String&quot;, # Output only. The name of the Instance Template used for the Managed Instance Group.
            },
            &quot;imageUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine image resource used for cluster instances.The URI can represent an image or image family.Image examples: https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/[image-id] projects/[project_id]/global/images/[image-id] image-idImage family examples. Dataproc will use the most recent image from the family: https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/family/[custom-image-family-name] projects/[project_id]/global/images/family/[custom-image-family-name]If the URI is unspecified, it will be inferred from SoftwareConfig.image_version or the system default.
            &quot;machineTypeUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine machine type used for cluster instances.A full URL, partial URI, or short name are valid. Examples: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2 projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2 n1-standard-2Auto Zone Exception: If you are using the Dataproc Auto Zone Placement (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the machine type resource, for example, n1-standard-2.
            &quot;diskConfig&quot;: { # Specifies the config of disk options for a group of VM instances. # Optional. Disk option config settings.
              &quot;bootDiskType&quot;: &quot;A String&quot;, # Optional. Type of the boot disk (default is &quot;pd-standard&quot;). Valid values: &quot;pd-ssd&quot; (Persistent Disk Solid State Drive) or &quot;pd-standard&quot; (Persistent Disk Hard Disk Drive).
              &quot;numLocalSsds&quot;: 42, # Optional. Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
              &quot;bootDiskSizeGb&quot;: 42, # Optional. Size in GB of the boot disk (default is 500GB).
            },
            &quot;numInstances&quot;: 42, # Optional. The number of VM instances in the instance group. For master instance groups, must be set to 1.
            &quot;instanceNames&quot;: [ # Output only. The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group.
              &quot;A String&quot;,
            ],
            &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
            &quot;preemptibility&quot;: &quot;A String&quot;, # Optional. Specifies the preemptibility of the instance group.The default value for master and worker groups is NON_PREEMPTIBLE. This default cannot be changed.The default value for secondary instances is PREEMPTIBLE.
            &quot;minCpuPlatform&quot;: &quot;A String&quot;, # Optional. Specifies the minimum cpu platform for the Instance Group. See Dataproc -&gt; Minimum CPU Platform (https://cloud.google.com/dataproc/docs/concepts/compute/dataproc-min-cpu).
            &quot;accelerators&quot;: [ # Optional. The Compute Engine accelerator configuration for these instances.
              { # Specifies the type and number of accelerator cards attached to the instances of an instance. See GPUs on Compute Engine (https://cloud.google.com/compute/docs/gpus/).
                &quot;acceleratorTypeUri&quot;: &quot;A String&quot;, # Full URL, partial URI, or short name of the accelerator type resource to expose to this instance. See Compute Engine AcceleratorTypes (https://cloud.google.com/compute/docs/reference/beta/acceleratorTypes).Examples: https://www.googleapis.com/compute/beta/projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 nvidia-tesla-k80Auto Zone Exception: If you are using the Dataproc Auto Zone Placement (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the accelerator type resource, for example, nvidia-tesla-k80.
                &quot;acceleratorCount&quot;: 42, # The number of the accelerator cards of this type exposed to this instance.
              },
            ],
            &quot;instanceReferences&quot;: [ # Output only. List of references to Compute Engine instances.
              { # A reference to a Compute Engine instance.
                &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
                &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
              },
            ],
          },
          &quot;softwareConfig&quot;: { # Specifies the selection and config of software inside the cluster. # Optional. The config settings for software inside the cluster.
            &quot;properties&quot;: { # 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.xmlFor more information, see Cluster properties (https://cloud.google.com/dataproc/docs/concepts/cluster-properties).
              &quot;a_key&quot;: &quot;A String&quot;,
            },
            &quot;imageVersion&quot;: &quot;A String&quot;, # Optional. The version of software inside the cluster. It must be one of the supported Dataproc Versions (https://cloud.google.com/dataproc/docs/concepts/versioning/dataproc-versions#supported_dataproc_versions), such as &quot;1.2&quot; (including a subminor version, such as &quot;1.2.29&quot;), or the &quot;preview&quot; version (https://cloud.google.com/dataproc/docs/concepts/versioning/dataproc-versions#other_versions). If unspecified, it defaults to the latest Debian version.
            &quot;optionalComponents&quot;: [ # Optional. The set of components to activate on the cluster.
              &quot;A String&quot;,
            ],
          },
          &quot;configBucket&quot;: &quot;A String&quot;, # 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, Cloud Dataproc will determine a Cloud Storage location (US, ASIA, or EU) for your cluster&#x27;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 Dataproc staging bucket (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/staging-bucket)).
          &quot;initializationActions&quot;: [ # 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&#x27;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 [[ &quot;${ROLE}&quot; == &#x27;Master&#x27; ]]; then ... master specific actions ... else ... worker specific actions ... fi
            { # Specifies an executable to run on a fully configured node and a timeout period for executable completion.
              &quot;executionTimeout&quot;: &quot;A String&quot;, # 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.
              &quot;executableFile&quot;: &quot;A String&quot;, # Required. Cloud Storage URI of executable file.
            },
          ],
          &quot;secondaryWorkerConfig&quot;: { # The config settings for Compute Engine resources in an instance group, such as a master or worker group. # Optional. The Compute Engine config settings for additional worker instances in a cluster.
            &quot;managedGroupConfig&quot;: { # Specifies the resources used to actively manage an instance group. # Output only. The config for Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
              &quot;instanceGroupManagerName&quot;: &quot;A String&quot;, # Output only. The name of the Instance Group Manager for this group.
              &quot;instanceTemplateName&quot;: &quot;A String&quot;, # Output only. The name of the Instance Template used for the Managed Instance Group.
            },
            &quot;imageUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine image resource used for cluster instances.The URI can represent an image or image family.Image examples: https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/[image-id] projects/[project_id]/global/images/[image-id] image-idImage family examples. Dataproc will use the most recent image from the family: https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/family/[custom-image-family-name] projects/[project_id]/global/images/family/[custom-image-family-name]If the URI is unspecified, it will be inferred from SoftwareConfig.image_version or the system default.
            &quot;machineTypeUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine machine type used for cluster instances.A full URL, partial URI, or short name are valid. Examples: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2 projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2 n1-standard-2Auto Zone Exception: If you are using the Dataproc Auto Zone Placement (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the machine type resource, for example, n1-standard-2.
            &quot;diskConfig&quot;: { # Specifies the config of disk options for a group of VM instances. # Optional. Disk option config settings.
              &quot;bootDiskType&quot;: &quot;A String&quot;, # Optional. Type of the boot disk (default is &quot;pd-standard&quot;). Valid values: &quot;pd-ssd&quot; (Persistent Disk Solid State Drive) or &quot;pd-standard&quot; (Persistent Disk Hard Disk Drive).
              &quot;numLocalSsds&quot;: 42, # Optional. Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
              &quot;bootDiskSizeGb&quot;: 42, # Optional. Size in GB of the boot disk (default is 500GB).
            },
            &quot;numInstances&quot;: 42, # Optional. The number of VM instances in the instance group. For master instance groups, must be set to 1.
            &quot;instanceNames&quot;: [ # Output only. The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group.
              &quot;A String&quot;,
            ],
            &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
            &quot;preemptibility&quot;: &quot;A String&quot;, # Optional. Specifies the preemptibility of the instance group.The default value for master and worker groups is NON_PREEMPTIBLE. This default cannot be changed.The default value for secondary instances is PREEMPTIBLE.
            &quot;minCpuPlatform&quot;: &quot;A String&quot;, # Optional. Specifies the minimum cpu platform for the Instance Group. See Dataproc -&gt; Minimum CPU Platform (https://cloud.google.com/dataproc/docs/concepts/compute/dataproc-min-cpu).
            &quot;accelerators&quot;: [ # Optional. The Compute Engine accelerator configuration for these instances.
              { # Specifies the type and number of accelerator cards attached to the instances of an instance. See GPUs on Compute Engine (https://cloud.google.com/compute/docs/gpus/).
                &quot;acceleratorTypeUri&quot;: &quot;A String&quot;, # Full URL, partial URI, or short name of the accelerator type resource to expose to this instance. See Compute Engine AcceleratorTypes (https://cloud.google.com/compute/docs/reference/beta/acceleratorTypes).Examples: https://www.googleapis.com/compute/beta/projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 nvidia-tesla-k80Auto Zone Exception: If you are using the Dataproc Auto Zone Placement (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the accelerator type resource, for example, nvidia-tesla-k80.
                &quot;acceleratorCount&quot;: 42, # The number of the accelerator cards of this type exposed to this instance.
              },
            ],
            &quot;instanceReferences&quot;: [ # Output only. List of references to Compute Engine instances.
              { # A reference to a Compute Engine instance.
                &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
                &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
              },
            ],
          },
          &quot;workerConfig&quot;: { # The config settings for Compute Engine resources in an instance group, such as a master or worker group. # Optional. The Compute Engine config settings for worker instances in a cluster.
            &quot;managedGroupConfig&quot;: { # Specifies the resources used to actively manage an instance group. # Output only. The config for Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
              &quot;instanceGroupManagerName&quot;: &quot;A String&quot;, # Output only. The name of the Instance Group Manager for this group.
              &quot;instanceTemplateName&quot;: &quot;A String&quot;, # Output only. The name of the Instance Template used for the Managed Instance Group.
            },
            &quot;imageUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine image resource used for cluster instances.The URI can represent an image or image family.Image examples: https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/[image-id] projects/[project_id]/global/images/[image-id] image-idImage family examples. Dataproc will use the most recent image from the family: https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/family/[custom-image-family-name] projects/[project_id]/global/images/family/[custom-image-family-name]If the URI is unspecified, it will be inferred from SoftwareConfig.image_version or the system default.
            &quot;machineTypeUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine machine type used for cluster instances.A full URL, partial URI, or short name are valid. Examples: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2 projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2 n1-standard-2Auto Zone Exception: If you are using the Dataproc Auto Zone Placement (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the machine type resource, for example, n1-standard-2.
            &quot;diskConfig&quot;: { # Specifies the config of disk options for a group of VM instances. # Optional. Disk option config settings.
              &quot;bootDiskType&quot;: &quot;A String&quot;, # Optional. Type of the boot disk (default is &quot;pd-standard&quot;). Valid values: &quot;pd-ssd&quot; (Persistent Disk Solid State Drive) or &quot;pd-standard&quot; (Persistent Disk Hard Disk Drive).
              &quot;numLocalSsds&quot;: 42, # Optional. Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
              &quot;bootDiskSizeGb&quot;: 42, # Optional. Size in GB of the boot disk (default is 500GB).
            },
            &quot;numInstances&quot;: 42, # Optional. The number of VM instances in the instance group. For master instance groups, must be set to 1.
            &quot;instanceNames&quot;: [ # Output only. The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group.
              &quot;A String&quot;,
            ],
            &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
            &quot;preemptibility&quot;: &quot;A String&quot;, # Optional. Specifies the preemptibility of the instance group.The default value for master and worker groups is NON_PREEMPTIBLE. This default cannot be changed.The default value for secondary instances is PREEMPTIBLE.
            &quot;minCpuPlatform&quot;: &quot;A String&quot;, # Optional. Specifies the minimum cpu platform for the Instance Group. See Dataproc -&gt; Minimum CPU Platform (https://cloud.google.com/dataproc/docs/concepts/compute/dataproc-min-cpu).
            &quot;accelerators&quot;: [ # Optional. The Compute Engine accelerator configuration for these instances.
              { # Specifies the type and number of accelerator cards attached to the instances of an instance. See GPUs on Compute Engine (https://cloud.google.com/compute/docs/gpus/).
                &quot;acceleratorTypeUri&quot;: &quot;A String&quot;, # Full URL, partial URI, or short name of the accelerator type resource to expose to this instance. See Compute Engine AcceleratorTypes (https://cloud.google.com/compute/docs/reference/beta/acceleratorTypes).Examples: https://www.googleapis.com/compute/beta/projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 nvidia-tesla-k80Auto Zone Exception: If you are using the Dataproc Auto Zone Placement (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the accelerator type resource, for example, nvidia-tesla-k80.
                &quot;acceleratorCount&quot;: 42, # The number of the accelerator cards of this type exposed to this instance.
              },
            ],
            &quot;instanceReferences&quot;: [ # Output only. List of references to Compute Engine instances.
              { # A reference to a Compute Engine instance.
                &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
                &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
              },
            ],
          },
          &quot;encryptionConfig&quot;: { # Encryption settings for the cluster. # Optional. Encryption settings for the cluster.
            &quot;gcePdKmsKeyName&quot;: &quot;A String&quot;, # Optional. The Cloud KMS key name to use for PD disk encryption for all instances in the cluster.
          },
          &quot;securityConfig&quot;: { # Security related configuration, including Kerberos. # Optional. Security settings for the cluster.
            &quot;kerberosConfig&quot;: { # Specifies Kerberos related configuration. # Kerberos related configuration.
              &quot;crossRealmTrustKdc&quot;: &quot;A String&quot;, # Optional. The KDC (IP or hostname) for the remote trusted realm in a cross realm trust relationship.
              &quot;keyPasswordUri&quot;: &quot;A String&quot;, # 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 Dataproc.
              &quot;enableKerberos&quot;: True or False, # Optional. Flag to indicate whether to Kerberize the cluster (default: false). Set this field to true to enable Kerberos on a cluster.
              &quot;crossRealmTrustAdminServer&quot;: &quot;A String&quot;, # Optional. The admin server (IP or hostname) for the remote trusted realm in a cross realm trust relationship.
              &quot;truststoreUri&quot;: &quot;A String&quot;, # Optional. The Cloud Storage URI of the truststore file used for SSL encryption. If not provided, Dataproc will provide a self-signed certificate.
              &quot;rootPrincipalPasswordUri&quot;: &quot;A String&quot;, # Optional. The Cloud Storage URI of a KMS encrypted file containing the root principal password.
              &quot;kmsKeyUri&quot;: &quot;A String&quot;, # Optional. The uri of the KMS key used to encrypt various sensitive files.
              &quot;keystoreUri&quot;: &quot;A String&quot;, # Optional. The Cloud Storage URI of the keystore file used for SSL encryption. If not provided, Dataproc will provide a self-signed certificate.
              &quot;crossRealmTrustSharedPasswordUri&quot;: &quot;A String&quot;, # 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.
              &quot;truststorePasswordUri&quot;: &quot;A String&quot;, # 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 Dataproc.
              &quot;crossRealmTrustRealm&quot;: &quot;A String&quot;, # Optional. The remote realm the Dataproc on-cluster KDC will trust, should the user enable cross realm trust.
              &quot;keystorePasswordUri&quot;: &quot;A String&quot;, # 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 Dataproc.
              &quot;realm&quot;: &quot;A String&quot;, # Optional. The name of the on-cluster Kerberos realm. If not specified, the uppercased domain of hostnames will be the realm.
              &quot;kdcDbKeyUri&quot;: &quot;A String&quot;, # Optional. The Cloud Storage URI of a KMS encrypted file containing the master key of the KDC database.
              &quot;tgtLifetimeHours&quot;: 42, # Optional. The lifetime of the ticket granting ticket, in hours. If not specified, or user specifies 0, then default value 10 will be used.
            },
          },
          &quot;autoscalingConfig&quot;: { # Autoscaling Policy config associated with the cluster. # Optional. Autoscaling config for the policy associated with the cluster. Cluster does not autoscale if this field is unset.
            &quot;policyUri&quot;: &quot;A String&quot;, # 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/[project_id]/locations/[dataproc_region]/autoscalingPolicies/[policy_id] projects/[project_id]/locations/[dataproc_region]/autoscalingPolicies/[policy_id]Note that the policy must be in the same project and Dataproc region.
          },
          &quot;gceClusterConfig&quot;: { # Common config settings for resources of Compute Engine cluster instances, applicable to all instances in the cluster. # Optional. The shared Compute Engine config settings for all instances in a cluster.
            &quot;internalIpOnly&quot;: True or False, # Optional. If true, all instances in the cluster will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This internal_ip_only restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
            &quot;zoneUri&quot;: &quot;A String&quot;, # Optional. The zone where the Compute Engine cluster will be located. On a create request, it is required in the &quot;global&quot; region. If omitted in a non-global Dataproc region, the service will pick a zone in the corresponding 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/[project_id]/zones/[zone] projects/[project_id]/zones/[zone] us-central1-f
            &quot;tags&quot;: [ # The Compute Engine tags to add to all instances (see Tagging instances (https://cloud.google.com/compute/docs/label-or-tag-resources#tags)).
              &quot;A String&quot;,
            ],
            &quot;metadata&quot;: { # 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)).
              &quot;a_key&quot;: &quot;A String&quot;,
            },
            &quot;subnetworkUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine subnetwork to be used for machine communications. Cannot be specified with network_uri.A full URL, partial URI, or short name are valid. Examples: https://www.googleapis.com/compute/v1/projects/[project_id]/regions/us-east1/subnetworks/sub0 projects/[project_id]/regions/us-east1/subnetworks/sub0 sub0
            &quot;serviceAccount&quot;: &quot;A String&quot;, # Optional. The Dataproc 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 Dataproc 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.
            &quot;privateIpv6GoogleAccess&quot;: &quot;A String&quot;, # Optional. The type of IPv6 access for a cluster.
            &quot;serviceAccountScopes&quot;: [ # 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.writeIf 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
              &quot;A String&quot;,
            ],
            &quot;reservationAffinity&quot;: { # Reservation Affinity for consuming Zonal reservation. # Optional. Reservation Affinity for consuming Zonal reservation.
              &quot;values&quot;: [ # Optional. Corresponds to the label values of reservation resource.
                &quot;A String&quot;,
              ],
              &quot;key&quot;: &quot;A String&quot;, # Optional. Corresponds to the label key of reservation resource.
              &quot;consumeReservationType&quot;: &quot;A String&quot;, # Optional. Type of reservation to consume
            },
            &quot;networkUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither network_uri nor subnetwork_uri is specified, the &quot;default&quot; network of the project is used, if it exists. Cannot be a &quot;Custom Subnet Network&quot; (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/[project_id]/regions/global/default projects/[project_id]/regions/global/default default
            &quot;nodeGroupAffinity&quot;: { # Node Group Affinity for clusters using sole-tenant node groups. # Optional. Node Group Affinity for sole-tenant clusters.
              &quot;nodeGroupUri&quot;: &quot;A String&quot;, # 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/[project_id]/zones/us-central1-a/nodeGroups/node-group-1 projects/[project_id]/zones/us-central1-a/nodeGroups/node-group-1 node-group-1
            },
          },
          &quot;endpointConfig&quot;: { # Endpoint config for this cluster # Optional. Port/endpoint configuration for this cluster
            &quot;httpPorts&quot;: { # Output only. The map of port descriptions to URLs. Will only be populated if enable_http_port_access is true.
              &quot;a_key&quot;: &quot;A String&quot;,
            },
            &quot;enableHttpPortAccess&quot;: True or False, # Optional. If true, enable http access to specific ports on the cluster from external sources. Defaults to false.
          },
        },
        &quot;labels&quot;: { # Optional. The labels to associate with this cluster.Label keys must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 32 labels can be associated with a given cluster.
          &quot;a_key&quot;: &quot;A String&quot;,
        },
        &quot;clusterName&quot;: &quot;A String&quot;, # Required. The cluster name prefix. A unique cluster name will be formed by appending a random suffix.The name must contain only lower-case letters (a-z), numbers (0-9), and hyphens (-). Must begin with a letter. Cannot begin or end with hyphen. Must consist of between 2 and 35 characters.
      },
    },
    &quot;version&quot;: 42, # Optional. Used to perform a consistent read-modify-write.This field should be left blank for a CreateWorkflowTemplate request. It is required for an UpdateWorkflowTemplate request, and must match the current server version. A typical update template flow would fetch the current template with a GetWorkflowTemplate request, which will return the current template with the version field filled in with the current server version. The user updates other fields in the template, then returns it as part of the UpdateWorkflowTemplate request.
    &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time template was created.
    &quot;parameters&quot;: [ # Optional. Template parameters whose values are substituted into the template. Values for parameters must be provided when the template is instantiated.
      { # A configurable parameter that replaces one or more fields in the template. Parameterizable fields: - Labels - File uris - Job properties - Job arguments - Script variables - Main class (in HadoopJob and SparkJob) - Zone (in ClusterSelector)
        &quot;validation&quot;: { # Configuration for parameter validation. # Optional. Validation rules to be applied to this parameter&#x27;s value.
          &quot;values&quot;: { # Validation based on a list of allowed values. # Validation based on a list of allowed values.
            &quot;values&quot;: [ # Required. List of allowed values for the parameter.
              &quot;A String&quot;,
            ],
          },
          &quot;regex&quot;: { # Validation based on regular expressions. # Validation based on regular expressions.
            &quot;regexes&quot;: [ # Required. RE2 regular expressions used to validate the parameter&#x27;s value. The value must match the regex in its entirety (substring matches are not sufficient).
              &quot;A String&quot;,
            ],
          },
        },
        &quot;fields&quot;: [ # Required. Paths to all fields that the parameter replaces. A field is allowed to appear in at most one parameter&#x27;s list of field paths.A field path is similar in syntax to a google.protobuf.FieldMask. For example, a field path that references the zone field of a workflow template&#x27;s cluster selector would be specified as placement.clusterSelector.zone.Also, field paths can reference fields using the following syntax: Values in maps can be referenced by key: labels&#x27;key&#x27; placement.clusterSelector.clusterLabels&#x27;key&#x27; placement.managedCluster.labels&#x27;key&#x27; placement.clusterSelector.clusterLabels&#x27;key&#x27; jobs&#x27;step-id&#x27;.labels&#x27;key&#x27; Jobs in the jobs list can be referenced by step-id: jobs&#x27;step-id&#x27;.hadoopJob.mainJarFileUri jobs&#x27;step-id&#x27;.hiveJob.queryFileUri jobs&#x27;step-id&#x27;.pySparkJob.mainPythonFileUri jobs&#x27;step-id&#x27;.hadoopJob.jarFileUris0 jobs&#x27;step-id&#x27;.hadoopJob.archiveUris0 jobs&#x27;step-id&#x27;.hadoopJob.fileUris0 jobs&#x27;step-id&#x27;.pySparkJob.pythonFileUris0 Items in repeated fields can be referenced by a zero-based index: jobs&#x27;step-id&#x27;.sparkJob.args0 Other examples: jobs&#x27;step-id&#x27;.hadoopJob.properties&#x27;key&#x27; jobs&#x27;step-id&#x27;.hadoopJob.args0 jobs&#x27;step-id&#x27;.hiveJob.scriptVariables&#x27;key&#x27; jobs&#x27;step-id&#x27;.hadoopJob.mainJarFileUri placement.clusterSelector.zoneIt may not be possible to parameterize maps and repeated fields in their entirety since only individual map values and individual items in repeated fields can be referenced. For example, the following field paths are invalid: placement.clusterSelector.clusterLabels jobs&#x27;step-id&#x27;.sparkJob.args
          &quot;A String&quot;,
        ],
        &quot;name&quot;: &quot;A String&quot;, # Required. Parameter name. The parameter name is used as the key, and paired with the parameter value, which are passed to the template when the template is instantiated. The name must contain only capital letters (A-Z), numbers (0-9), and underscores (_), and must not start with a number. The maximum length is 40 characters.
        &quot;description&quot;: &quot;A String&quot;, # Optional. Brief description of the parameter. Must not exceed 1024 characters.
      },
    ],
    &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of the workflow template, as described in https://cloud.google.com/apis/design/resource_names. For projects.regions.workflowTemplates, the resource name of the template has the following format: projects/{project_id}/regions/{region}/workflowTemplates/{template_id} For projects.locations.workflowTemplates, the resource name of the template has the following format: projects/{project_id}/locations/{location}/workflowTemplates/{template_id}
    &quot;jobs&quot;: [ # Required. The Directed Acyclic Graph of Jobs to submit.
      { # A job executed by the workflow.
        &quot;stepId&quot;: &quot;A String&quot;, # Required. The step id. The id must be unique among all jobs within the template.The step id is used as prefix for job id, as job goog-dataproc-workflow-step-id label, and in prerequisiteStepIds field from other steps.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 between 3 and 50 characters.
        &quot;pigJob&quot;: { # A Dataproc job for running Apache Pig (https://pig.apache.org/) queries on YARN. # Optional. Job is a Pig job.
          &quot;properties&quot;: { # Optional. A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
            &quot;a_key&quot;: &quot;A String&quot;,
          },
          &quot;scriptVariables&quot;: { # Optional. Mapping of query variable names to values (equivalent to the Pig command: name=[value]).
            &quot;a_key&quot;: &quot;A String&quot;,
          },
          &quot;jarFileUris&quot;: [ # Optional. HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
            &quot;A String&quot;,
          ],
          &quot;loggingConfig&quot;: { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
            &quot;driverLogLevels&quot;: { # The per-package log levels for the driver. This may include &quot;root&quot; package name to configure rootLogger. Examples: &#x27;com.google = FATAL&#x27;, &#x27;root = INFO&#x27;, &#x27;org.apache = DEBUG&#x27;
              &quot;a_key&quot;: &quot;A String&quot;,
            },
          },
          &quot;queryList&quot;: { # A list of queries to run on a cluster. # A list of queries.
            &quot;queries&quot;: [ # Required. The queries to execute. You do not need to end a query expression with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of a Dataproc API snippet that uses a QueryList to specify a HiveJob: &quot;hiveJob&quot;: { &quot;queryList&quot;: { &quot;queries&quot;: [ &quot;query1&quot;, &quot;query2&quot;, &quot;query3;query4&quot;, ] } }
              &quot;A String&quot;,
            ],
          },
          &quot;continueOnFailure&quot;: True or False, # Optional. Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
          &quot;queryFileUri&quot;: &quot;A String&quot;, # The HCFS URI of the script that contains the Pig queries.
        },
        &quot;sparkJob&quot;: { # A Dataproc job for running Apache Spark (http://spark.apache.org/) applications on YARN. # Optional. Job is a Spark job.
          &quot;loggingConfig&quot;: { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
            &quot;driverLogLevels&quot;: { # The per-package log levels for the driver. This may include &quot;root&quot; package name to configure rootLogger. Examples: &#x27;com.google = FATAL&#x27;, &#x27;root = INFO&#x27;, &#x27;org.apache = DEBUG&#x27;
              &quot;a_key&quot;: &quot;A String&quot;,
            },
          },
          &quot;archiveUris&quot;: [ # Optional. HCFS URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
            &quot;A String&quot;,
          ],
          &quot;jarFileUris&quot;: [ # Optional. HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
            &quot;A String&quot;,
          ],
          &quot;properties&quot;: { # Optional. A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
            &quot;a_key&quot;: &quot;A String&quot;,
          },
          &quot;mainClass&quot;: &quot;A String&quot;, # The name of the driver&#x27;s main class. The jar file that contains the class must be in the default CLASSPATH or specified in jar_file_uris.
          &quot;mainJarFileUri&quot;: &quot;A String&quot;, # The HCFS URI of the jar file that contains the main class.
          &quot;args&quot;: [ # Optional. The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
            &quot;A String&quot;,
          ],
          &quot;fileUris&quot;: [ # Optional. HCFS URIs of files to be placed in the working directory of each executor. Useful for naively parallel tasks.
            &quot;A String&quot;,
          ],
        },
        &quot;pysparkJob&quot;: { # A Dataproc job for running Apache PySpark (https://spark.apache.org/docs/0.9.0/python-programming-guide.html) applications on YARN. # Optional. Job is a PySpark job.
          &quot;loggingConfig&quot;: { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
            &quot;driverLogLevels&quot;: { # The per-package log levels for the driver. This may include &quot;root&quot; package name to configure rootLogger. Examples: &#x27;com.google = FATAL&#x27;, &#x27;root = INFO&#x27;, &#x27;org.apache = DEBUG&#x27;
              &quot;a_key&quot;: &quot;A String&quot;,
            },
          },
          &quot;mainPythonFileUri&quot;: &quot;A String&quot;, # Required. The HCFS URI of the main Python file to use as the driver. Must be a .py file.
          &quot;pythonFileUris&quot;: [ # Optional. HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
            &quot;A String&quot;,
          ],
          &quot;args&quot;: [ # Optional. The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
            &quot;A String&quot;,
          ],
          &quot;properties&quot;: { # Optional. A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
            &quot;a_key&quot;: &quot;A String&quot;,
          },
          &quot;jarFileUris&quot;: [ # Optional. HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
            &quot;A String&quot;,
          ],
          &quot;archiveUris&quot;: [ # Optional. HCFS URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
            &quot;A String&quot;,
          ],
          &quot;fileUris&quot;: [ # Optional. HCFS URIs of files to be placed in the working directory of each executor. Useful for naively parallel tasks.
            &quot;A String&quot;,
          ],
        },
        &quot;scheduling&quot;: { # Job scheduling options. # Optional. Job scheduling configuration.
          &quot;maxFailuresTotal&quot;: 42, # Optional. Maximum number of times in total a driver may be restarted as a result of driver exiting with non-zero code before job is reported failed. Maximum value is 240
          &quot;maxFailuresPerHour&quot;: 42, # Optional. Maximum number of times per hour a driver may be restarted as a result of driver exiting with non-zero code before job is reported failed.A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window.Maximum value is 10.
        },
        &quot;sparkSqlJob&quot;: { # A Dataproc job for running Apache Spark SQL (http://spark.apache.org/sql/) queries. # Optional. Job is a SparkSql job.
          &quot;queryFileUri&quot;: &quot;A String&quot;, # The HCFS URI of the script that contains SQL queries.
          &quot;loggingConfig&quot;: { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
            &quot;driverLogLevels&quot;: { # The per-package log levels for the driver. This may include &quot;root&quot; package name to configure rootLogger. Examples: &#x27;com.google = FATAL&#x27;, &#x27;root = INFO&#x27;, &#x27;org.apache = DEBUG&#x27;
              &quot;a_key&quot;: &quot;A String&quot;,
            },
          },
          &quot;scriptVariables&quot;: { # Optional. Mapping of query variable names to values (equivalent to the Spark SQL command: SET name=&quot;value&quot;;).
            &quot;a_key&quot;: &quot;A String&quot;,
          },
          &quot;queryList&quot;: { # A list of queries to run on a cluster. # A list of queries.
            &quot;queries&quot;: [ # Required. The queries to execute. You do not need to end a query expression with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of a Dataproc API snippet that uses a QueryList to specify a HiveJob: &quot;hiveJob&quot;: { &quot;queryList&quot;: { &quot;queries&quot;: [ &quot;query1&quot;, &quot;query2&quot;, &quot;query3;query4&quot;, ] } }
              &quot;A String&quot;,
            ],
          },
          &quot;properties&quot;: { # Optional. A mapping of property names to values, used to configure Spark SQL&#x27;s SparkConf. Properties that conflict with values set by the Dataproc API may be overwritten.
            &quot;a_key&quot;: &quot;A String&quot;,
          },
          &quot;jarFileUris&quot;: [ # Optional. HCFS URIs of jar files to be added to the Spark CLASSPATH.
            &quot;A String&quot;,
          ],
        },
        &quot;hiveJob&quot;: { # A Dataproc job for running Apache Hive (https://hive.apache.org/) queries on YARN. # Optional. Job is a Hive job.
          &quot;jarFileUris&quot;: [ # Optional. HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
            &quot;A String&quot;,
          ],
          &quot;continueOnFailure&quot;: True or False, # Optional. Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
          &quot;properties&quot;: { # Optional. A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
            &quot;a_key&quot;: &quot;A String&quot;,
          },
          &quot;queryList&quot;: { # A list of queries to run on a cluster. # A list of queries.
            &quot;queries&quot;: [ # Required. The queries to execute. You do not need to end a query expression with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of a Dataproc API snippet that uses a QueryList to specify a HiveJob: &quot;hiveJob&quot;: { &quot;queryList&quot;: { &quot;queries&quot;: [ &quot;query1&quot;, &quot;query2&quot;, &quot;query3;query4&quot;, ] } }
              &quot;A String&quot;,
            ],
          },
          &quot;scriptVariables&quot;: { # Optional. Mapping of query variable names to values (equivalent to the Hive command: SET name=&quot;value&quot;;).
            &quot;a_key&quot;: &quot;A String&quot;,
          },
          &quot;queryFileUri&quot;: &quot;A String&quot;, # The HCFS URI of the script that contains Hive queries.
        },
        &quot;prestoJob&quot;: { # A Dataproc job for running Presto (https://prestosql.io/) queries. IMPORTANT: The Dataproc Presto Optional Component (https://cloud.google.com/dataproc/docs/concepts/components/presto) must be enabled when the cluster is created to submit a Presto job to the cluster. # Optional. Job is a Presto job.
          &quot;properties&quot;: { # Optional. A mapping of property names to values. Used to set Presto session properties (https://prestodb.io/docs/current/sql/set-session.html) Equivalent to using the --session flag in the Presto CLI
            &quot;a_key&quot;: &quot;A String&quot;,
          },
          &quot;clientTags&quot;: [ # Optional. Presto client tags to attach to this query
            &quot;A String&quot;,
          ],
          &quot;queryFileUri&quot;: &quot;A String&quot;, # The HCFS URI of the script that contains SQL queries.
          &quot;queryList&quot;: { # A list of queries to run on a cluster. # A list of queries.
            &quot;queries&quot;: [ # Required. The queries to execute. You do not need to end a query expression with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of a Dataproc API snippet that uses a QueryList to specify a HiveJob: &quot;hiveJob&quot;: { &quot;queryList&quot;: { &quot;queries&quot;: [ &quot;query1&quot;, &quot;query2&quot;, &quot;query3;query4&quot;, ] } }
              &quot;A String&quot;,
            ],
          },
          &quot;outputFormat&quot;: &quot;A String&quot;, # Optional. The format in which query output will be displayed. See the Presto documentation for supported output formats
          &quot;continueOnFailure&quot;: True or False, # Optional. Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
          &quot;loggingConfig&quot;: { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
            &quot;driverLogLevels&quot;: { # The per-package log levels for the driver. This may include &quot;root&quot; package name to configure rootLogger. Examples: &#x27;com.google = FATAL&#x27;, &#x27;root = INFO&#x27;, &#x27;org.apache = DEBUG&#x27;
              &quot;a_key&quot;: &quot;A String&quot;,
            },
          },
        },
        &quot;hadoopJob&quot;: { # A Dataproc job for running Apache Hadoop MapReduce (https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html) jobs on Apache Hadoop YARN (https://hadoop.apache.org/docs/r2.7.1/hadoop-yarn/hadoop-yarn-site/YARN.html). # Optional. Job is a Hadoop job.
          &quot;fileUris&quot;: [ # Optional. HCFS (Hadoop Compatible Filesystem) URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
            &quot;A String&quot;,
          ],
          &quot;mainClass&quot;: &quot;A String&quot;, # The name of the driver&#x27;s main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
          &quot;args&quot;: [ # Optional. The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
            &quot;A String&quot;,
          ],
          &quot;mainJarFileUri&quot;: &quot;A String&quot;, # The HCFS URI of the jar file containing the main class. Examples: &#x27;gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar&#x27; &#x27;hdfs:/tmp/test-samples/custom-wordcount.jar&#x27; &#x27;file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar&#x27;
          &quot;jarFileUris&quot;: [ # Optional. Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
            &quot;A String&quot;,
          ],
          &quot;archiveUris&quot;: [ # Optional. HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
            &quot;A String&quot;,
          ],
          &quot;properties&quot;: { # Optional. A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
            &quot;a_key&quot;: &quot;A String&quot;,
          },
          &quot;loggingConfig&quot;: { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
            &quot;driverLogLevels&quot;: { # The per-package log levels for the driver. This may include &quot;root&quot; package name to configure rootLogger. Examples: &#x27;com.google = FATAL&#x27;, &#x27;root = INFO&#x27;, &#x27;org.apache = DEBUG&#x27;
              &quot;a_key&quot;: &quot;A String&quot;,
            },
          },
        },
        &quot;sparkRJob&quot;: { # A Dataproc job for running Apache SparkR (https://spark.apache.org/docs/latest/sparkr.html) applications on YARN. # Optional. Job is a SparkR job.
          &quot;properties&quot;: { # Optional. A mapping of property names to values, used to configure SparkR. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
            &quot;a_key&quot;: &quot;A String&quot;,
          },
          &quot;loggingConfig&quot;: { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
            &quot;driverLogLevels&quot;: { # The per-package log levels for the driver. This may include &quot;root&quot; package name to configure rootLogger. Examples: &#x27;com.google = FATAL&#x27;, &#x27;root = INFO&#x27;, &#x27;org.apache = DEBUG&#x27;
              &quot;a_key&quot;: &quot;A String&quot;,
            },
          },
          &quot;mainRFileUri&quot;: &quot;A String&quot;, # Required. The HCFS URI of the main R file to use as the driver. Must be a .R file.
          &quot;archiveUris&quot;: [ # Optional. HCFS URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
            &quot;A String&quot;,
          ],
          &quot;fileUris&quot;: [ # Optional. HCFS URIs of files to be placed in the working directory of each executor. Useful for naively parallel tasks.
            &quot;A String&quot;,
          ],
          &quot;args&quot;: [ # Optional. The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
            &quot;A String&quot;,
          ],
        },
        &quot;prerequisiteStepIds&quot;: [ # Optional. The optional list of prerequisite job step_ids. If not specified, the job will start at the beginning of workflow.
          &quot;A String&quot;,
        ],
        &quot;labels&quot;: { # Optional. The labels to associate with this job.Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 32 labels can be associated with a given job.
          &quot;a_key&quot;: &quot;A String&quot;,
        },
      },
    ],
  }

  requestId: string, Optional. A tag that prevents multiple concurrent workflow instances with the same tag from running. This mitigates risk of concurrent instances started due to retries.It is recommended to always set this value to a UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier).The tag must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). The maximum length is 40 characters.
  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.
    &quot;error&quot;: { # 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.
      &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
      &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
        {
          &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
        },
      ],
      &quot;message&quot;: &quot;A String&quot;, # 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.
    },
    &quot;response&quot;: { # The normal response of the operation in case of success. 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.
      &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
    },
    &quot;done&quot;: 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.
    &quot;name&quot;: &quot;A String&quot;, # 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}.
    &quot;metadata&quot;: { # 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.
      &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
    },
  }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
  <pre>Lists workflows that match the specified filter in the request.

Args:
  parent: string, Required. The resource name of the region or location, as described in https://cloud.google.com/apis/design/resource_names. For projects.regions.workflowTemplates,list, the resource name of the region has the following format: projects/{project_id}/regions/{region} For projects.locations.workflowTemplates.list, the resource name of the location has the following format: projects/{project_id}/locations/{location} (required)
  pageSize: integer, Optional. The maximum number of results to return in each response.
  pageToken: string, Optional. The page token, returned by a previous call, to request the next page of results.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A response to a request to list workflow templates in a project.
    &quot;nextPageToken&quot;: &quot;A String&quot;, # Output only. This token is included in the response if there are more results to fetch. To fetch additional results, provide this value as the page_token in a subsequent ListWorkflowTemplatesRequest.
    &quot;templates&quot;: [ # Output only. WorkflowTemplates list.
      { # A Dataproc workflow template resource.
          &quot;id&quot;: &quot;A String&quot;,
          &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time template was last updated.
          &quot;labels&quot;: { # Optional. The labels to associate with this template. These labels will be propagated to all jobs and clusters created by the workflow instance.Label keys must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt).Label values may be empty, but, if present, must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt).No more than 32 labels can be associated with a template.
            &quot;a_key&quot;: &quot;A String&quot;,
          },
          &quot;placement&quot;: { # Specifies workflow execution target.Either managed_cluster or cluster_selector is required. # Required. WorkflowTemplate scheduling information.
            &quot;clusterSelector&quot;: { # A selector that chooses target cluster for jobs based on metadata. # Optional. A selector that chooses target cluster for jobs based on metadata.The selector is evaluated at the time each job is submitted.
              &quot;zone&quot;: &quot;A String&quot;, # Optional. The zone where workflow process executes. This parameter does not affect the selection of the cluster.If unspecified, the zone of the first cluster matching the selector is used.
              &quot;clusterLabels&quot;: { # Required. The cluster labels. Cluster must have all labels to match.
                &quot;a_key&quot;: &quot;A String&quot;,
              },
            },
            &quot;managedCluster&quot;: { # Cluster that is managed by the workflow. # A cluster that is managed by the workflow.
              &quot;config&quot;: { # The cluster config. # Required. The cluster configuration.
                &quot;tempBucket&quot;: &quot;A String&quot;, # 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, Dataproc will determine a Cloud Storage location (US, ASIA, or EU) for your cluster&#x27;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.
                &quot;lifecycleConfig&quot;: { # Specifies the cluster auto-delete schedule configuration. # Optional. Lifecycle setting for the cluster.
                  &quot;autoDeleteTime&quot;: &quot;A String&quot;, # Optional. The time when cluster will be auto-deleted (see JSON representation of Timestamp (https://developers.google.com/protocol-buffers/docs/proto3#json)).
                  &quot;idleStartTime&quot;: &quot;A String&quot;, # 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)).
                  &quot;idleDeleteTtl&quot;: &quot;A String&quot;, # 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).
                  &quot;autoDeleteTtl&quot;: &quot;A String&quot;, # 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)).
                },
                &quot;masterConfig&quot;: { # The config settings for Compute Engine resources in an instance group, such as a master or worker group. # Optional. The Compute Engine config settings for the master instance in a cluster.
                  &quot;managedGroupConfig&quot;: { # Specifies the resources used to actively manage an instance group. # Output only. The config for Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
                    &quot;instanceGroupManagerName&quot;: &quot;A String&quot;, # Output only. The name of the Instance Group Manager for this group.
                    &quot;instanceTemplateName&quot;: &quot;A String&quot;, # Output only. The name of the Instance Template used for the Managed Instance Group.
                  },
                  &quot;imageUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine image resource used for cluster instances.The URI can represent an image or image family.Image examples: https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/[image-id] projects/[project_id]/global/images/[image-id] image-idImage family examples. Dataproc will use the most recent image from the family: https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/family/[custom-image-family-name] projects/[project_id]/global/images/family/[custom-image-family-name]If the URI is unspecified, it will be inferred from SoftwareConfig.image_version or the system default.
                  &quot;machineTypeUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine machine type used for cluster instances.A full URL, partial URI, or short name are valid. Examples: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2 projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2 n1-standard-2Auto Zone Exception: If you are using the Dataproc Auto Zone Placement (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the machine type resource, for example, n1-standard-2.
                  &quot;diskConfig&quot;: { # Specifies the config of disk options for a group of VM instances. # Optional. Disk option config settings.
                    &quot;bootDiskType&quot;: &quot;A String&quot;, # Optional. Type of the boot disk (default is &quot;pd-standard&quot;). Valid values: &quot;pd-ssd&quot; (Persistent Disk Solid State Drive) or &quot;pd-standard&quot; (Persistent Disk Hard Disk Drive).
                    &quot;numLocalSsds&quot;: 42, # Optional. Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
                    &quot;bootDiskSizeGb&quot;: 42, # Optional. Size in GB of the boot disk (default is 500GB).
                  },
                  &quot;numInstances&quot;: 42, # Optional. The number of VM instances in the instance group. For master instance groups, must be set to 1.
                  &quot;instanceNames&quot;: [ # Output only. The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group.
                    &quot;A String&quot;,
                  ],
                  &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
                  &quot;preemptibility&quot;: &quot;A String&quot;, # Optional. Specifies the preemptibility of the instance group.The default value for master and worker groups is NON_PREEMPTIBLE. This default cannot be changed.The default value for secondary instances is PREEMPTIBLE.
                  &quot;minCpuPlatform&quot;: &quot;A String&quot;, # Optional. Specifies the minimum cpu platform for the Instance Group. See Dataproc -&gt; Minimum CPU Platform (https://cloud.google.com/dataproc/docs/concepts/compute/dataproc-min-cpu).
                  &quot;accelerators&quot;: [ # Optional. The Compute Engine accelerator configuration for these instances.
                    { # Specifies the type and number of accelerator cards attached to the instances of an instance. See GPUs on Compute Engine (https://cloud.google.com/compute/docs/gpus/).
                      &quot;acceleratorTypeUri&quot;: &quot;A String&quot;, # Full URL, partial URI, or short name of the accelerator type resource to expose to this instance. See Compute Engine AcceleratorTypes (https://cloud.google.com/compute/docs/reference/beta/acceleratorTypes).Examples: https://www.googleapis.com/compute/beta/projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 nvidia-tesla-k80Auto Zone Exception: If you are using the Dataproc Auto Zone Placement (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the accelerator type resource, for example, nvidia-tesla-k80.
                      &quot;acceleratorCount&quot;: 42, # The number of the accelerator cards of this type exposed to this instance.
                    },
                  ],
                  &quot;instanceReferences&quot;: [ # Output only. List of references to Compute Engine instances.
                    { # A reference to a Compute Engine instance.
                      &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
                      &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
                    },
                  ],
                },
                &quot;softwareConfig&quot;: { # Specifies the selection and config of software inside the cluster. # Optional. The config settings for software inside the cluster.
                  &quot;properties&quot;: { # 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.xmlFor more information, see Cluster properties (https://cloud.google.com/dataproc/docs/concepts/cluster-properties).
                    &quot;a_key&quot;: &quot;A String&quot;,
                  },
                  &quot;imageVersion&quot;: &quot;A String&quot;, # Optional. The version of software inside the cluster. It must be one of the supported Dataproc Versions (https://cloud.google.com/dataproc/docs/concepts/versioning/dataproc-versions#supported_dataproc_versions), such as &quot;1.2&quot; (including a subminor version, such as &quot;1.2.29&quot;), or the &quot;preview&quot; version (https://cloud.google.com/dataproc/docs/concepts/versioning/dataproc-versions#other_versions). If unspecified, it defaults to the latest Debian version.
                  &quot;optionalComponents&quot;: [ # Optional. The set of components to activate on the cluster.
                    &quot;A String&quot;,
                  ],
                },
                &quot;configBucket&quot;: &quot;A String&quot;, # 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, Cloud Dataproc will determine a Cloud Storage location (US, ASIA, or EU) for your cluster&#x27;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 Dataproc staging bucket (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/staging-bucket)).
                &quot;initializationActions&quot;: [ # 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&#x27;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 [[ &quot;${ROLE}&quot; == &#x27;Master&#x27; ]]; then ... master specific actions ... else ... worker specific actions ... fi
                  { # Specifies an executable to run on a fully configured node and a timeout period for executable completion.
                    &quot;executionTimeout&quot;: &quot;A String&quot;, # 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.
                    &quot;executableFile&quot;: &quot;A String&quot;, # Required. Cloud Storage URI of executable file.
                  },
                ],
                &quot;secondaryWorkerConfig&quot;: { # The config settings for Compute Engine resources in an instance group, such as a master or worker group. # Optional. The Compute Engine config settings for additional worker instances in a cluster.
                  &quot;managedGroupConfig&quot;: { # Specifies the resources used to actively manage an instance group. # Output only. The config for Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
                    &quot;instanceGroupManagerName&quot;: &quot;A String&quot;, # Output only. The name of the Instance Group Manager for this group.
                    &quot;instanceTemplateName&quot;: &quot;A String&quot;, # Output only. The name of the Instance Template used for the Managed Instance Group.
                  },
                  &quot;imageUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine image resource used for cluster instances.The URI can represent an image or image family.Image examples: https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/[image-id] projects/[project_id]/global/images/[image-id] image-idImage family examples. Dataproc will use the most recent image from the family: https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/family/[custom-image-family-name] projects/[project_id]/global/images/family/[custom-image-family-name]If the URI is unspecified, it will be inferred from SoftwareConfig.image_version or the system default.
                  &quot;machineTypeUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine machine type used for cluster instances.A full URL, partial URI, or short name are valid. Examples: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2 projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2 n1-standard-2Auto Zone Exception: If you are using the Dataproc Auto Zone Placement (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the machine type resource, for example, n1-standard-2.
                  &quot;diskConfig&quot;: { # Specifies the config of disk options for a group of VM instances. # Optional. Disk option config settings.
                    &quot;bootDiskType&quot;: &quot;A String&quot;, # Optional. Type of the boot disk (default is &quot;pd-standard&quot;). Valid values: &quot;pd-ssd&quot; (Persistent Disk Solid State Drive) or &quot;pd-standard&quot; (Persistent Disk Hard Disk Drive).
                    &quot;numLocalSsds&quot;: 42, # Optional. Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
                    &quot;bootDiskSizeGb&quot;: 42, # Optional. Size in GB of the boot disk (default is 500GB).
                  },
                  &quot;numInstances&quot;: 42, # Optional. The number of VM instances in the instance group. For master instance groups, must be set to 1.
                  &quot;instanceNames&quot;: [ # Output only. The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group.
                    &quot;A String&quot;,
                  ],
                  &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
                  &quot;preemptibility&quot;: &quot;A String&quot;, # Optional. Specifies the preemptibility of the instance group.The default value for master and worker groups is NON_PREEMPTIBLE. This default cannot be changed.The default value for secondary instances is PREEMPTIBLE.
                  &quot;minCpuPlatform&quot;: &quot;A String&quot;, # Optional. Specifies the minimum cpu platform for the Instance Group. See Dataproc -&gt; Minimum CPU Platform (https://cloud.google.com/dataproc/docs/concepts/compute/dataproc-min-cpu).
                  &quot;accelerators&quot;: [ # Optional. The Compute Engine accelerator configuration for these instances.
                    { # Specifies the type and number of accelerator cards attached to the instances of an instance. See GPUs on Compute Engine (https://cloud.google.com/compute/docs/gpus/).
                      &quot;acceleratorTypeUri&quot;: &quot;A String&quot;, # Full URL, partial URI, or short name of the accelerator type resource to expose to this instance. See Compute Engine AcceleratorTypes (https://cloud.google.com/compute/docs/reference/beta/acceleratorTypes).Examples: https://www.googleapis.com/compute/beta/projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 nvidia-tesla-k80Auto Zone Exception: If you are using the Dataproc Auto Zone Placement (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the accelerator type resource, for example, nvidia-tesla-k80.
                      &quot;acceleratorCount&quot;: 42, # The number of the accelerator cards of this type exposed to this instance.
                    },
                  ],
                  &quot;instanceReferences&quot;: [ # Output only. List of references to Compute Engine instances.
                    { # A reference to a Compute Engine instance.
                      &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
                      &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
                    },
                  ],
                },
                &quot;workerConfig&quot;: { # The config settings for Compute Engine resources in an instance group, such as a master or worker group. # Optional. The Compute Engine config settings for worker instances in a cluster.
                  &quot;managedGroupConfig&quot;: { # Specifies the resources used to actively manage an instance group. # Output only. The config for Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
                    &quot;instanceGroupManagerName&quot;: &quot;A String&quot;, # Output only. The name of the Instance Group Manager for this group.
                    &quot;instanceTemplateName&quot;: &quot;A String&quot;, # Output only. The name of the Instance Template used for the Managed Instance Group.
                  },
                  &quot;imageUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine image resource used for cluster instances.The URI can represent an image or image family.Image examples: https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/[image-id] projects/[project_id]/global/images/[image-id] image-idImage family examples. Dataproc will use the most recent image from the family: https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/family/[custom-image-family-name] projects/[project_id]/global/images/family/[custom-image-family-name]If the URI is unspecified, it will be inferred from SoftwareConfig.image_version or the system default.
                  &quot;machineTypeUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine machine type used for cluster instances.A full URL, partial URI, or short name are valid. Examples: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2 projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2 n1-standard-2Auto Zone Exception: If you are using the Dataproc Auto Zone Placement (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the machine type resource, for example, n1-standard-2.
                  &quot;diskConfig&quot;: { # Specifies the config of disk options for a group of VM instances. # Optional. Disk option config settings.
                    &quot;bootDiskType&quot;: &quot;A String&quot;, # Optional. Type of the boot disk (default is &quot;pd-standard&quot;). Valid values: &quot;pd-ssd&quot; (Persistent Disk Solid State Drive) or &quot;pd-standard&quot; (Persistent Disk Hard Disk Drive).
                    &quot;numLocalSsds&quot;: 42, # Optional. Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
                    &quot;bootDiskSizeGb&quot;: 42, # Optional. Size in GB of the boot disk (default is 500GB).
                  },
                  &quot;numInstances&quot;: 42, # Optional. The number of VM instances in the instance group. For master instance groups, must be set to 1.
                  &quot;instanceNames&quot;: [ # Output only. The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group.
                    &quot;A String&quot;,
                  ],
                  &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
                  &quot;preemptibility&quot;: &quot;A String&quot;, # Optional. Specifies the preemptibility of the instance group.The default value for master and worker groups is NON_PREEMPTIBLE. This default cannot be changed.The default value for secondary instances is PREEMPTIBLE.
                  &quot;minCpuPlatform&quot;: &quot;A String&quot;, # Optional. Specifies the minimum cpu platform for the Instance Group. See Dataproc -&gt; Minimum CPU Platform (https://cloud.google.com/dataproc/docs/concepts/compute/dataproc-min-cpu).
                  &quot;accelerators&quot;: [ # Optional. The Compute Engine accelerator configuration for these instances.
                    { # Specifies the type and number of accelerator cards attached to the instances of an instance. See GPUs on Compute Engine (https://cloud.google.com/compute/docs/gpus/).
                      &quot;acceleratorTypeUri&quot;: &quot;A String&quot;, # Full URL, partial URI, or short name of the accelerator type resource to expose to this instance. See Compute Engine AcceleratorTypes (https://cloud.google.com/compute/docs/reference/beta/acceleratorTypes).Examples: https://www.googleapis.com/compute/beta/projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 nvidia-tesla-k80Auto Zone Exception: If you are using the Dataproc Auto Zone Placement (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the accelerator type resource, for example, nvidia-tesla-k80.
                      &quot;acceleratorCount&quot;: 42, # The number of the accelerator cards of this type exposed to this instance.
                    },
                  ],
                  &quot;instanceReferences&quot;: [ # Output only. List of references to Compute Engine instances.
                    { # A reference to a Compute Engine instance.
                      &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
                      &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
                    },
                  ],
                },
                &quot;encryptionConfig&quot;: { # Encryption settings for the cluster. # Optional. Encryption settings for the cluster.
                  &quot;gcePdKmsKeyName&quot;: &quot;A String&quot;, # Optional. The Cloud KMS key name to use for PD disk encryption for all instances in the cluster.
                },
                &quot;securityConfig&quot;: { # Security related configuration, including Kerberos. # Optional. Security settings for the cluster.
                  &quot;kerberosConfig&quot;: { # Specifies Kerberos related configuration. # Kerberos related configuration.
                    &quot;crossRealmTrustKdc&quot;: &quot;A String&quot;, # Optional. The KDC (IP or hostname) for the remote trusted realm in a cross realm trust relationship.
                    &quot;keyPasswordUri&quot;: &quot;A String&quot;, # 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 Dataproc.
                    &quot;enableKerberos&quot;: True or False, # Optional. Flag to indicate whether to Kerberize the cluster (default: false). Set this field to true to enable Kerberos on a cluster.
                    &quot;crossRealmTrustAdminServer&quot;: &quot;A String&quot;, # Optional. The admin server (IP or hostname) for the remote trusted realm in a cross realm trust relationship.
                    &quot;truststoreUri&quot;: &quot;A String&quot;, # Optional. The Cloud Storage URI of the truststore file used for SSL encryption. If not provided, Dataproc will provide a self-signed certificate.
                    &quot;rootPrincipalPasswordUri&quot;: &quot;A String&quot;, # Optional. The Cloud Storage URI of a KMS encrypted file containing the root principal password.
                    &quot;kmsKeyUri&quot;: &quot;A String&quot;, # Optional. The uri of the KMS key used to encrypt various sensitive files.
                    &quot;keystoreUri&quot;: &quot;A String&quot;, # Optional. The Cloud Storage URI of the keystore file used for SSL encryption. If not provided, Dataproc will provide a self-signed certificate.
                    &quot;crossRealmTrustSharedPasswordUri&quot;: &quot;A String&quot;, # 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.
                    &quot;truststorePasswordUri&quot;: &quot;A String&quot;, # 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 Dataproc.
                    &quot;crossRealmTrustRealm&quot;: &quot;A String&quot;, # Optional. The remote realm the Dataproc on-cluster KDC will trust, should the user enable cross realm trust.
                    &quot;keystorePasswordUri&quot;: &quot;A String&quot;, # 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 Dataproc.
                    &quot;realm&quot;: &quot;A String&quot;, # Optional. The name of the on-cluster Kerberos realm. If not specified, the uppercased domain of hostnames will be the realm.
                    &quot;kdcDbKeyUri&quot;: &quot;A String&quot;, # Optional. The Cloud Storage URI of a KMS encrypted file containing the master key of the KDC database.
                    &quot;tgtLifetimeHours&quot;: 42, # Optional. The lifetime of the ticket granting ticket, in hours. If not specified, or user specifies 0, then default value 10 will be used.
                  },
                },
                &quot;autoscalingConfig&quot;: { # Autoscaling Policy config associated with the cluster. # Optional. Autoscaling config for the policy associated with the cluster. Cluster does not autoscale if this field is unset.
                  &quot;policyUri&quot;: &quot;A String&quot;, # 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/[project_id]/locations/[dataproc_region]/autoscalingPolicies/[policy_id] projects/[project_id]/locations/[dataproc_region]/autoscalingPolicies/[policy_id]Note that the policy must be in the same project and Dataproc region.
                },
                &quot;gceClusterConfig&quot;: { # Common config settings for resources of Compute Engine cluster instances, applicable to all instances in the cluster. # Optional. The shared Compute Engine config settings for all instances in a cluster.
                  &quot;internalIpOnly&quot;: True or False, # Optional. If true, all instances in the cluster will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This internal_ip_only restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
                  &quot;zoneUri&quot;: &quot;A String&quot;, # Optional. The zone where the Compute Engine cluster will be located. On a create request, it is required in the &quot;global&quot; region. If omitted in a non-global Dataproc region, the service will pick a zone in the corresponding 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/[project_id]/zones/[zone] projects/[project_id]/zones/[zone] us-central1-f
                  &quot;tags&quot;: [ # The Compute Engine tags to add to all instances (see Tagging instances (https://cloud.google.com/compute/docs/label-or-tag-resources#tags)).
                    &quot;A String&quot;,
                  ],
                  &quot;metadata&quot;: { # 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)).
                    &quot;a_key&quot;: &quot;A String&quot;,
                  },
                  &quot;subnetworkUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine subnetwork to be used for machine communications. Cannot be specified with network_uri.A full URL, partial URI, or short name are valid. Examples: https://www.googleapis.com/compute/v1/projects/[project_id]/regions/us-east1/subnetworks/sub0 projects/[project_id]/regions/us-east1/subnetworks/sub0 sub0
                  &quot;serviceAccount&quot;: &quot;A String&quot;, # Optional. The Dataproc 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 Dataproc 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.
                  &quot;privateIpv6GoogleAccess&quot;: &quot;A String&quot;, # Optional. The type of IPv6 access for a cluster.
                  &quot;serviceAccountScopes&quot;: [ # 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.writeIf 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
                    &quot;A String&quot;,
                  ],
                  &quot;reservationAffinity&quot;: { # Reservation Affinity for consuming Zonal reservation. # Optional. Reservation Affinity for consuming Zonal reservation.
                    &quot;values&quot;: [ # Optional. Corresponds to the label values of reservation resource.
                      &quot;A String&quot;,
                    ],
                    &quot;key&quot;: &quot;A String&quot;, # Optional. Corresponds to the label key of reservation resource.
                    &quot;consumeReservationType&quot;: &quot;A String&quot;, # Optional. Type of reservation to consume
                  },
                  &quot;networkUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither network_uri nor subnetwork_uri is specified, the &quot;default&quot; network of the project is used, if it exists. Cannot be a &quot;Custom Subnet Network&quot; (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/[project_id]/regions/global/default projects/[project_id]/regions/global/default default
                  &quot;nodeGroupAffinity&quot;: { # Node Group Affinity for clusters using sole-tenant node groups. # Optional. Node Group Affinity for sole-tenant clusters.
                    &quot;nodeGroupUri&quot;: &quot;A String&quot;, # 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/[project_id]/zones/us-central1-a/nodeGroups/node-group-1 projects/[project_id]/zones/us-central1-a/nodeGroups/node-group-1 node-group-1
                  },
                },
                &quot;endpointConfig&quot;: { # Endpoint config for this cluster # Optional. Port/endpoint configuration for this cluster
                  &quot;httpPorts&quot;: { # Output only. The map of port descriptions to URLs. Will only be populated if enable_http_port_access is true.
                    &quot;a_key&quot;: &quot;A String&quot;,
                  },
                  &quot;enableHttpPortAccess&quot;: True or False, # Optional. If true, enable http access to specific ports on the cluster from external sources. Defaults to false.
                },
              },
              &quot;labels&quot;: { # Optional. The labels to associate with this cluster.Label keys must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 32 labels can be associated with a given cluster.
                &quot;a_key&quot;: &quot;A String&quot;,
              },
              &quot;clusterName&quot;: &quot;A String&quot;, # Required. The cluster name prefix. A unique cluster name will be formed by appending a random suffix.The name must contain only lower-case letters (a-z), numbers (0-9), and hyphens (-). Must begin with a letter. Cannot begin or end with hyphen. Must consist of between 2 and 35 characters.
            },
          },
          &quot;version&quot;: 42, # Optional. Used to perform a consistent read-modify-write.This field should be left blank for a CreateWorkflowTemplate request. It is required for an UpdateWorkflowTemplate request, and must match the current server version. A typical update template flow would fetch the current template with a GetWorkflowTemplate request, which will return the current template with the version field filled in with the current server version. The user updates other fields in the template, then returns it as part of the UpdateWorkflowTemplate request.
          &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time template was created.
          &quot;parameters&quot;: [ # Optional. Template parameters whose values are substituted into the template. Values for parameters must be provided when the template is instantiated.
            { # A configurable parameter that replaces one or more fields in the template. Parameterizable fields: - Labels - File uris - Job properties - Job arguments - Script variables - Main class (in HadoopJob and SparkJob) - Zone (in ClusterSelector)
              &quot;validation&quot;: { # Configuration for parameter validation. # Optional. Validation rules to be applied to this parameter&#x27;s value.
                &quot;values&quot;: { # Validation based on a list of allowed values. # Validation based on a list of allowed values.
                  &quot;values&quot;: [ # Required. List of allowed values for the parameter.
                    &quot;A String&quot;,
                  ],
                },
                &quot;regex&quot;: { # Validation based on regular expressions. # Validation based on regular expressions.
                  &quot;regexes&quot;: [ # Required. RE2 regular expressions used to validate the parameter&#x27;s value. The value must match the regex in its entirety (substring matches are not sufficient).
                    &quot;A String&quot;,
                  ],
                },
              },
              &quot;fields&quot;: [ # Required. Paths to all fields that the parameter replaces. A field is allowed to appear in at most one parameter&#x27;s list of field paths.A field path is similar in syntax to a google.protobuf.FieldMask. For example, a field path that references the zone field of a workflow template&#x27;s cluster selector would be specified as placement.clusterSelector.zone.Also, field paths can reference fields using the following syntax: Values in maps can be referenced by key: labels&#x27;key&#x27; placement.clusterSelector.clusterLabels&#x27;key&#x27; placement.managedCluster.labels&#x27;key&#x27; placement.clusterSelector.clusterLabels&#x27;key&#x27; jobs&#x27;step-id&#x27;.labels&#x27;key&#x27; Jobs in the jobs list can be referenced by step-id: jobs&#x27;step-id&#x27;.hadoopJob.mainJarFileUri jobs&#x27;step-id&#x27;.hiveJob.queryFileUri jobs&#x27;step-id&#x27;.pySparkJob.mainPythonFileUri jobs&#x27;step-id&#x27;.hadoopJob.jarFileUris0 jobs&#x27;step-id&#x27;.hadoopJob.archiveUris0 jobs&#x27;step-id&#x27;.hadoopJob.fileUris0 jobs&#x27;step-id&#x27;.pySparkJob.pythonFileUris0 Items in repeated fields can be referenced by a zero-based index: jobs&#x27;step-id&#x27;.sparkJob.args0 Other examples: jobs&#x27;step-id&#x27;.hadoopJob.properties&#x27;key&#x27; jobs&#x27;step-id&#x27;.hadoopJob.args0 jobs&#x27;step-id&#x27;.hiveJob.scriptVariables&#x27;key&#x27; jobs&#x27;step-id&#x27;.hadoopJob.mainJarFileUri placement.clusterSelector.zoneIt may not be possible to parameterize maps and repeated fields in their entirety since only individual map values and individual items in repeated fields can be referenced. For example, the following field paths are invalid: placement.clusterSelector.clusterLabels jobs&#x27;step-id&#x27;.sparkJob.args
                &quot;A String&quot;,
              ],
              &quot;name&quot;: &quot;A String&quot;, # Required. Parameter name. The parameter name is used as the key, and paired with the parameter value, which are passed to the template when the template is instantiated. The name must contain only capital letters (A-Z), numbers (0-9), and underscores (_), and must not start with a number. The maximum length is 40 characters.
              &quot;description&quot;: &quot;A String&quot;, # Optional. Brief description of the parameter. Must not exceed 1024 characters.
            },
          ],
          &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of the workflow template, as described in https://cloud.google.com/apis/design/resource_names. For projects.regions.workflowTemplates, the resource name of the template has the following format: projects/{project_id}/regions/{region}/workflowTemplates/{template_id} For projects.locations.workflowTemplates, the resource name of the template has the following format: projects/{project_id}/locations/{location}/workflowTemplates/{template_id}
          &quot;jobs&quot;: [ # Required. The Directed Acyclic Graph of Jobs to submit.
            { # A job executed by the workflow.
              &quot;stepId&quot;: &quot;A String&quot;, # Required. The step id. The id must be unique among all jobs within the template.The step id is used as prefix for job id, as job goog-dataproc-workflow-step-id label, and in prerequisiteStepIds field from other steps.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 between 3 and 50 characters.
              &quot;pigJob&quot;: { # A Dataproc job for running Apache Pig (https://pig.apache.org/) queries on YARN. # Optional. Job is a Pig job.
                &quot;properties&quot;: { # Optional. A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
                  &quot;a_key&quot;: &quot;A String&quot;,
                },
                &quot;scriptVariables&quot;: { # Optional. Mapping of query variable names to values (equivalent to the Pig command: name=[value]).
                  &quot;a_key&quot;: &quot;A String&quot;,
                },
                &quot;jarFileUris&quot;: [ # Optional. HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
                  &quot;A String&quot;,
                ],
                &quot;loggingConfig&quot;: { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
                  &quot;driverLogLevels&quot;: { # The per-package log levels for the driver. This may include &quot;root&quot; package name to configure rootLogger. Examples: &#x27;com.google = FATAL&#x27;, &#x27;root = INFO&#x27;, &#x27;org.apache = DEBUG&#x27;
                    &quot;a_key&quot;: &quot;A String&quot;,
                  },
                },
                &quot;queryList&quot;: { # A list of queries to run on a cluster. # A list of queries.
                  &quot;queries&quot;: [ # Required. The queries to execute. You do not need to end a query expression with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of a Dataproc API snippet that uses a QueryList to specify a HiveJob: &quot;hiveJob&quot;: { &quot;queryList&quot;: { &quot;queries&quot;: [ &quot;query1&quot;, &quot;query2&quot;, &quot;query3;query4&quot;, ] } }
                    &quot;A String&quot;,
                  ],
                },
                &quot;continueOnFailure&quot;: True or False, # Optional. Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
                &quot;queryFileUri&quot;: &quot;A String&quot;, # The HCFS URI of the script that contains the Pig queries.
              },
              &quot;sparkJob&quot;: { # A Dataproc job for running Apache Spark (http://spark.apache.org/) applications on YARN. # Optional. Job is a Spark job.
                &quot;loggingConfig&quot;: { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
                  &quot;driverLogLevels&quot;: { # The per-package log levels for the driver. This may include &quot;root&quot; package name to configure rootLogger. Examples: &#x27;com.google = FATAL&#x27;, &#x27;root = INFO&#x27;, &#x27;org.apache = DEBUG&#x27;
                    &quot;a_key&quot;: &quot;A String&quot;,
                  },
                },
                &quot;archiveUris&quot;: [ # Optional. HCFS URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
                  &quot;A String&quot;,
                ],
                &quot;jarFileUris&quot;: [ # Optional. HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
                  &quot;A String&quot;,
                ],
                &quot;properties&quot;: { # Optional. A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
                  &quot;a_key&quot;: &quot;A String&quot;,
                },
                &quot;mainClass&quot;: &quot;A String&quot;, # The name of the driver&#x27;s main class. The jar file that contains the class must be in the default CLASSPATH or specified in jar_file_uris.
                &quot;mainJarFileUri&quot;: &quot;A String&quot;, # The HCFS URI of the jar file that contains the main class.
                &quot;args&quot;: [ # Optional. The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
                  &quot;A String&quot;,
                ],
                &quot;fileUris&quot;: [ # Optional. HCFS URIs of files to be placed in the working directory of each executor. Useful for naively parallel tasks.
                  &quot;A String&quot;,
                ],
              },
              &quot;pysparkJob&quot;: { # A Dataproc job for running Apache PySpark (https://spark.apache.org/docs/0.9.0/python-programming-guide.html) applications on YARN. # Optional. Job is a PySpark job.
                &quot;loggingConfig&quot;: { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
                  &quot;driverLogLevels&quot;: { # The per-package log levels for the driver. This may include &quot;root&quot; package name to configure rootLogger. Examples: &#x27;com.google = FATAL&#x27;, &#x27;root = INFO&#x27;, &#x27;org.apache = DEBUG&#x27;
                    &quot;a_key&quot;: &quot;A String&quot;,
                  },
                },
                &quot;mainPythonFileUri&quot;: &quot;A String&quot;, # Required. The HCFS URI of the main Python file to use as the driver. Must be a .py file.
                &quot;pythonFileUris&quot;: [ # Optional. HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
                  &quot;A String&quot;,
                ],
                &quot;args&quot;: [ # Optional. The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
                  &quot;A String&quot;,
                ],
                &quot;properties&quot;: { # Optional. A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
                  &quot;a_key&quot;: &quot;A String&quot;,
                },
                &quot;jarFileUris&quot;: [ # Optional. HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
                  &quot;A String&quot;,
                ],
                &quot;archiveUris&quot;: [ # Optional. HCFS URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
                  &quot;A String&quot;,
                ],
                &quot;fileUris&quot;: [ # Optional. HCFS URIs of files to be placed in the working directory of each executor. Useful for naively parallel tasks.
                  &quot;A String&quot;,
                ],
              },
              &quot;scheduling&quot;: { # Job scheduling options. # Optional. Job scheduling configuration.
                &quot;maxFailuresTotal&quot;: 42, # Optional. Maximum number of times in total a driver may be restarted as a result of driver exiting with non-zero code before job is reported failed. Maximum value is 240
                &quot;maxFailuresPerHour&quot;: 42, # Optional. Maximum number of times per hour a driver may be restarted as a result of driver exiting with non-zero code before job is reported failed.A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window.Maximum value is 10.
              },
              &quot;sparkSqlJob&quot;: { # A Dataproc job for running Apache Spark SQL (http://spark.apache.org/sql/) queries. # Optional. Job is a SparkSql job.
                &quot;queryFileUri&quot;: &quot;A String&quot;, # The HCFS URI of the script that contains SQL queries.
                &quot;loggingConfig&quot;: { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
                  &quot;driverLogLevels&quot;: { # The per-package log levels for the driver. This may include &quot;root&quot; package name to configure rootLogger. Examples: &#x27;com.google = FATAL&#x27;, &#x27;root = INFO&#x27;, &#x27;org.apache = DEBUG&#x27;
                    &quot;a_key&quot;: &quot;A String&quot;,
                  },
                },
                &quot;scriptVariables&quot;: { # Optional. Mapping of query variable names to values (equivalent to the Spark SQL command: SET name=&quot;value&quot;;).
                  &quot;a_key&quot;: &quot;A String&quot;,
                },
                &quot;queryList&quot;: { # A list of queries to run on a cluster. # A list of queries.
                  &quot;queries&quot;: [ # Required. The queries to execute. You do not need to end a query expression with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of a Dataproc API snippet that uses a QueryList to specify a HiveJob: &quot;hiveJob&quot;: { &quot;queryList&quot;: { &quot;queries&quot;: [ &quot;query1&quot;, &quot;query2&quot;, &quot;query3;query4&quot;, ] } }
                    &quot;A String&quot;,
                  ],
                },
                &quot;properties&quot;: { # Optional. A mapping of property names to values, used to configure Spark SQL&#x27;s SparkConf. Properties that conflict with values set by the Dataproc API may be overwritten.
                  &quot;a_key&quot;: &quot;A String&quot;,
                },
                &quot;jarFileUris&quot;: [ # Optional. HCFS URIs of jar files to be added to the Spark CLASSPATH.
                  &quot;A String&quot;,
                ],
              },
              &quot;hiveJob&quot;: { # A Dataproc job for running Apache Hive (https://hive.apache.org/) queries on YARN. # Optional. Job is a Hive job.
                &quot;jarFileUris&quot;: [ # Optional. HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
                  &quot;A String&quot;,
                ],
                &quot;continueOnFailure&quot;: True or False, # Optional. Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
                &quot;properties&quot;: { # Optional. A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
                  &quot;a_key&quot;: &quot;A String&quot;,
                },
                &quot;queryList&quot;: { # A list of queries to run on a cluster. # A list of queries.
                  &quot;queries&quot;: [ # Required. The queries to execute. You do not need to end a query expression with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of a Dataproc API snippet that uses a QueryList to specify a HiveJob: &quot;hiveJob&quot;: { &quot;queryList&quot;: { &quot;queries&quot;: [ &quot;query1&quot;, &quot;query2&quot;, &quot;query3;query4&quot;, ] } }
                    &quot;A String&quot;,
                  ],
                },
                &quot;scriptVariables&quot;: { # Optional. Mapping of query variable names to values (equivalent to the Hive command: SET name=&quot;value&quot;;).
                  &quot;a_key&quot;: &quot;A String&quot;,
                },
                &quot;queryFileUri&quot;: &quot;A String&quot;, # The HCFS URI of the script that contains Hive queries.
              },
              &quot;prestoJob&quot;: { # A Dataproc job for running Presto (https://prestosql.io/) queries. IMPORTANT: The Dataproc Presto Optional Component (https://cloud.google.com/dataproc/docs/concepts/components/presto) must be enabled when the cluster is created to submit a Presto job to the cluster. # Optional. Job is a Presto job.
                &quot;properties&quot;: { # Optional. A mapping of property names to values. Used to set Presto session properties (https://prestodb.io/docs/current/sql/set-session.html) Equivalent to using the --session flag in the Presto CLI
                  &quot;a_key&quot;: &quot;A String&quot;,
                },
                &quot;clientTags&quot;: [ # Optional. Presto client tags to attach to this query
                  &quot;A String&quot;,
                ],
                &quot;queryFileUri&quot;: &quot;A String&quot;, # The HCFS URI of the script that contains SQL queries.
                &quot;queryList&quot;: { # A list of queries to run on a cluster. # A list of queries.
                  &quot;queries&quot;: [ # Required. The queries to execute. You do not need to end a query expression with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of a Dataproc API snippet that uses a QueryList to specify a HiveJob: &quot;hiveJob&quot;: { &quot;queryList&quot;: { &quot;queries&quot;: [ &quot;query1&quot;, &quot;query2&quot;, &quot;query3;query4&quot;, ] } }
                    &quot;A String&quot;,
                  ],
                },
                &quot;outputFormat&quot;: &quot;A String&quot;, # Optional. The format in which query output will be displayed. See the Presto documentation for supported output formats
                &quot;continueOnFailure&quot;: True or False, # Optional. Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
                &quot;loggingConfig&quot;: { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
                  &quot;driverLogLevels&quot;: { # The per-package log levels for the driver. This may include &quot;root&quot; package name to configure rootLogger. Examples: &#x27;com.google = FATAL&#x27;, &#x27;root = INFO&#x27;, &#x27;org.apache = DEBUG&#x27;
                    &quot;a_key&quot;: &quot;A String&quot;,
                  },
                },
              },
              &quot;hadoopJob&quot;: { # A Dataproc job for running Apache Hadoop MapReduce (https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html) jobs on Apache Hadoop YARN (https://hadoop.apache.org/docs/r2.7.1/hadoop-yarn/hadoop-yarn-site/YARN.html). # Optional. Job is a Hadoop job.
                &quot;fileUris&quot;: [ # Optional. HCFS (Hadoop Compatible Filesystem) URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
                  &quot;A String&quot;,
                ],
                &quot;mainClass&quot;: &quot;A String&quot;, # The name of the driver&#x27;s main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
                &quot;args&quot;: [ # Optional. The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
                  &quot;A String&quot;,
                ],
                &quot;mainJarFileUri&quot;: &quot;A String&quot;, # The HCFS URI of the jar file containing the main class. Examples: &#x27;gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar&#x27; &#x27;hdfs:/tmp/test-samples/custom-wordcount.jar&#x27; &#x27;file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar&#x27;
                &quot;jarFileUris&quot;: [ # Optional. Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
                  &quot;A String&quot;,
                ],
                &quot;archiveUris&quot;: [ # Optional. HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
                  &quot;A String&quot;,
                ],
                &quot;properties&quot;: { # Optional. A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
                  &quot;a_key&quot;: &quot;A String&quot;,
                },
                &quot;loggingConfig&quot;: { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
                  &quot;driverLogLevels&quot;: { # The per-package log levels for the driver. This may include &quot;root&quot; package name to configure rootLogger. Examples: &#x27;com.google = FATAL&#x27;, &#x27;root = INFO&#x27;, &#x27;org.apache = DEBUG&#x27;
                    &quot;a_key&quot;: &quot;A String&quot;,
                  },
                },
              },
              &quot;sparkRJob&quot;: { # A Dataproc job for running Apache SparkR (https://spark.apache.org/docs/latest/sparkr.html) applications on YARN. # Optional. Job is a SparkR job.
                &quot;properties&quot;: { # Optional. A mapping of property names to values, used to configure SparkR. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
                  &quot;a_key&quot;: &quot;A String&quot;,
                },
                &quot;loggingConfig&quot;: { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
                  &quot;driverLogLevels&quot;: { # The per-package log levels for the driver. This may include &quot;root&quot; package name to configure rootLogger. Examples: &#x27;com.google = FATAL&#x27;, &#x27;root = INFO&#x27;, &#x27;org.apache = DEBUG&#x27;
                    &quot;a_key&quot;: &quot;A String&quot;,
                  },
                },
                &quot;mainRFileUri&quot;: &quot;A String&quot;, # Required. The HCFS URI of the main R file to use as the driver. Must be a .R file.
                &quot;archiveUris&quot;: [ # Optional. HCFS URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
                  &quot;A String&quot;,
                ],
                &quot;fileUris&quot;: [ # Optional. HCFS URIs of files to be placed in the working directory of each executor. Useful for naively parallel tasks.
                  &quot;A String&quot;,
                ],
                &quot;args&quot;: [ # Optional. The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
                  &quot;A String&quot;,
                ],
              },
              &quot;prerequisiteStepIds&quot;: [ # Optional. The optional list of prerequisite job step_ids. If not specified, the job will start at the beginning of workflow.
                &quot;A String&quot;,
              ],
              &quot;labels&quot;: { # Optional. The labels to associate with this job.Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 32 labels can be associated with a given job.
                &quot;a_key&quot;: &quot;A String&quot;,
              },
            },
          ],
        },
    ],
  }</pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
  <pre>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 &#x27;execute()&#x27; on to request the next
  page. Returns None if there are no more items in the collection.
    </pre>
</div>

<div class="method">
    <code class="details" id="setIamPolicy">setIamPolicy(resource, body=None, x__xgafv=None)</code>
  <pre>Sets the access control policy on the specified resource. Replaces any existing policy.Can return NOT_FOUND, INVALID_ARGUMENT, and PERMISSION_DENIED errors.

Args:
  resource: string, REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field. (required)
  body: object, The request body.
    The object takes the form of:

{ # Request message for SetIamPolicy method.
    &quot;policy&quot;: { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources.A Policy is a collection of bindings. A binding binds one or more members to a single role. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A role is a named list of permissions; each role can be an IAM predefined role or a user-created custom role.For some types of Google Cloud resources, a binding can also specify a condition, which is a logical expression that allows access to a resource only if the expression evaluates to true. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies).JSON example: { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } YAML example: bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the IAM documentation (https://cloud.google.com/iam/docs/). # REQUIRED: The complete policy to be applied to the resource. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them.
      &quot;bindings&quot;: [ # Associates a list of members to a role. Optionally, may specify a condition that determines how and when the bindings are applied. Each of the bindings must contain at least one member.
        { # Associates members with a role.
          &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. members can have the following values: allUsers: A special identifier that represents anyone who is on the internet; with or without a Google account. allAuthenticatedUsers: A special identifier that represents anyone who is authenticated with a Google account or a service account. user:{emailid}: An email address that represents a specific Google account. For example, alice@example.com . serviceAccount:{emailid}: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com. group:{emailid}: An email address that represents a Google group. For example, admins@example.com. deleted:user:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a user that has been recently deleted. For example, alice@example.com?uid=123456789012345678901. If the user is recovered, this value reverts to user:{emailid} and the recovered user retains the role in the binding. deleted:serviceAccount:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901. If the service account is undeleted, this value reverts to serviceAccount:{emailid} and the undeleted service account retains the role in the binding. deleted:group:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, admins@example.com?uid=123456789012345678901. If the group is recovered, this value reverts to group:{emailid} and the recovered group retains the role in the binding. domain:{domain}: The G Suite domain (primary) that represents all the users of that domain. For example, google.com or example.com.
            &quot;A String&quot;,
          ],
          &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to members. For example, roles/viewer, roles/editor, or roles/owner.
          &quot;bindingId&quot;: &quot;A String&quot;,
          &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec.Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding.If the condition evaluates to true, then this binding applies to the current request.If the condition evaluates to false, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding.To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies).
            &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
            &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
            &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
            &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
          },
        },
      ],
      &quot;etag&quot;: &quot;A String&quot;, # etag is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the etag in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An etag is returned in the response to getIamPolicy, and systems are expected to put that etag in the request to setIamPolicy to ensure that their change will be applied to the same version of the policy.Important: If you use IAM Conditions, you must include the etag field whenever you call setIamPolicy. If you omit this field, then IAM allows you to overwrite a version 3 policy with a version 1 policy, and all of the conditions in the version 3 policy are lost.
      &quot;version&quot;: 42, # Specifies the format of the policy.Valid values are 0, 1, and 3. Requests that specify an invalid value are rejected.Any operation that affects conditional role bindings must specify version 3. This requirement applies to the following operations: Getting a policy that includes a conditional role binding Adding a conditional role binding to a policy Changing a conditional role binding in a policy Removing any role binding, with or without a condition, from a policy that includes conditionsImportant: If you use IAM Conditions, you must include the etag field whenever you call setIamPolicy. If you omit this field, then IAM allows you to overwrite a version 3 policy with a version 1 policy, and all of the conditions in the version 3 policy are lost.If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset.To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies).
    },
  }

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources.A Policy is a collection of bindings. A binding binds one or more members to a single role. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A role is a named list of permissions; each role can be an IAM predefined role or a user-created custom role.For some types of Google Cloud resources, a binding can also specify a condition, which is a logical expression that allows access to a resource only if the expression evaluates to true. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies).JSON example: { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } YAML example: bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the IAM documentation (https://cloud.google.com/iam/docs/).
    &quot;bindings&quot;: [ # Associates a list of members to a role. Optionally, may specify a condition that determines how and when the bindings are applied. Each of the bindings must contain at least one member.
      { # Associates members with a role.
        &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. members can have the following values: allUsers: A special identifier that represents anyone who is on the internet; with or without a Google account. allAuthenticatedUsers: A special identifier that represents anyone who is authenticated with a Google account or a service account. user:{emailid}: An email address that represents a specific Google account. For example, alice@example.com . serviceAccount:{emailid}: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com. group:{emailid}: An email address that represents a Google group. For example, admins@example.com. deleted:user:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a user that has been recently deleted. For example, alice@example.com?uid=123456789012345678901. If the user is recovered, this value reverts to user:{emailid} and the recovered user retains the role in the binding. deleted:serviceAccount:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901. If the service account is undeleted, this value reverts to serviceAccount:{emailid} and the undeleted service account retains the role in the binding. deleted:group:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, admins@example.com?uid=123456789012345678901. If the group is recovered, this value reverts to group:{emailid} and the recovered group retains the role in the binding. domain:{domain}: The G Suite domain (primary) that represents all the users of that domain. For example, google.com or example.com.
          &quot;A String&quot;,
        ],
        &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to members. For example, roles/viewer, roles/editor, or roles/owner.
        &quot;bindingId&quot;: &quot;A String&quot;,
        &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec.Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding.If the condition evaluates to true, then this binding applies to the current request.If the condition evaluates to false, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding.To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies).
          &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
          &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
          &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
          &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
        },
      },
    ],
    &quot;etag&quot;: &quot;A String&quot;, # etag is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the etag in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An etag is returned in the response to getIamPolicy, and systems are expected to put that etag in the request to setIamPolicy to ensure that their change will be applied to the same version of the policy.Important: If you use IAM Conditions, you must include the etag field whenever you call setIamPolicy. If you omit this field, then IAM allows you to overwrite a version 3 policy with a version 1 policy, and all of the conditions in the version 3 policy are lost.
    &quot;version&quot;: 42, # Specifies the format of the policy.Valid values are 0, 1, and 3. Requests that specify an invalid value are rejected.Any operation that affects conditional role bindings must specify version 3. This requirement applies to the following operations: Getting a policy that includes a conditional role binding Adding a conditional role binding to a policy Changing a conditional role binding in a policy Removing any role binding, with or without a condition, from a policy that includes conditionsImportant: If you use IAM Conditions, you must include the etag field whenever you call setIamPolicy. If you omit this field, then IAM allows you to overwrite a version 3 policy with a version 1 policy, and all of the conditions in the version 3 policy are lost.If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset.To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies).
  }</pre>
</div>

<div class="method">
    <code class="details" id="testIamPermissions">testIamPermissions(resource, body=None, x__xgafv=None)</code>
  <pre>Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a NOT_FOUND error.Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may &quot;fail open&quot; without warning.

Args:
  resource: string, REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field. (required)
  body: object, The request body.
    The object takes the form of:

{ # Request message for TestIamPermissions method.
    &quot;permissions&quot;: [ # The set of permissions to check for the resource. Permissions with wildcards (such as &#x27;*&#x27; or &#x27;storage.*&#x27;) are not allowed. For more information see IAM Overview (https://cloud.google.com/iam/docs/overview#permissions).
      &quot;A String&quot;,
    ],
  }

  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 TestIamPermissions method.
    &quot;permissions&quot;: [ # A subset of TestPermissionsRequest.permissions that the caller is allowed.
      &quot;A String&quot;,
    ],
  }</pre>
</div>

<div class="method">
    <code class="details" id="update">update(name, body=None, x__xgafv=None)</code>
  <pre>Updates (replaces) workflow template. The updated template must contain version that matches the current server version.

Args:
  name: string, Output only. The resource name of the workflow template, as described in https://cloud.google.com/apis/design/resource_names. For projects.regions.workflowTemplates, the resource name of the template has the following format: projects/{project_id}/regions/{region}/workflowTemplates/{template_id} For projects.locations.workflowTemplates, the resource name of the template has the following format: projects/{project_id}/locations/{location}/workflowTemplates/{template_id} (required)
  body: object, The request body.
    The object takes the form of:

{ # A Dataproc workflow template resource.
    &quot;id&quot;: &quot;A String&quot;,
    &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time template was last updated.
    &quot;labels&quot;: { # Optional. The labels to associate with this template. These labels will be propagated to all jobs and clusters created by the workflow instance.Label keys must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt).Label values may be empty, but, if present, must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt).No more than 32 labels can be associated with a template.
      &quot;a_key&quot;: &quot;A String&quot;,
    },
    &quot;placement&quot;: { # Specifies workflow execution target.Either managed_cluster or cluster_selector is required. # Required. WorkflowTemplate scheduling information.
      &quot;clusterSelector&quot;: { # A selector that chooses target cluster for jobs based on metadata. # Optional. A selector that chooses target cluster for jobs based on metadata.The selector is evaluated at the time each job is submitted.
        &quot;zone&quot;: &quot;A String&quot;, # Optional. The zone where workflow process executes. This parameter does not affect the selection of the cluster.If unspecified, the zone of the first cluster matching the selector is used.
        &quot;clusterLabels&quot;: { # Required. The cluster labels. Cluster must have all labels to match.
          &quot;a_key&quot;: &quot;A String&quot;,
        },
      },
      &quot;managedCluster&quot;: { # Cluster that is managed by the workflow. # A cluster that is managed by the workflow.
        &quot;config&quot;: { # The cluster config. # Required. The cluster configuration.
          &quot;tempBucket&quot;: &quot;A String&quot;, # 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, Dataproc will determine a Cloud Storage location (US, ASIA, or EU) for your cluster&#x27;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.
          &quot;lifecycleConfig&quot;: { # Specifies the cluster auto-delete schedule configuration. # Optional. Lifecycle setting for the cluster.
            &quot;autoDeleteTime&quot;: &quot;A String&quot;, # Optional. The time when cluster will be auto-deleted (see JSON representation of Timestamp (https://developers.google.com/protocol-buffers/docs/proto3#json)).
            &quot;idleStartTime&quot;: &quot;A String&quot;, # 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)).
            &quot;idleDeleteTtl&quot;: &quot;A String&quot;, # 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).
            &quot;autoDeleteTtl&quot;: &quot;A String&quot;, # 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)).
          },
          &quot;masterConfig&quot;: { # The config settings for Compute Engine resources in an instance group, such as a master or worker group. # Optional. The Compute Engine config settings for the master instance in a cluster.
            &quot;managedGroupConfig&quot;: { # Specifies the resources used to actively manage an instance group. # Output only. The config for Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
              &quot;instanceGroupManagerName&quot;: &quot;A String&quot;, # Output only. The name of the Instance Group Manager for this group.
              &quot;instanceTemplateName&quot;: &quot;A String&quot;, # Output only. The name of the Instance Template used for the Managed Instance Group.
            },
            &quot;imageUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine image resource used for cluster instances.The URI can represent an image or image family.Image examples: https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/[image-id] projects/[project_id]/global/images/[image-id] image-idImage family examples. Dataproc will use the most recent image from the family: https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/family/[custom-image-family-name] projects/[project_id]/global/images/family/[custom-image-family-name]If the URI is unspecified, it will be inferred from SoftwareConfig.image_version or the system default.
            &quot;machineTypeUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine machine type used for cluster instances.A full URL, partial URI, or short name are valid. Examples: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2 projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2 n1-standard-2Auto Zone Exception: If you are using the Dataproc Auto Zone Placement (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the machine type resource, for example, n1-standard-2.
            &quot;diskConfig&quot;: { # Specifies the config of disk options for a group of VM instances. # Optional. Disk option config settings.
              &quot;bootDiskType&quot;: &quot;A String&quot;, # Optional. Type of the boot disk (default is &quot;pd-standard&quot;). Valid values: &quot;pd-ssd&quot; (Persistent Disk Solid State Drive) or &quot;pd-standard&quot; (Persistent Disk Hard Disk Drive).
              &quot;numLocalSsds&quot;: 42, # Optional. Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
              &quot;bootDiskSizeGb&quot;: 42, # Optional. Size in GB of the boot disk (default is 500GB).
            },
            &quot;numInstances&quot;: 42, # Optional. The number of VM instances in the instance group. For master instance groups, must be set to 1.
            &quot;instanceNames&quot;: [ # Output only. The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group.
              &quot;A String&quot;,
            ],
            &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
            &quot;preemptibility&quot;: &quot;A String&quot;, # Optional. Specifies the preemptibility of the instance group.The default value for master and worker groups is NON_PREEMPTIBLE. This default cannot be changed.The default value for secondary instances is PREEMPTIBLE.
            &quot;minCpuPlatform&quot;: &quot;A String&quot;, # Optional. Specifies the minimum cpu platform for the Instance Group. See Dataproc -&gt; Minimum CPU Platform (https://cloud.google.com/dataproc/docs/concepts/compute/dataproc-min-cpu).
            &quot;accelerators&quot;: [ # Optional. The Compute Engine accelerator configuration for these instances.
              { # Specifies the type and number of accelerator cards attached to the instances of an instance. See GPUs on Compute Engine (https://cloud.google.com/compute/docs/gpus/).
                &quot;acceleratorTypeUri&quot;: &quot;A String&quot;, # Full URL, partial URI, or short name of the accelerator type resource to expose to this instance. See Compute Engine AcceleratorTypes (https://cloud.google.com/compute/docs/reference/beta/acceleratorTypes).Examples: https://www.googleapis.com/compute/beta/projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 nvidia-tesla-k80Auto Zone Exception: If you are using the Dataproc Auto Zone Placement (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the accelerator type resource, for example, nvidia-tesla-k80.
                &quot;acceleratorCount&quot;: 42, # The number of the accelerator cards of this type exposed to this instance.
              },
            ],
            &quot;instanceReferences&quot;: [ # Output only. List of references to Compute Engine instances.
              { # A reference to a Compute Engine instance.
                &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
                &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
              },
            ],
          },
          &quot;softwareConfig&quot;: { # Specifies the selection and config of software inside the cluster. # Optional. The config settings for software inside the cluster.
            &quot;properties&quot;: { # 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.xmlFor more information, see Cluster properties (https://cloud.google.com/dataproc/docs/concepts/cluster-properties).
              &quot;a_key&quot;: &quot;A String&quot;,
            },
            &quot;imageVersion&quot;: &quot;A String&quot;, # Optional. The version of software inside the cluster. It must be one of the supported Dataproc Versions (https://cloud.google.com/dataproc/docs/concepts/versioning/dataproc-versions#supported_dataproc_versions), such as &quot;1.2&quot; (including a subminor version, such as &quot;1.2.29&quot;), or the &quot;preview&quot; version (https://cloud.google.com/dataproc/docs/concepts/versioning/dataproc-versions#other_versions). If unspecified, it defaults to the latest Debian version.
            &quot;optionalComponents&quot;: [ # Optional. The set of components to activate on the cluster.
              &quot;A String&quot;,
            ],
          },
          &quot;configBucket&quot;: &quot;A String&quot;, # 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, Cloud Dataproc will determine a Cloud Storage location (US, ASIA, or EU) for your cluster&#x27;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 Dataproc staging bucket (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/staging-bucket)).
          &quot;initializationActions&quot;: [ # 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&#x27;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 [[ &quot;${ROLE}&quot; == &#x27;Master&#x27; ]]; then ... master specific actions ... else ... worker specific actions ... fi
            { # Specifies an executable to run on a fully configured node and a timeout period for executable completion.
              &quot;executionTimeout&quot;: &quot;A String&quot;, # 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.
              &quot;executableFile&quot;: &quot;A String&quot;, # Required. Cloud Storage URI of executable file.
            },
          ],
          &quot;secondaryWorkerConfig&quot;: { # The config settings for Compute Engine resources in an instance group, such as a master or worker group. # Optional. The Compute Engine config settings for additional worker instances in a cluster.
            &quot;managedGroupConfig&quot;: { # Specifies the resources used to actively manage an instance group. # Output only. The config for Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
              &quot;instanceGroupManagerName&quot;: &quot;A String&quot;, # Output only. The name of the Instance Group Manager for this group.
              &quot;instanceTemplateName&quot;: &quot;A String&quot;, # Output only. The name of the Instance Template used for the Managed Instance Group.
            },
            &quot;imageUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine image resource used for cluster instances.The URI can represent an image or image family.Image examples: https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/[image-id] projects/[project_id]/global/images/[image-id] image-idImage family examples. Dataproc will use the most recent image from the family: https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/family/[custom-image-family-name] projects/[project_id]/global/images/family/[custom-image-family-name]If the URI is unspecified, it will be inferred from SoftwareConfig.image_version or the system default.
            &quot;machineTypeUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine machine type used for cluster instances.A full URL, partial URI, or short name are valid. Examples: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2 projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2 n1-standard-2Auto Zone Exception: If you are using the Dataproc Auto Zone Placement (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the machine type resource, for example, n1-standard-2.
            &quot;diskConfig&quot;: { # Specifies the config of disk options for a group of VM instances. # Optional. Disk option config settings.
              &quot;bootDiskType&quot;: &quot;A String&quot;, # Optional. Type of the boot disk (default is &quot;pd-standard&quot;). Valid values: &quot;pd-ssd&quot; (Persistent Disk Solid State Drive) or &quot;pd-standard&quot; (Persistent Disk Hard Disk Drive).
              &quot;numLocalSsds&quot;: 42, # Optional. Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
              &quot;bootDiskSizeGb&quot;: 42, # Optional. Size in GB of the boot disk (default is 500GB).
            },
            &quot;numInstances&quot;: 42, # Optional. The number of VM instances in the instance group. For master instance groups, must be set to 1.
            &quot;instanceNames&quot;: [ # Output only. The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group.
              &quot;A String&quot;,
            ],
            &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
            &quot;preemptibility&quot;: &quot;A String&quot;, # Optional. Specifies the preemptibility of the instance group.The default value for master and worker groups is NON_PREEMPTIBLE. This default cannot be changed.The default value for secondary instances is PREEMPTIBLE.
            &quot;minCpuPlatform&quot;: &quot;A String&quot;, # Optional. Specifies the minimum cpu platform for the Instance Group. See Dataproc -&gt; Minimum CPU Platform (https://cloud.google.com/dataproc/docs/concepts/compute/dataproc-min-cpu).
            &quot;accelerators&quot;: [ # Optional. The Compute Engine accelerator configuration for these instances.
              { # Specifies the type and number of accelerator cards attached to the instances of an instance. See GPUs on Compute Engine (https://cloud.google.com/compute/docs/gpus/).
                &quot;acceleratorTypeUri&quot;: &quot;A String&quot;, # Full URL, partial URI, or short name of the accelerator type resource to expose to this instance. See Compute Engine AcceleratorTypes (https://cloud.google.com/compute/docs/reference/beta/acceleratorTypes).Examples: https://www.googleapis.com/compute/beta/projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 nvidia-tesla-k80Auto Zone Exception: If you are using the Dataproc Auto Zone Placement (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the accelerator type resource, for example, nvidia-tesla-k80.
                &quot;acceleratorCount&quot;: 42, # The number of the accelerator cards of this type exposed to this instance.
              },
            ],
            &quot;instanceReferences&quot;: [ # Output only. List of references to Compute Engine instances.
              { # A reference to a Compute Engine instance.
                &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
                &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
              },
            ],
          },
          &quot;workerConfig&quot;: { # The config settings for Compute Engine resources in an instance group, such as a master or worker group. # Optional. The Compute Engine config settings for worker instances in a cluster.
            &quot;managedGroupConfig&quot;: { # Specifies the resources used to actively manage an instance group. # Output only. The config for Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
              &quot;instanceGroupManagerName&quot;: &quot;A String&quot;, # Output only. The name of the Instance Group Manager for this group.
              &quot;instanceTemplateName&quot;: &quot;A String&quot;, # Output only. The name of the Instance Template used for the Managed Instance Group.
            },
            &quot;imageUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine image resource used for cluster instances.The URI can represent an image or image family.Image examples: https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/[image-id] projects/[project_id]/global/images/[image-id] image-idImage family examples. Dataproc will use the most recent image from the family: https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/family/[custom-image-family-name] projects/[project_id]/global/images/family/[custom-image-family-name]If the URI is unspecified, it will be inferred from SoftwareConfig.image_version or the system default.
            &quot;machineTypeUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine machine type used for cluster instances.A full URL, partial URI, or short name are valid. Examples: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2 projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2 n1-standard-2Auto Zone Exception: If you are using the Dataproc Auto Zone Placement (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the machine type resource, for example, n1-standard-2.
            &quot;diskConfig&quot;: { # Specifies the config of disk options for a group of VM instances. # Optional. Disk option config settings.
              &quot;bootDiskType&quot;: &quot;A String&quot;, # Optional. Type of the boot disk (default is &quot;pd-standard&quot;). Valid values: &quot;pd-ssd&quot; (Persistent Disk Solid State Drive) or &quot;pd-standard&quot; (Persistent Disk Hard Disk Drive).
              &quot;numLocalSsds&quot;: 42, # Optional. Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
              &quot;bootDiskSizeGb&quot;: 42, # Optional. Size in GB of the boot disk (default is 500GB).
            },
            &quot;numInstances&quot;: 42, # Optional. The number of VM instances in the instance group. For master instance groups, must be set to 1.
            &quot;instanceNames&quot;: [ # Output only. The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group.
              &quot;A String&quot;,
            ],
            &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
            &quot;preemptibility&quot;: &quot;A String&quot;, # Optional. Specifies the preemptibility of the instance group.The default value for master and worker groups is NON_PREEMPTIBLE. This default cannot be changed.The default value for secondary instances is PREEMPTIBLE.
            &quot;minCpuPlatform&quot;: &quot;A String&quot;, # Optional. Specifies the minimum cpu platform for the Instance Group. See Dataproc -&gt; Minimum CPU Platform (https://cloud.google.com/dataproc/docs/concepts/compute/dataproc-min-cpu).
            &quot;accelerators&quot;: [ # Optional. The Compute Engine accelerator configuration for these instances.
              { # Specifies the type and number of accelerator cards attached to the instances of an instance. See GPUs on Compute Engine (https://cloud.google.com/compute/docs/gpus/).
                &quot;acceleratorTypeUri&quot;: &quot;A String&quot;, # Full URL, partial URI, or short name of the accelerator type resource to expose to this instance. See Compute Engine AcceleratorTypes (https://cloud.google.com/compute/docs/reference/beta/acceleratorTypes).Examples: https://www.googleapis.com/compute/beta/projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 nvidia-tesla-k80Auto Zone Exception: If you are using the Dataproc Auto Zone Placement (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the accelerator type resource, for example, nvidia-tesla-k80.
                &quot;acceleratorCount&quot;: 42, # The number of the accelerator cards of this type exposed to this instance.
              },
            ],
            &quot;instanceReferences&quot;: [ # Output only. List of references to Compute Engine instances.
              { # A reference to a Compute Engine instance.
                &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
                &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
              },
            ],
          },
          &quot;encryptionConfig&quot;: { # Encryption settings for the cluster. # Optional. Encryption settings for the cluster.
            &quot;gcePdKmsKeyName&quot;: &quot;A String&quot;, # Optional. The Cloud KMS key name to use for PD disk encryption for all instances in the cluster.
          },
          &quot;securityConfig&quot;: { # Security related configuration, including Kerberos. # Optional. Security settings for the cluster.
            &quot;kerberosConfig&quot;: { # Specifies Kerberos related configuration. # Kerberos related configuration.
              &quot;crossRealmTrustKdc&quot;: &quot;A String&quot;, # Optional. The KDC (IP or hostname) for the remote trusted realm in a cross realm trust relationship.
              &quot;keyPasswordUri&quot;: &quot;A String&quot;, # 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 Dataproc.
              &quot;enableKerberos&quot;: True or False, # Optional. Flag to indicate whether to Kerberize the cluster (default: false). Set this field to true to enable Kerberos on a cluster.
              &quot;crossRealmTrustAdminServer&quot;: &quot;A String&quot;, # Optional. The admin server (IP or hostname) for the remote trusted realm in a cross realm trust relationship.
              &quot;truststoreUri&quot;: &quot;A String&quot;, # Optional. The Cloud Storage URI of the truststore file used for SSL encryption. If not provided, Dataproc will provide a self-signed certificate.
              &quot;rootPrincipalPasswordUri&quot;: &quot;A String&quot;, # Optional. The Cloud Storage URI of a KMS encrypted file containing the root principal password.
              &quot;kmsKeyUri&quot;: &quot;A String&quot;, # Optional. The uri of the KMS key used to encrypt various sensitive files.
              &quot;keystoreUri&quot;: &quot;A String&quot;, # Optional. The Cloud Storage URI of the keystore file used for SSL encryption. If not provided, Dataproc will provide a self-signed certificate.
              &quot;crossRealmTrustSharedPasswordUri&quot;: &quot;A String&quot;, # 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.
              &quot;truststorePasswordUri&quot;: &quot;A String&quot;, # 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 Dataproc.
              &quot;crossRealmTrustRealm&quot;: &quot;A String&quot;, # Optional. The remote realm the Dataproc on-cluster KDC will trust, should the user enable cross realm trust.
              &quot;keystorePasswordUri&quot;: &quot;A String&quot;, # 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 Dataproc.
              &quot;realm&quot;: &quot;A String&quot;, # Optional. The name of the on-cluster Kerberos realm. If not specified, the uppercased domain of hostnames will be the realm.
              &quot;kdcDbKeyUri&quot;: &quot;A String&quot;, # Optional. The Cloud Storage URI of a KMS encrypted file containing the master key of the KDC database.
              &quot;tgtLifetimeHours&quot;: 42, # Optional. The lifetime of the ticket granting ticket, in hours. If not specified, or user specifies 0, then default value 10 will be used.
            },
          },
          &quot;autoscalingConfig&quot;: { # Autoscaling Policy config associated with the cluster. # Optional. Autoscaling config for the policy associated with the cluster. Cluster does not autoscale if this field is unset.
            &quot;policyUri&quot;: &quot;A String&quot;, # 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/[project_id]/locations/[dataproc_region]/autoscalingPolicies/[policy_id] projects/[project_id]/locations/[dataproc_region]/autoscalingPolicies/[policy_id]Note that the policy must be in the same project and Dataproc region.
          },
          &quot;gceClusterConfig&quot;: { # Common config settings for resources of Compute Engine cluster instances, applicable to all instances in the cluster. # Optional. The shared Compute Engine config settings for all instances in a cluster.
            &quot;internalIpOnly&quot;: True or False, # Optional. If true, all instances in the cluster will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This internal_ip_only restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
            &quot;zoneUri&quot;: &quot;A String&quot;, # Optional. The zone where the Compute Engine cluster will be located. On a create request, it is required in the &quot;global&quot; region. If omitted in a non-global Dataproc region, the service will pick a zone in the corresponding 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/[project_id]/zones/[zone] projects/[project_id]/zones/[zone] us-central1-f
            &quot;tags&quot;: [ # The Compute Engine tags to add to all instances (see Tagging instances (https://cloud.google.com/compute/docs/label-or-tag-resources#tags)).
              &quot;A String&quot;,
            ],
            &quot;metadata&quot;: { # 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)).
              &quot;a_key&quot;: &quot;A String&quot;,
            },
            &quot;subnetworkUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine subnetwork to be used for machine communications. Cannot be specified with network_uri.A full URL, partial URI, or short name are valid. Examples: https://www.googleapis.com/compute/v1/projects/[project_id]/regions/us-east1/subnetworks/sub0 projects/[project_id]/regions/us-east1/subnetworks/sub0 sub0
            &quot;serviceAccount&quot;: &quot;A String&quot;, # Optional. The Dataproc 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 Dataproc 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.
            &quot;privateIpv6GoogleAccess&quot;: &quot;A String&quot;, # Optional. The type of IPv6 access for a cluster.
            &quot;serviceAccountScopes&quot;: [ # 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.writeIf 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
              &quot;A String&quot;,
            ],
            &quot;reservationAffinity&quot;: { # Reservation Affinity for consuming Zonal reservation. # Optional. Reservation Affinity for consuming Zonal reservation.
              &quot;values&quot;: [ # Optional. Corresponds to the label values of reservation resource.
                &quot;A String&quot;,
              ],
              &quot;key&quot;: &quot;A String&quot;, # Optional. Corresponds to the label key of reservation resource.
              &quot;consumeReservationType&quot;: &quot;A String&quot;, # Optional. Type of reservation to consume
            },
            &quot;networkUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither network_uri nor subnetwork_uri is specified, the &quot;default&quot; network of the project is used, if it exists. Cannot be a &quot;Custom Subnet Network&quot; (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/[project_id]/regions/global/default projects/[project_id]/regions/global/default default
            &quot;nodeGroupAffinity&quot;: { # Node Group Affinity for clusters using sole-tenant node groups. # Optional. Node Group Affinity for sole-tenant clusters.
              &quot;nodeGroupUri&quot;: &quot;A String&quot;, # 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/[project_id]/zones/us-central1-a/nodeGroups/node-group-1 projects/[project_id]/zones/us-central1-a/nodeGroups/node-group-1 node-group-1
            },
          },
          &quot;endpointConfig&quot;: { # Endpoint config for this cluster # Optional. Port/endpoint configuration for this cluster
            &quot;httpPorts&quot;: { # Output only. The map of port descriptions to URLs. Will only be populated if enable_http_port_access is true.
              &quot;a_key&quot;: &quot;A String&quot;,
            },
            &quot;enableHttpPortAccess&quot;: True or False, # Optional. If true, enable http access to specific ports on the cluster from external sources. Defaults to false.
          },
        },
        &quot;labels&quot;: { # Optional. The labels to associate with this cluster.Label keys must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 32 labels can be associated with a given cluster.
          &quot;a_key&quot;: &quot;A String&quot;,
        },
        &quot;clusterName&quot;: &quot;A String&quot;, # Required. The cluster name prefix. A unique cluster name will be formed by appending a random suffix.The name must contain only lower-case letters (a-z), numbers (0-9), and hyphens (-). Must begin with a letter. Cannot begin or end with hyphen. Must consist of between 2 and 35 characters.
      },
    },
    &quot;version&quot;: 42, # Optional. Used to perform a consistent read-modify-write.This field should be left blank for a CreateWorkflowTemplate request. It is required for an UpdateWorkflowTemplate request, and must match the current server version. A typical update template flow would fetch the current template with a GetWorkflowTemplate request, which will return the current template with the version field filled in with the current server version. The user updates other fields in the template, then returns it as part of the UpdateWorkflowTemplate request.
    &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time template was created.
    &quot;parameters&quot;: [ # Optional. Template parameters whose values are substituted into the template. Values for parameters must be provided when the template is instantiated.
      { # A configurable parameter that replaces one or more fields in the template. Parameterizable fields: - Labels - File uris - Job properties - Job arguments - Script variables - Main class (in HadoopJob and SparkJob) - Zone (in ClusterSelector)
        &quot;validation&quot;: { # Configuration for parameter validation. # Optional. Validation rules to be applied to this parameter&#x27;s value.
          &quot;values&quot;: { # Validation based on a list of allowed values. # Validation based on a list of allowed values.
            &quot;values&quot;: [ # Required. List of allowed values for the parameter.
              &quot;A String&quot;,
            ],
          },
          &quot;regex&quot;: { # Validation based on regular expressions. # Validation based on regular expressions.
            &quot;regexes&quot;: [ # Required. RE2 regular expressions used to validate the parameter&#x27;s value. The value must match the regex in its entirety (substring matches are not sufficient).
              &quot;A String&quot;,
            ],
          },
        },
        &quot;fields&quot;: [ # Required. Paths to all fields that the parameter replaces. A field is allowed to appear in at most one parameter&#x27;s list of field paths.A field path is similar in syntax to a google.protobuf.FieldMask. For example, a field path that references the zone field of a workflow template&#x27;s cluster selector would be specified as placement.clusterSelector.zone.Also, field paths can reference fields using the following syntax: Values in maps can be referenced by key: labels&#x27;key&#x27; placement.clusterSelector.clusterLabels&#x27;key&#x27; placement.managedCluster.labels&#x27;key&#x27; placement.clusterSelector.clusterLabels&#x27;key&#x27; jobs&#x27;step-id&#x27;.labels&#x27;key&#x27; Jobs in the jobs list can be referenced by step-id: jobs&#x27;step-id&#x27;.hadoopJob.mainJarFileUri jobs&#x27;step-id&#x27;.hiveJob.queryFileUri jobs&#x27;step-id&#x27;.pySparkJob.mainPythonFileUri jobs&#x27;step-id&#x27;.hadoopJob.jarFileUris0 jobs&#x27;step-id&#x27;.hadoopJob.archiveUris0 jobs&#x27;step-id&#x27;.hadoopJob.fileUris0 jobs&#x27;step-id&#x27;.pySparkJob.pythonFileUris0 Items in repeated fields can be referenced by a zero-based index: jobs&#x27;step-id&#x27;.sparkJob.args0 Other examples: jobs&#x27;step-id&#x27;.hadoopJob.properties&#x27;key&#x27; jobs&#x27;step-id&#x27;.hadoopJob.args0 jobs&#x27;step-id&#x27;.hiveJob.scriptVariables&#x27;key&#x27; jobs&#x27;step-id&#x27;.hadoopJob.mainJarFileUri placement.clusterSelector.zoneIt may not be possible to parameterize maps and repeated fields in their entirety since only individual map values and individual items in repeated fields can be referenced. For example, the following field paths are invalid: placement.clusterSelector.clusterLabels jobs&#x27;step-id&#x27;.sparkJob.args
          &quot;A String&quot;,
        ],
        &quot;name&quot;: &quot;A String&quot;, # Required. Parameter name. The parameter name is used as the key, and paired with the parameter value, which are passed to the template when the template is instantiated. The name must contain only capital letters (A-Z), numbers (0-9), and underscores (_), and must not start with a number. The maximum length is 40 characters.
        &quot;description&quot;: &quot;A String&quot;, # Optional. Brief description of the parameter. Must not exceed 1024 characters.
      },
    ],
    &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of the workflow template, as described in https://cloud.google.com/apis/design/resource_names. For projects.regions.workflowTemplates, the resource name of the template has the following format: projects/{project_id}/regions/{region}/workflowTemplates/{template_id} For projects.locations.workflowTemplates, the resource name of the template has the following format: projects/{project_id}/locations/{location}/workflowTemplates/{template_id}
    &quot;jobs&quot;: [ # Required. The Directed Acyclic Graph of Jobs to submit.
      { # A job executed by the workflow.
        &quot;stepId&quot;: &quot;A String&quot;, # Required. The step id. The id must be unique among all jobs within the template.The step id is used as prefix for job id, as job goog-dataproc-workflow-step-id label, and in prerequisiteStepIds field from other steps.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 between 3 and 50 characters.
        &quot;pigJob&quot;: { # A Dataproc job for running Apache Pig (https://pig.apache.org/) queries on YARN. # Optional. Job is a Pig job.
          &quot;properties&quot;: { # Optional. A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
            &quot;a_key&quot;: &quot;A String&quot;,
          },
          &quot;scriptVariables&quot;: { # Optional. Mapping of query variable names to values (equivalent to the Pig command: name=[value]).
            &quot;a_key&quot;: &quot;A String&quot;,
          },
          &quot;jarFileUris&quot;: [ # Optional. HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
            &quot;A String&quot;,
          ],
          &quot;loggingConfig&quot;: { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
            &quot;driverLogLevels&quot;: { # The per-package log levels for the driver. This may include &quot;root&quot; package name to configure rootLogger. Examples: &#x27;com.google = FATAL&#x27;, &#x27;root = INFO&#x27;, &#x27;org.apache = DEBUG&#x27;
              &quot;a_key&quot;: &quot;A String&quot;,
            },
          },
          &quot;queryList&quot;: { # A list of queries to run on a cluster. # A list of queries.
            &quot;queries&quot;: [ # Required. The queries to execute. You do not need to end a query expression with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of a Dataproc API snippet that uses a QueryList to specify a HiveJob: &quot;hiveJob&quot;: { &quot;queryList&quot;: { &quot;queries&quot;: [ &quot;query1&quot;, &quot;query2&quot;, &quot;query3;query4&quot;, ] } }
              &quot;A String&quot;,
            ],
          },
          &quot;continueOnFailure&quot;: True or False, # Optional. Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
          &quot;queryFileUri&quot;: &quot;A String&quot;, # The HCFS URI of the script that contains the Pig queries.
        },
        &quot;sparkJob&quot;: { # A Dataproc job for running Apache Spark (http://spark.apache.org/) applications on YARN. # Optional. Job is a Spark job.
          &quot;loggingConfig&quot;: { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
            &quot;driverLogLevels&quot;: { # The per-package log levels for the driver. This may include &quot;root&quot; package name to configure rootLogger. Examples: &#x27;com.google = FATAL&#x27;, &#x27;root = INFO&#x27;, &#x27;org.apache = DEBUG&#x27;
              &quot;a_key&quot;: &quot;A String&quot;,
            },
          },
          &quot;archiveUris&quot;: [ # Optional. HCFS URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
            &quot;A String&quot;,
          ],
          &quot;jarFileUris&quot;: [ # Optional. HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
            &quot;A String&quot;,
          ],
          &quot;properties&quot;: { # Optional. A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
            &quot;a_key&quot;: &quot;A String&quot;,
          },
          &quot;mainClass&quot;: &quot;A String&quot;, # The name of the driver&#x27;s main class. The jar file that contains the class must be in the default CLASSPATH or specified in jar_file_uris.
          &quot;mainJarFileUri&quot;: &quot;A String&quot;, # The HCFS URI of the jar file that contains the main class.
          &quot;args&quot;: [ # Optional. The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
            &quot;A String&quot;,
          ],
          &quot;fileUris&quot;: [ # Optional. HCFS URIs of files to be placed in the working directory of each executor. Useful for naively parallel tasks.
            &quot;A String&quot;,
          ],
        },
        &quot;pysparkJob&quot;: { # A Dataproc job for running Apache PySpark (https://spark.apache.org/docs/0.9.0/python-programming-guide.html) applications on YARN. # Optional. Job is a PySpark job.
          &quot;loggingConfig&quot;: { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
            &quot;driverLogLevels&quot;: { # The per-package log levels for the driver. This may include &quot;root&quot; package name to configure rootLogger. Examples: &#x27;com.google = FATAL&#x27;, &#x27;root = INFO&#x27;, &#x27;org.apache = DEBUG&#x27;
              &quot;a_key&quot;: &quot;A String&quot;,
            },
          },
          &quot;mainPythonFileUri&quot;: &quot;A String&quot;, # Required. The HCFS URI of the main Python file to use as the driver. Must be a .py file.
          &quot;pythonFileUris&quot;: [ # Optional. HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
            &quot;A String&quot;,
          ],
          &quot;args&quot;: [ # Optional. The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
            &quot;A String&quot;,
          ],
          &quot;properties&quot;: { # Optional. A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
            &quot;a_key&quot;: &quot;A String&quot;,
          },
          &quot;jarFileUris&quot;: [ # Optional. HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
            &quot;A String&quot;,
          ],
          &quot;archiveUris&quot;: [ # Optional. HCFS URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
            &quot;A String&quot;,
          ],
          &quot;fileUris&quot;: [ # Optional. HCFS URIs of files to be placed in the working directory of each executor. Useful for naively parallel tasks.
            &quot;A String&quot;,
          ],
        },
        &quot;scheduling&quot;: { # Job scheduling options. # Optional. Job scheduling configuration.
          &quot;maxFailuresTotal&quot;: 42, # Optional. Maximum number of times in total a driver may be restarted as a result of driver exiting with non-zero code before job is reported failed. Maximum value is 240
          &quot;maxFailuresPerHour&quot;: 42, # Optional. Maximum number of times per hour a driver may be restarted as a result of driver exiting with non-zero code before job is reported failed.A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window.Maximum value is 10.
        },
        &quot;sparkSqlJob&quot;: { # A Dataproc job for running Apache Spark SQL (http://spark.apache.org/sql/) queries. # Optional. Job is a SparkSql job.
          &quot;queryFileUri&quot;: &quot;A String&quot;, # The HCFS URI of the script that contains SQL queries.
          &quot;loggingConfig&quot;: { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
            &quot;driverLogLevels&quot;: { # The per-package log levels for the driver. This may include &quot;root&quot; package name to configure rootLogger. Examples: &#x27;com.google = FATAL&#x27;, &#x27;root = INFO&#x27;, &#x27;org.apache = DEBUG&#x27;
              &quot;a_key&quot;: &quot;A String&quot;,
            },
          },
          &quot;scriptVariables&quot;: { # Optional. Mapping of query variable names to values (equivalent to the Spark SQL command: SET name=&quot;value&quot;;).
            &quot;a_key&quot;: &quot;A String&quot;,
          },
          &quot;queryList&quot;: { # A list of queries to run on a cluster. # A list of queries.
            &quot;queries&quot;: [ # Required. The queries to execute. You do not need to end a query expression with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of a Dataproc API snippet that uses a QueryList to specify a HiveJob: &quot;hiveJob&quot;: { &quot;queryList&quot;: { &quot;queries&quot;: [ &quot;query1&quot;, &quot;query2&quot;, &quot;query3;query4&quot;, ] } }
              &quot;A String&quot;,
            ],
          },
          &quot;properties&quot;: { # Optional. A mapping of property names to values, used to configure Spark SQL&#x27;s SparkConf. Properties that conflict with values set by the Dataproc API may be overwritten.
            &quot;a_key&quot;: &quot;A String&quot;,
          },
          &quot;jarFileUris&quot;: [ # Optional. HCFS URIs of jar files to be added to the Spark CLASSPATH.
            &quot;A String&quot;,
          ],
        },
        &quot;hiveJob&quot;: { # A Dataproc job for running Apache Hive (https://hive.apache.org/) queries on YARN. # Optional. Job is a Hive job.
          &quot;jarFileUris&quot;: [ # Optional. HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
            &quot;A String&quot;,
          ],
          &quot;continueOnFailure&quot;: True or False, # Optional. Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
          &quot;properties&quot;: { # Optional. A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
            &quot;a_key&quot;: &quot;A String&quot;,
          },
          &quot;queryList&quot;: { # A list of queries to run on a cluster. # A list of queries.
            &quot;queries&quot;: [ # Required. The queries to execute. You do not need to end a query expression with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of a Dataproc API snippet that uses a QueryList to specify a HiveJob: &quot;hiveJob&quot;: { &quot;queryList&quot;: { &quot;queries&quot;: [ &quot;query1&quot;, &quot;query2&quot;, &quot;query3;query4&quot;, ] } }
              &quot;A String&quot;,
            ],
          },
          &quot;scriptVariables&quot;: { # Optional. Mapping of query variable names to values (equivalent to the Hive command: SET name=&quot;value&quot;;).
            &quot;a_key&quot;: &quot;A String&quot;,
          },
          &quot;queryFileUri&quot;: &quot;A String&quot;, # The HCFS URI of the script that contains Hive queries.
        },
        &quot;prestoJob&quot;: { # A Dataproc job for running Presto (https://prestosql.io/) queries. IMPORTANT: The Dataproc Presto Optional Component (https://cloud.google.com/dataproc/docs/concepts/components/presto) must be enabled when the cluster is created to submit a Presto job to the cluster. # Optional. Job is a Presto job.
          &quot;properties&quot;: { # Optional. A mapping of property names to values. Used to set Presto session properties (https://prestodb.io/docs/current/sql/set-session.html) Equivalent to using the --session flag in the Presto CLI
            &quot;a_key&quot;: &quot;A String&quot;,
          },
          &quot;clientTags&quot;: [ # Optional. Presto client tags to attach to this query
            &quot;A String&quot;,
          ],
          &quot;queryFileUri&quot;: &quot;A String&quot;, # The HCFS URI of the script that contains SQL queries.
          &quot;queryList&quot;: { # A list of queries to run on a cluster. # A list of queries.
            &quot;queries&quot;: [ # Required. The queries to execute. You do not need to end a query expression with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of a Dataproc API snippet that uses a QueryList to specify a HiveJob: &quot;hiveJob&quot;: { &quot;queryList&quot;: { &quot;queries&quot;: [ &quot;query1&quot;, &quot;query2&quot;, &quot;query3;query4&quot;, ] } }
              &quot;A String&quot;,
            ],
          },
          &quot;outputFormat&quot;: &quot;A String&quot;, # Optional. The format in which query output will be displayed. See the Presto documentation for supported output formats
          &quot;continueOnFailure&quot;: True or False, # Optional. Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
          &quot;loggingConfig&quot;: { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
            &quot;driverLogLevels&quot;: { # The per-package log levels for the driver. This may include &quot;root&quot; package name to configure rootLogger. Examples: &#x27;com.google = FATAL&#x27;, &#x27;root = INFO&#x27;, &#x27;org.apache = DEBUG&#x27;
              &quot;a_key&quot;: &quot;A String&quot;,
            },
          },
        },
        &quot;hadoopJob&quot;: { # A Dataproc job for running Apache Hadoop MapReduce (https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html) jobs on Apache Hadoop YARN (https://hadoop.apache.org/docs/r2.7.1/hadoop-yarn/hadoop-yarn-site/YARN.html). # Optional. Job is a Hadoop job.
          &quot;fileUris&quot;: [ # Optional. HCFS (Hadoop Compatible Filesystem) URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
            &quot;A String&quot;,
          ],
          &quot;mainClass&quot;: &quot;A String&quot;, # The name of the driver&#x27;s main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
          &quot;args&quot;: [ # Optional. The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
            &quot;A String&quot;,
          ],
          &quot;mainJarFileUri&quot;: &quot;A String&quot;, # The HCFS URI of the jar file containing the main class. Examples: &#x27;gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar&#x27; &#x27;hdfs:/tmp/test-samples/custom-wordcount.jar&#x27; &#x27;file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar&#x27;
          &quot;jarFileUris&quot;: [ # Optional. Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
            &quot;A String&quot;,
          ],
          &quot;archiveUris&quot;: [ # Optional. HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
            &quot;A String&quot;,
          ],
          &quot;properties&quot;: { # Optional. A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
            &quot;a_key&quot;: &quot;A String&quot;,
          },
          &quot;loggingConfig&quot;: { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
            &quot;driverLogLevels&quot;: { # The per-package log levels for the driver. This may include &quot;root&quot; package name to configure rootLogger. Examples: &#x27;com.google = FATAL&#x27;, &#x27;root = INFO&#x27;, &#x27;org.apache = DEBUG&#x27;
              &quot;a_key&quot;: &quot;A String&quot;,
            },
          },
        },
        &quot;sparkRJob&quot;: { # A Dataproc job for running Apache SparkR (https://spark.apache.org/docs/latest/sparkr.html) applications on YARN. # Optional. Job is a SparkR job.
          &quot;properties&quot;: { # Optional. A mapping of property names to values, used to configure SparkR. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
            &quot;a_key&quot;: &quot;A String&quot;,
          },
          &quot;loggingConfig&quot;: { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
            &quot;driverLogLevels&quot;: { # The per-package log levels for the driver. This may include &quot;root&quot; package name to configure rootLogger. Examples: &#x27;com.google = FATAL&#x27;, &#x27;root = INFO&#x27;, &#x27;org.apache = DEBUG&#x27;
              &quot;a_key&quot;: &quot;A String&quot;,
            },
          },
          &quot;mainRFileUri&quot;: &quot;A String&quot;, # Required. The HCFS URI of the main R file to use as the driver. Must be a .R file.
          &quot;archiveUris&quot;: [ # Optional. HCFS URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
            &quot;A String&quot;,
          ],
          &quot;fileUris&quot;: [ # Optional. HCFS URIs of files to be placed in the working directory of each executor. Useful for naively parallel tasks.
            &quot;A String&quot;,
          ],
          &quot;args&quot;: [ # Optional. The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
            &quot;A String&quot;,
          ],
        },
        &quot;prerequisiteStepIds&quot;: [ # Optional. The optional list of prerequisite job step_ids. If not specified, the job will start at the beginning of workflow.
          &quot;A String&quot;,
        ],
        &quot;labels&quot;: { # Optional. The labels to associate with this job.Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 32 labels can be associated with a given job.
          &quot;a_key&quot;: &quot;A String&quot;,
        },
      },
    ],
  }

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A Dataproc workflow template resource.
      &quot;id&quot;: &quot;A String&quot;,
      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time template was last updated.
      &quot;labels&quot;: { # Optional. The labels to associate with this template. These labels will be propagated to all jobs and clusters created by the workflow instance.Label keys must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt).Label values may be empty, but, if present, must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt).No more than 32 labels can be associated with a template.
        &quot;a_key&quot;: &quot;A String&quot;,
      },
      &quot;placement&quot;: { # Specifies workflow execution target.Either managed_cluster or cluster_selector is required. # Required. WorkflowTemplate scheduling information.
        &quot;clusterSelector&quot;: { # A selector that chooses target cluster for jobs based on metadata. # Optional. A selector that chooses target cluster for jobs based on metadata.The selector is evaluated at the time each job is submitted.
          &quot;zone&quot;: &quot;A String&quot;, # Optional. The zone where workflow process executes. This parameter does not affect the selection of the cluster.If unspecified, the zone of the first cluster matching the selector is used.
          &quot;clusterLabels&quot;: { # Required. The cluster labels. Cluster must have all labels to match.
            &quot;a_key&quot;: &quot;A String&quot;,
          },
        },
        &quot;managedCluster&quot;: { # Cluster that is managed by the workflow. # A cluster that is managed by the workflow.
          &quot;config&quot;: { # The cluster config. # Required. The cluster configuration.
            &quot;tempBucket&quot;: &quot;A String&quot;, # 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, Dataproc will determine a Cloud Storage location (US, ASIA, or EU) for your cluster&#x27;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.
            &quot;lifecycleConfig&quot;: { # Specifies the cluster auto-delete schedule configuration. # Optional. Lifecycle setting for the cluster.
              &quot;autoDeleteTime&quot;: &quot;A String&quot;, # Optional. The time when cluster will be auto-deleted (see JSON representation of Timestamp (https://developers.google.com/protocol-buffers/docs/proto3#json)).
              &quot;idleStartTime&quot;: &quot;A String&quot;, # 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)).
              &quot;idleDeleteTtl&quot;: &quot;A String&quot;, # 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).
              &quot;autoDeleteTtl&quot;: &quot;A String&quot;, # 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)).
            },
            &quot;masterConfig&quot;: { # The config settings for Compute Engine resources in an instance group, such as a master or worker group. # Optional. The Compute Engine config settings for the master instance in a cluster.
              &quot;managedGroupConfig&quot;: { # Specifies the resources used to actively manage an instance group. # Output only. The config for Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
                &quot;instanceGroupManagerName&quot;: &quot;A String&quot;, # Output only. The name of the Instance Group Manager for this group.
                &quot;instanceTemplateName&quot;: &quot;A String&quot;, # Output only. The name of the Instance Template used for the Managed Instance Group.
              },
              &quot;imageUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine image resource used for cluster instances.The URI can represent an image or image family.Image examples: https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/[image-id] projects/[project_id]/global/images/[image-id] image-idImage family examples. Dataproc will use the most recent image from the family: https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/family/[custom-image-family-name] projects/[project_id]/global/images/family/[custom-image-family-name]If the URI is unspecified, it will be inferred from SoftwareConfig.image_version or the system default.
              &quot;machineTypeUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine machine type used for cluster instances.A full URL, partial URI, or short name are valid. Examples: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2 projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2 n1-standard-2Auto Zone Exception: If you are using the Dataproc Auto Zone Placement (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the machine type resource, for example, n1-standard-2.
              &quot;diskConfig&quot;: { # Specifies the config of disk options for a group of VM instances. # Optional. Disk option config settings.
                &quot;bootDiskType&quot;: &quot;A String&quot;, # Optional. Type of the boot disk (default is &quot;pd-standard&quot;). Valid values: &quot;pd-ssd&quot; (Persistent Disk Solid State Drive) or &quot;pd-standard&quot; (Persistent Disk Hard Disk Drive).
                &quot;numLocalSsds&quot;: 42, # Optional. Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
                &quot;bootDiskSizeGb&quot;: 42, # Optional. Size in GB of the boot disk (default is 500GB).
              },
              &quot;numInstances&quot;: 42, # Optional. The number of VM instances in the instance group. For master instance groups, must be set to 1.
              &quot;instanceNames&quot;: [ # Output only. The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group.
                &quot;A String&quot;,
              ],
              &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
              &quot;preemptibility&quot;: &quot;A String&quot;, # Optional. Specifies the preemptibility of the instance group.The default value for master and worker groups is NON_PREEMPTIBLE. This default cannot be changed.The default value for secondary instances is PREEMPTIBLE.
              &quot;minCpuPlatform&quot;: &quot;A String&quot;, # Optional. Specifies the minimum cpu platform for the Instance Group. See Dataproc -&gt; Minimum CPU Platform (https://cloud.google.com/dataproc/docs/concepts/compute/dataproc-min-cpu).
              &quot;accelerators&quot;: [ # Optional. The Compute Engine accelerator configuration for these instances.
                { # Specifies the type and number of accelerator cards attached to the instances of an instance. See GPUs on Compute Engine (https://cloud.google.com/compute/docs/gpus/).
                  &quot;acceleratorTypeUri&quot;: &quot;A String&quot;, # Full URL, partial URI, or short name of the accelerator type resource to expose to this instance. See Compute Engine AcceleratorTypes (https://cloud.google.com/compute/docs/reference/beta/acceleratorTypes).Examples: https://www.googleapis.com/compute/beta/projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 nvidia-tesla-k80Auto Zone Exception: If you are using the Dataproc Auto Zone Placement (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the accelerator type resource, for example, nvidia-tesla-k80.
                  &quot;acceleratorCount&quot;: 42, # The number of the accelerator cards of this type exposed to this instance.
                },
              ],
              &quot;instanceReferences&quot;: [ # Output only. List of references to Compute Engine instances.
                { # A reference to a Compute Engine instance.
                  &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
                  &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
                },
              ],
            },
            &quot;softwareConfig&quot;: { # Specifies the selection and config of software inside the cluster. # Optional. The config settings for software inside the cluster.
              &quot;properties&quot;: { # 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.xmlFor more information, see Cluster properties (https://cloud.google.com/dataproc/docs/concepts/cluster-properties).
                &quot;a_key&quot;: &quot;A String&quot;,
              },
              &quot;imageVersion&quot;: &quot;A String&quot;, # Optional. The version of software inside the cluster. It must be one of the supported Dataproc Versions (https://cloud.google.com/dataproc/docs/concepts/versioning/dataproc-versions#supported_dataproc_versions), such as &quot;1.2&quot; (including a subminor version, such as &quot;1.2.29&quot;), or the &quot;preview&quot; version (https://cloud.google.com/dataproc/docs/concepts/versioning/dataproc-versions#other_versions). If unspecified, it defaults to the latest Debian version.
              &quot;optionalComponents&quot;: [ # Optional. The set of components to activate on the cluster.
                &quot;A String&quot;,
              ],
            },
            &quot;configBucket&quot;: &quot;A String&quot;, # 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, Cloud Dataproc will determine a Cloud Storage location (US, ASIA, or EU) for your cluster&#x27;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 Dataproc staging bucket (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/staging-bucket)).
            &quot;initializationActions&quot;: [ # 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&#x27;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 [[ &quot;${ROLE}&quot; == &#x27;Master&#x27; ]]; then ... master specific actions ... else ... worker specific actions ... fi
              { # Specifies an executable to run on a fully configured node and a timeout period for executable completion.
                &quot;executionTimeout&quot;: &quot;A String&quot;, # 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.
                &quot;executableFile&quot;: &quot;A String&quot;, # Required. Cloud Storage URI of executable file.
              },
            ],
            &quot;secondaryWorkerConfig&quot;: { # The config settings for Compute Engine resources in an instance group, such as a master or worker group. # Optional. The Compute Engine config settings for additional worker instances in a cluster.
              &quot;managedGroupConfig&quot;: { # Specifies the resources used to actively manage an instance group. # Output only. The config for Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
                &quot;instanceGroupManagerName&quot;: &quot;A String&quot;, # Output only. The name of the Instance Group Manager for this group.
                &quot;instanceTemplateName&quot;: &quot;A String&quot;, # Output only. The name of the Instance Template used for the Managed Instance Group.
              },
              &quot;imageUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine image resource used for cluster instances.The URI can represent an image or image family.Image examples: https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/[image-id] projects/[project_id]/global/images/[image-id] image-idImage family examples. Dataproc will use the most recent image from the family: https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/family/[custom-image-family-name] projects/[project_id]/global/images/family/[custom-image-family-name]If the URI is unspecified, it will be inferred from SoftwareConfig.image_version or the system default.
              &quot;machineTypeUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine machine type used for cluster instances.A full URL, partial URI, or short name are valid. Examples: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2 projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2 n1-standard-2Auto Zone Exception: If you are using the Dataproc Auto Zone Placement (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the machine type resource, for example, n1-standard-2.
              &quot;diskConfig&quot;: { # Specifies the config of disk options for a group of VM instances. # Optional. Disk option config settings.
                &quot;bootDiskType&quot;: &quot;A String&quot;, # Optional. Type of the boot disk (default is &quot;pd-standard&quot;). Valid values: &quot;pd-ssd&quot; (Persistent Disk Solid State Drive) or &quot;pd-standard&quot; (Persistent Disk Hard Disk Drive).
                &quot;numLocalSsds&quot;: 42, # Optional. Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
                &quot;bootDiskSizeGb&quot;: 42, # Optional. Size in GB of the boot disk (default is 500GB).
              },
              &quot;numInstances&quot;: 42, # Optional. The number of VM instances in the instance group. For master instance groups, must be set to 1.
              &quot;instanceNames&quot;: [ # Output only. The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group.
                &quot;A String&quot;,
              ],
              &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
              &quot;preemptibility&quot;: &quot;A String&quot;, # Optional. Specifies the preemptibility of the instance group.The default value for master and worker groups is NON_PREEMPTIBLE. This default cannot be changed.The default value for secondary instances is PREEMPTIBLE.
              &quot;minCpuPlatform&quot;: &quot;A String&quot;, # Optional. Specifies the minimum cpu platform for the Instance Group. See Dataproc -&gt; Minimum CPU Platform (https://cloud.google.com/dataproc/docs/concepts/compute/dataproc-min-cpu).
              &quot;accelerators&quot;: [ # Optional. The Compute Engine accelerator configuration for these instances.
                { # Specifies the type and number of accelerator cards attached to the instances of an instance. See GPUs on Compute Engine (https://cloud.google.com/compute/docs/gpus/).
                  &quot;acceleratorTypeUri&quot;: &quot;A String&quot;, # Full URL, partial URI, or short name of the accelerator type resource to expose to this instance. See Compute Engine AcceleratorTypes (https://cloud.google.com/compute/docs/reference/beta/acceleratorTypes).Examples: https://www.googleapis.com/compute/beta/projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 nvidia-tesla-k80Auto Zone Exception: If you are using the Dataproc Auto Zone Placement (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the accelerator type resource, for example, nvidia-tesla-k80.
                  &quot;acceleratorCount&quot;: 42, # The number of the accelerator cards of this type exposed to this instance.
                },
              ],
              &quot;instanceReferences&quot;: [ # Output only. List of references to Compute Engine instances.
                { # A reference to a Compute Engine instance.
                  &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
                  &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
                },
              ],
            },
            &quot;workerConfig&quot;: { # The config settings for Compute Engine resources in an instance group, such as a master or worker group. # Optional. The Compute Engine config settings for worker instances in a cluster.
              &quot;managedGroupConfig&quot;: { # Specifies the resources used to actively manage an instance group. # Output only. The config for Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
                &quot;instanceGroupManagerName&quot;: &quot;A String&quot;, # Output only. The name of the Instance Group Manager for this group.
                &quot;instanceTemplateName&quot;: &quot;A String&quot;, # Output only. The name of the Instance Template used for the Managed Instance Group.
              },
              &quot;imageUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine image resource used for cluster instances.The URI can represent an image or image family.Image examples: https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/[image-id] projects/[project_id]/global/images/[image-id] image-idImage family examples. Dataproc will use the most recent image from the family: https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/family/[custom-image-family-name] projects/[project_id]/global/images/family/[custom-image-family-name]If the URI is unspecified, it will be inferred from SoftwareConfig.image_version or the system default.
              &quot;machineTypeUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine machine type used for cluster instances.A full URL, partial URI, or short name are valid. Examples: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2 projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2 n1-standard-2Auto Zone Exception: If you are using the Dataproc Auto Zone Placement (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the machine type resource, for example, n1-standard-2.
              &quot;diskConfig&quot;: { # Specifies the config of disk options for a group of VM instances. # Optional. Disk option config settings.
                &quot;bootDiskType&quot;: &quot;A String&quot;, # Optional. Type of the boot disk (default is &quot;pd-standard&quot;). Valid values: &quot;pd-ssd&quot; (Persistent Disk Solid State Drive) or &quot;pd-standard&quot; (Persistent Disk Hard Disk Drive).
                &quot;numLocalSsds&quot;: 42, # Optional. Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
                &quot;bootDiskSizeGb&quot;: 42, # Optional. Size in GB of the boot disk (default is 500GB).
              },
              &quot;numInstances&quot;: 42, # Optional. The number of VM instances in the instance group. For master instance groups, must be set to 1.
              &quot;instanceNames&quot;: [ # Output only. The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group.
                &quot;A String&quot;,
              ],
              &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
              &quot;preemptibility&quot;: &quot;A String&quot;, # Optional. Specifies the preemptibility of the instance group.The default value for master and worker groups is NON_PREEMPTIBLE. This default cannot be changed.The default value for secondary instances is PREEMPTIBLE.
              &quot;minCpuPlatform&quot;: &quot;A String&quot;, # Optional. Specifies the minimum cpu platform for the Instance Group. See Dataproc -&gt; Minimum CPU Platform (https://cloud.google.com/dataproc/docs/concepts/compute/dataproc-min-cpu).
              &quot;accelerators&quot;: [ # Optional. The Compute Engine accelerator configuration for these instances.
                { # Specifies the type and number of accelerator cards attached to the instances of an instance. See GPUs on Compute Engine (https://cloud.google.com/compute/docs/gpus/).
                  &quot;acceleratorTypeUri&quot;: &quot;A String&quot;, # Full URL, partial URI, or short name of the accelerator type resource to expose to this instance. See Compute Engine AcceleratorTypes (https://cloud.google.com/compute/docs/reference/beta/acceleratorTypes).Examples: https://www.googleapis.com/compute/beta/projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80 nvidia-tesla-k80Auto Zone Exception: If you are using the Dataproc Auto Zone Placement (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the accelerator type resource, for example, nvidia-tesla-k80.
                  &quot;acceleratorCount&quot;: 42, # The number of the accelerator cards of this type exposed to this instance.
                },
              ],
              &quot;instanceReferences&quot;: [ # Output only. List of references to Compute Engine instances.
                { # A reference to a Compute Engine instance.
                  &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
                  &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
                },
              ],
            },
            &quot;encryptionConfig&quot;: { # Encryption settings for the cluster. # Optional. Encryption settings for the cluster.
              &quot;gcePdKmsKeyName&quot;: &quot;A String&quot;, # Optional. The Cloud KMS key name to use for PD disk encryption for all instances in the cluster.
            },
            &quot;securityConfig&quot;: { # Security related configuration, including Kerberos. # Optional. Security settings for the cluster.
              &quot;kerberosConfig&quot;: { # Specifies Kerberos related configuration. # Kerberos related configuration.
                &quot;crossRealmTrustKdc&quot;: &quot;A String&quot;, # Optional. The KDC (IP or hostname) for the remote trusted realm in a cross realm trust relationship.
                &quot;keyPasswordUri&quot;: &quot;A String&quot;, # 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 Dataproc.
                &quot;enableKerberos&quot;: True or False, # Optional. Flag to indicate whether to Kerberize the cluster (default: false). Set this field to true to enable Kerberos on a cluster.
                &quot;crossRealmTrustAdminServer&quot;: &quot;A String&quot;, # Optional. The admin server (IP or hostname) for the remote trusted realm in a cross realm trust relationship.
                &quot;truststoreUri&quot;: &quot;A String&quot;, # Optional. The Cloud Storage URI of the truststore file used for SSL encryption. If not provided, Dataproc will provide a self-signed certificate.
                &quot;rootPrincipalPasswordUri&quot;: &quot;A String&quot;, # Optional. The Cloud Storage URI of a KMS encrypted file containing the root principal password.
                &quot;kmsKeyUri&quot;: &quot;A String&quot;, # Optional. The uri of the KMS key used to encrypt various sensitive files.
                &quot;keystoreUri&quot;: &quot;A String&quot;, # Optional. The Cloud Storage URI of the keystore file used for SSL encryption. If not provided, Dataproc will provide a self-signed certificate.
                &quot;crossRealmTrustSharedPasswordUri&quot;: &quot;A String&quot;, # 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.
                &quot;truststorePasswordUri&quot;: &quot;A String&quot;, # 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 Dataproc.
                &quot;crossRealmTrustRealm&quot;: &quot;A String&quot;, # Optional. The remote realm the Dataproc on-cluster KDC will trust, should the user enable cross realm trust.
                &quot;keystorePasswordUri&quot;: &quot;A String&quot;, # 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 Dataproc.
                &quot;realm&quot;: &quot;A String&quot;, # Optional. The name of the on-cluster Kerberos realm. If not specified, the uppercased domain of hostnames will be the realm.
                &quot;kdcDbKeyUri&quot;: &quot;A String&quot;, # Optional. The Cloud Storage URI of a KMS encrypted file containing the master key of the KDC database.
                &quot;tgtLifetimeHours&quot;: 42, # Optional. The lifetime of the ticket granting ticket, in hours. If not specified, or user specifies 0, then default value 10 will be used.
              },
            },
            &quot;autoscalingConfig&quot;: { # Autoscaling Policy config associated with the cluster. # Optional. Autoscaling config for the policy associated with the cluster. Cluster does not autoscale if this field is unset.
              &quot;policyUri&quot;: &quot;A String&quot;, # 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/[project_id]/locations/[dataproc_region]/autoscalingPolicies/[policy_id] projects/[project_id]/locations/[dataproc_region]/autoscalingPolicies/[policy_id]Note that the policy must be in the same project and Dataproc region.
            },
            &quot;gceClusterConfig&quot;: { # Common config settings for resources of Compute Engine cluster instances, applicable to all instances in the cluster. # Optional. The shared Compute Engine config settings for all instances in a cluster.
              &quot;internalIpOnly&quot;: True or False, # Optional. If true, all instances in the cluster will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This internal_ip_only restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
              &quot;zoneUri&quot;: &quot;A String&quot;, # Optional. The zone where the Compute Engine cluster will be located. On a create request, it is required in the &quot;global&quot; region. If omitted in a non-global Dataproc region, the service will pick a zone in the corresponding 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/[project_id]/zones/[zone] projects/[project_id]/zones/[zone] us-central1-f
              &quot;tags&quot;: [ # The Compute Engine tags to add to all instances (see Tagging instances (https://cloud.google.com/compute/docs/label-or-tag-resources#tags)).
                &quot;A String&quot;,
              ],
              &quot;metadata&quot;: { # 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)).
                &quot;a_key&quot;: &quot;A String&quot;,
              },
              &quot;subnetworkUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine subnetwork to be used for machine communications. Cannot be specified with network_uri.A full URL, partial URI, or short name are valid. Examples: https://www.googleapis.com/compute/v1/projects/[project_id]/regions/us-east1/subnetworks/sub0 projects/[project_id]/regions/us-east1/subnetworks/sub0 sub0
              &quot;serviceAccount&quot;: &quot;A String&quot;, # Optional. The Dataproc 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 Dataproc 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.
              &quot;privateIpv6GoogleAccess&quot;: &quot;A String&quot;, # Optional. The type of IPv6 access for a cluster.
              &quot;serviceAccountScopes&quot;: [ # 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.writeIf 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
                &quot;A String&quot;,
              ],
              &quot;reservationAffinity&quot;: { # Reservation Affinity for consuming Zonal reservation. # Optional. Reservation Affinity for consuming Zonal reservation.
                &quot;values&quot;: [ # Optional. Corresponds to the label values of reservation resource.
                  &quot;A String&quot;,
                ],
                &quot;key&quot;: &quot;A String&quot;, # Optional. Corresponds to the label key of reservation resource.
                &quot;consumeReservationType&quot;: &quot;A String&quot;, # Optional. Type of reservation to consume
              },
              &quot;networkUri&quot;: &quot;A String&quot;, # Optional. The Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither network_uri nor subnetwork_uri is specified, the &quot;default&quot; network of the project is used, if it exists. Cannot be a &quot;Custom Subnet Network&quot; (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/[project_id]/regions/global/default projects/[project_id]/regions/global/default default
              &quot;nodeGroupAffinity&quot;: { # Node Group Affinity for clusters using sole-tenant node groups. # Optional. Node Group Affinity for sole-tenant clusters.
                &quot;nodeGroupUri&quot;: &quot;A String&quot;, # 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/[project_id]/zones/us-central1-a/nodeGroups/node-group-1 projects/[project_id]/zones/us-central1-a/nodeGroups/node-group-1 node-group-1
              },
            },
            &quot;endpointConfig&quot;: { # Endpoint config for this cluster # Optional. Port/endpoint configuration for this cluster
              &quot;httpPorts&quot;: { # Output only. The map of port descriptions to URLs. Will only be populated if enable_http_port_access is true.
                &quot;a_key&quot;: &quot;A String&quot;,
              },
              &quot;enableHttpPortAccess&quot;: True or False, # Optional. If true, enable http access to specific ports on the cluster from external sources. Defaults to false.
            },
          },
          &quot;labels&quot;: { # Optional. The labels to associate with this cluster.Label keys must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 32 labels can be associated with a given cluster.
            &quot;a_key&quot;: &quot;A String&quot;,
          },
          &quot;clusterName&quot;: &quot;A String&quot;, # Required. The cluster name prefix. A unique cluster name will be formed by appending a random suffix.The name must contain only lower-case letters (a-z), numbers (0-9), and hyphens (-). Must begin with a letter. Cannot begin or end with hyphen. Must consist of between 2 and 35 characters.
        },
      },
      &quot;version&quot;: 42, # Optional. Used to perform a consistent read-modify-write.This field should be left blank for a CreateWorkflowTemplate request. It is required for an UpdateWorkflowTemplate request, and must match the current server version. A typical update template flow would fetch the current template with a GetWorkflowTemplate request, which will return the current template with the version field filled in with the current server version. The user updates other fields in the template, then returns it as part of the UpdateWorkflowTemplate request.
      &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time template was created.
      &quot;parameters&quot;: [ # Optional. Template parameters whose values are substituted into the template. Values for parameters must be provided when the template is instantiated.
        { # A configurable parameter that replaces one or more fields in the template. Parameterizable fields: - Labels - File uris - Job properties - Job arguments - Script variables - Main class (in HadoopJob and SparkJob) - Zone (in ClusterSelector)
          &quot;validation&quot;: { # Configuration for parameter validation. # Optional. Validation rules to be applied to this parameter&#x27;s value.
            &quot;values&quot;: { # Validation based on a list of allowed values. # Validation based on a list of allowed values.
              &quot;values&quot;: [ # Required. List of allowed values for the parameter.
                &quot;A String&quot;,
              ],
            },
            &quot;regex&quot;: { # Validation based on regular expressions. # Validation based on regular expressions.
              &quot;regexes&quot;: [ # Required. RE2 regular expressions used to validate the parameter&#x27;s value. The value must match the regex in its entirety (substring matches are not sufficient).
                &quot;A String&quot;,
              ],
            },
          },
          &quot;fields&quot;: [ # Required. Paths to all fields that the parameter replaces. A field is allowed to appear in at most one parameter&#x27;s list of field paths.A field path is similar in syntax to a google.protobuf.FieldMask. For example, a field path that references the zone field of a workflow template&#x27;s cluster selector would be specified as placement.clusterSelector.zone.Also, field paths can reference fields using the following syntax: Values in maps can be referenced by key: labels&#x27;key&#x27; placement.clusterSelector.clusterLabels&#x27;key&#x27; placement.managedCluster.labels&#x27;key&#x27; placement.clusterSelector.clusterLabels&#x27;key&#x27; jobs&#x27;step-id&#x27;.labels&#x27;key&#x27; Jobs in the jobs list can be referenced by step-id: jobs&#x27;step-id&#x27;.hadoopJob.mainJarFileUri jobs&#x27;step-id&#x27;.hiveJob.queryFileUri jobs&#x27;step-id&#x27;.pySparkJob.mainPythonFileUri jobs&#x27;step-id&#x27;.hadoopJob.jarFileUris0 jobs&#x27;step-id&#x27;.hadoopJob.archiveUris0 jobs&#x27;step-id&#x27;.hadoopJob.fileUris0 jobs&#x27;step-id&#x27;.pySparkJob.pythonFileUris0 Items in repeated fields can be referenced by a zero-based index: jobs&#x27;step-id&#x27;.sparkJob.args0 Other examples: jobs&#x27;step-id&#x27;.hadoopJob.properties&#x27;key&#x27; jobs&#x27;step-id&#x27;.hadoopJob.args0 jobs&#x27;step-id&#x27;.hiveJob.scriptVariables&#x27;key&#x27; jobs&#x27;step-id&#x27;.hadoopJob.mainJarFileUri placement.clusterSelector.zoneIt may not be possible to parameterize maps and repeated fields in their entirety since only individual map values and individual items in repeated fields can be referenced. For example, the following field paths are invalid: placement.clusterSelector.clusterLabels jobs&#x27;step-id&#x27;.sparkJob.args
            &quot;A String&quot;,
          ],
          &quot;name&quot;: &quot;A String&quot;, # Required. Parameter name. The parameter name is used as the key, and paired with the parameter value, which are passed to the template when the template is instantiated. The name must contain only capital letters (A-Z), numbers (0-9), and underscores (_), and must not start with a number. The maximum length is 40 characters.
          &quot;description&quot;: &quot;A String&quot;, # Optional. Brief description of the parameter. Must not exceed 1024 characters.
        },
      ],
      &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of the workflow template, as described in https://cloud.google.com/apis/design/resource_names. For projects.regions.workflowTemplates, the resource name of the template has the following format: projects/{project_id}/regions/{region}/workflowTemplates/{template_id} For projects.locations.workflowTemplates, the resource name of the template has the following format: projects/{project_id}/locations/{location}/workflowTemplates/{template_id}
      &quot;jobs&quot;: [ # Required. The Directed Acyclic Graph of Jobs to submit.
        { # A job executed by the workflow.
          &quot;stepId&quot;: &quot;A String&quot;, # Required. The step id. The id must be unique among all jobs within the template.The step id is used as prefix for job id, as job goog-dataproc-workflow-step-id label, and in prerequisiteStepIds field from other steps.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 between 3 and 50 characters.
          &quot;pigJob&quot;: { # A Dataproc job for running Apache Pig (https://pig.apache.org/) queries on YARN. # Optional. Job is a Pig job.
            &quot;properties&quot;: { # Optional. A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
              &quot;a_key&quot;: &quot;A String&quot;,
            },
            &quot;scriptVariables&quot;: { # Optional. Mapping of query variable names to values (equivalent to the Pig command: name=[value]).
              &quot;a_key&quot;: &quot;A String&quot;,
            },
            &quot;jarFileUris&quot;: [ # Optional. HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
              &quot;A String&quot;,
            ],
            &quot;loggingConfig&quot;: { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
              &quot;driverLogLevels&quot;: { # The per-package log levels for the driver. This may include &quot;root&quot; package name to configure rootLogger. Examples: &#x27;com.google = FATAL&#x27;, &#x27;root = INFO&#x27;, &#x27;org.apache = DEBUG&#x27;
                &quot;a_key&quot;: &quot;A String&quot;,
              },
            },
            &quot;queryList&quot;: { # A list of queries to run on a cluster. # A list of queries.
              &quot;queries&quot;: [ # Required. The queries to execute. You do not need to end a query expression with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of a Dataproc API snippet that uses a QueryList to specify a HiveJob: &quot;hiveJob&quot;: { &quot;queryList&quot;: { &quot;queries&quot;: [ &quot;query1&quot;, &quot;query2&quot;, &quot;query3;query4&quot;, ] } }
                &quot;A String&quot;,
              ],
            },
            &quot;continueOnFailure&quot;: True or False, # Optional. Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
            &quot;queryFileUri&quot;: &quot;A String&quot;, # The HCFS URI of the script that contains the Pig queries.
          },
          &quot;sparkJob&quot;: { # A Dataproc job for running Apache Spark (http://spark.apache.org/) applications on YARN. # Optional. Job is a Spark job.
            &quot;loggingConfig&quot;: { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
              &quot;driverLogLevels&quot;: { # The per-package log levels for the driver. This may include &quot;root&quot; package name to configure rootLogger. Examples: &#x27;com.google = FATAL&#x27;, &#x27;root = INFO&#x27;, &#x27;org.apache = DEBUG&#x27;
                &quot;a_key&quot;: &quot;A String&quot;,
              },
            },
            &quot;archiveUris&quot;: [ # Optional. HCFS URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
              &quot;A String&quot;,
            ],
            &quot;jarFileUris&quot;: [ # Optional. HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
              &quot;A String&quot;,
            ],
            &quot;properties&quot;: { # Optional. A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
              &quot;a_key&quot;: &quot;A String&quot;,
            },
            &quot;mainClass&quot;: &quot;A String&quot;, # The name of the driver&#x27;s main class. The jar file that contains the class must be in the default CLASSPATH or specified in jar_file_uris.
            &quot;mainJarFileUri&quot;: &quot;A String&quot;, # The HCFS URI of the jar file that contains the main class.
            &quot;args&quot;: [ # Optional. The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
              &quot;A String&quot;,
            ],
            &quot;fileUris&quot;: [ # Optional. HCFS URIs of files to be placed in the working directory of each executor. Useful for naively parallel tasks.
              &quot;A String&quot;,
            ],
          },
          &quot;pysparkJob&quot;: { # A Dataproc job for running Apache PySpark (https://spark.apache.org/docs/0.9.0/python-programming-guide.html) applications on YARN. # Optional. Job is a PySpark job.
            &quot;loggingConfig&quot;: { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
              &quot;driverLogLevels&quot;: { # The per-package log levels for the driver. This may include &quot;root&quot; package name to configure rootLogger. Examples: &#x27;com.google = FATAL&#x27;, &#x27;root = INFO&#x27;, &#x27;org.apache = DEBUG&#x27;
                &quot;a_key&quot;: &quot;A String&quot;,
              },
            },
            &quot;mainPythonFileUri&quot;: &quot;A String&quot;, # Required. The HCFS URI of the main Python file to use as the driver. Must be a .py file.
            &quot;pythonFileUris&quot;: [ # Optional. HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
              &quot;A String&quot;,
            ],
            &quot;args&quot;: [ # Optional. The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
              &quot;A String&quot;,
            ],
            &quot;properties&quot;: { # Optional. A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
              &quot;a_key&quot;: &quot;A String&quot;,
            },
            &quot;jarFileUris&quot;: [ # Optional. HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
              &quot;A String&quot;,
            ],
            &quot;archiveUris&quot;: [ # Optional. HCFS URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
              &quot;A String&quot;,
            ],
            &quot;fileUris&quot;: [ # Optional. HCFS URIs of files to be placed in the working directory of each executor. Useful for naively parallel tasks.
              &quot;A String&quot;,
            ],
          },
          &quot;scheduling&quot;: { # Job scheduling options. # Optional. Job scheduling configuration.
            &quot;maxFailuresTotal&quot;: 42, # Optional. Maximum number of times in total a driver may be restarted as a result of driver exiting with non-zero code before job is reported failed. Maximum value is 240
            &quot;maxFailuresPerHour&quot;: 42, # Optional. Maximum number of times per hour a driver may be restarted as a result of driver exiting with non-zero code before job is reported failed.A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window.Maximum value is 10.
          },
          &quot;sparkSqlJob&quot;: { # A Dataproc job for running Apache Spark SQL (http://spark.apache.org/sql/) queries. # Optional. Job is a SparkSql job.
            &quot;queryFileUri&quot;: &quot;A String&quot;, # The HCFS URI of the script that contains SQL queries.
            &quot;loggingConfig&quot;: { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
              &quot;driverLogLevels&quot;: { # The per-package log levels for the driver. This may include &quot;root&quot; package name to configure rootLogger. Examples: &#x27;com.google = FATAL&#x27;, &#x27;root = INFO&#x27;, &#x27;org.apache = DEBUG&#x27;
                &quot;a_key&quot;: &quot;A String&quot;,
              },
            },
            &quot;scriptVariables&quot;: { # Optional. Mapping of query variable names to values (equivalent to the Spark SQL command: SET name=&quot;value&quot;;).
              &quot;a_key&quot;: &quot;A String&quot;,
            },
            &quot;queryList&quot;: { # A list of queries to run on a cluster. # A list of queries.
              &quot;queries&quot;: [ # Required. The queries to execute. You do not need to end a query expression with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of a Dataproc API snippet that uses a QueryList to specify a HiveJob: &quot;hiveJob&quot;: { &quot;queryList&quot;: { &quot;queries&quot;: [ &quot;query1&quot;, &quot;query2&quot;, &quot;query3;query4&quot;, ] } }
                &quot;A String&quot;,
              ],
            },
            &quot;properties&quot;: { # Optional. A mapping of property names to values, used to configure Spark SQL&#x27;s SparkConf. Properties that conflict with values set by the Dataproc API may be overwritten.
              &quot;a_key&quot;: &quot;A String&quot;,
            },
            &quot;jarFileUris&quot;: [ # Optional. HCFS URIs of jar files to be added to the Spark CLASSPATH.
              &quot;A String&quot;,
            ],
          },
          &quot;hiveJob&quot;: { # A Dataproc job for running Apache Hive (https://hive.apache.org/) queries on YARN. # Optional. Job is a Hive job.
            &quot;jarFileUris&quot;: [ # Optional. HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
              &quot;A String&quot;,
            ],
            &quot;continueOnFailure&quot;: True or False, # Optional. Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
            &quot;properties&quot;: { # Optional. A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
              &quot;a_key&quot;: &quot;A String&quot;,
            },
            &quot;queryList&quot;: { # A list of queries to run on a cluster. # A list of queries.
              &quot;queries&quot;: [ # Required. The queries to execute. You do not need to end a query expression with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of a Dataproc API snippet that uses a QueryList to specify a HiveJob: &quot;hiveJob&quot;: { &quot;queryList&quot;: { &quot;queries&quot;: [ &quot;query1&quot;, &quot;query2&quot;, &quot;query3;query4&quot;, ] } }
                &quot;A String&quot;,
              ],
            },
            &quot;scriptVariables&quot;: { # Optional. Mapping of query variable names to values (equivalent to the Hive command: SET name=&quot;value&quot;;).
              &quot;a_key&quot;: &quot;A String&quot;,
            },
            &quot;queryFileUri&quot;: &quot;A String&quot;, # The HCFS URI of the script that contains Hive queries.
          },
          &quot;prestoJob&quot;: { # A Dataproc job for running Presto (https://prestosql.io/) queries. IMPORTANT: The Dataproc Presto Optional Component (https://cloud.google.com/dataproc/docs/concepts/components/presto) must be enabled when the cluster is created to submit a Presto job to the cluster. # Optional. Job is a Presto job.
            &quot;properties&quot;: { # Optional. A mapping of property names to values. Used to set Presto session properties (https://prestodb.io/docs/current/sql/set-session.html) Equivalent to using the --session flag in the Presto CLI
              &quot;a_key&quot;: &quot;A String&quot;,
            },
            &quot;clientTags&quot;: [ # Optional. Presto client tags to attach to this query
              &quot;A String&quot;,
            ],
            &quot;queryFileUri&quot;: &quot;A String&quot;, # The HCFS URI of the script that contains SQL queries.
            &quot;queryList&quot;: { # A list of queries to run on a cluster. # A list of queries.
              &quot;queries&quot;: [ # Required. The queries to execute. You do not need to end a query expression with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of a Dataproc API snippet that uses a QueryList to specify a HiveJob: &quot;hiveJob&quot;: { &quot;queryList&quot;: { &quot;queries&quot;: [ &quot;query1&quot;, &quot;query2&quot;, &quot;query3;query4&quot;, ] } }
                &quot;A String&quot;,
              ],
            },
            &quot;outputFormat&quot;: &quot;A String&quot;, # Optional. The format in which query output will be displayed. See the Presto documentation for supported output formats
            &quot;continueOnFailure&quot;: True or False, # Optional. Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
            &quot;loggingConfig&quot;: { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
              &quot;driverLogLevels&quot;: { # The per-package log levels for the driver. This may include &quot;root&quot; package name to configure rootLogger. Examples: &#x27;com.google = FATAL&#x27;, &#x27;root = INFO&#x27;, &#x27;org.apache = DEBUG&#x27;
                &quot;a_key&quot;: &quot;A String&quot;,
              },
            },
          },
          &quot;hadoopJob&quot;: { # A Dataproc job for running Apache Hadoop MapReduce (https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html) jobs on Apache Hadoop YARN (https://hadoop.apache.org/docs/r2.7.1/hadoop-yarn/hadoop-yarn-site/YARN.html). # Optional. Job is a Hadoop job.
            &quot;fileUris&quot;: [ # Optional. HCFS (Hadoop Compatible Filesystem) URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
              &quot;A String&quot;,
            ],
            &quot;mainClass&quot;: &quot;A String&quot;, # The name of the driver&#x27;s main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
            &quot;args&quot;: [ # Optional. The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
              &quot;A String&quot;,
            ],
            &quot;mainJarFileUri&quot;: &quot;A String&quot;, # The HCFS URI of the jar file containing the main class. Examples: &#x27;gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar&#x27; &#x27;hdfs:/tmp/test-samples/custom-wordcount.jar&#x27; &#x27;file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar&#x27;
            &quot;jarFileUris&quot;: [ # Optional. Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
              &quot;A String&quot;,
            ],
            &quot;archiveUris&quot;: [ # Optional. HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
              &quot;A String&quot;,
            ],
            &quot;properties&quot;: { # Optional. A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
              &quot;a_key&quot;: &quot;A String&quot;,
            },
            &quot;loggingConfig&quot;: { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
              &quot;driverLogLevels&quot;: { # The per-package log levels for the driver. This may include &quot;root&quot; package name to configure rootLogger. Examples: &#x27;com.google = FATAL&#x27;, &#x27;root = INFO&#x27;, &#x27;org.apache = DEBUG&#x27;
                &quot;a_key&quot;: &quot;A String&quot;,
              },
            },
          },
          &quot;sparkRJob&quot;: { # A Dataproc job for running Apache SparkR (https://spark.apache.org/docs/latest/sparkr.html) applications on YARN. # Optional. Job is a SparkR job.
            &quot;properties&quot;: { # Optional. A mapping of property names to values, used to configure SparkR. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
              &quot;a_key&quot;: &quot;A String&quot;,
            },
            &quot;loggingConfig&quot;: { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
              &quot;driverLogLevels&quot;: { # The per-package log levels for the driver. This may include &quot;root&quot; package name to configure rootLogger. Examples: &#x27;com.google = FATAL&#x27;, &#x27;root = INFO&#x27;, &#x27;org.apache = DEBUG&#x27;
                &quot;a_key&quot;: &quot;A String&quot;,
              },
            },
            &quot;mainRFileUri&quot;: &quot;A String&quot;, # Required. The HCFS URI of the main R file to use as the driver. Must be a .R file.
            &quot;archiveUris&quot;: [ # Optional. HCFS URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
              &quot;A String&quot;,
            ],
            &quot;fileUris&quot;: [ # Optional. HCFS URIs of files to be placed in the working directory of each executor. Useful for naively parallel tasks.
              &quot;A String&quot;,
            ],
            &quot;args&quot;: [ # Optional. The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
              &quot;A String&quot;,
            ],
          },
          &quot;prerequisiteStepIds&quot;: [ # Optional. The optional list of prerequisite job step_ids. If not specified, the job will start at the beginning of workflow.
            &quot;A String&quot;,
          ],
          &quot;labels&quot;: { # Optional. The labels to associate with this job.Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 32 labels can be associated with a given job.
            &quot;a_key&quot;: &quot;A String&quot;,
          },
        },
      ],
    }</pre>
</div>

</body></html>