-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Google Cloud Dataproc SDK.
--   
--   An API for managing Hadoop-based clusters and jobs on Google Cloud
--   Platform.
--   
--   <i>Warning:</i> This is an experimental prototype/preview release
--   which is still under exploratory development and not intended for
--   public use, caveat emptor!
--   
--   This library is compatible with version <tt>v1</tt> of the API.
@package gogol-dataproc
@version 0.3.0


module Network.Google.Dataproc.Types

-- | Default request referring to version <tt>v1</tt> of the Google Cloud
--   Dataproc API. This contains the host and root path used as a starting
--   point for constructing service requests.
dataprocService :: ServiceConfig

-- | View and manage your data across Google Cloud Platform services
cloudPlatformScope :: Proxy '["https://www.googleapis.com/auth/cloud-platform"]

-- | Encapsulates the full scoping used to reference a job.
--   
--   <i>See:</i> <a>jobReference</a> smart constructor.
data JobReference

-- | Creates a value of <a>JobReference</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jrJobId</a></li>
--   <li><a>jrProjectId</a></li>
--   </ul>
jobReference :: JobReference

-- | <ul>
--   <li><i>Optional</i> The job ID, which must be unique within the
--   project. The job ID is generated by the server upon job submission or
--   provided by the user as a means to perform retries without creating
--   duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers
--   (0-9), underscores (_), or hyphens (-). The maximum length is 512
--   characters.</li>
--   </ul>
jrJobId :: Lens' JobReference (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The ID of the Google Cloud Platform project that
--   the job belongs to.</li>
--   </ul>
jrProjectId :: Lens' JobReference (Maybe Text)

-- | 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 <a>gRPC</a>. The error model is designed to be: - Simple
--   to use and understand for most users - Flexible enough to meet
--   unexpected needs # Overview The `Status` message contains three pieces
--   of data: error code, error message, and error details. The error code
--   should be an enum value of google.rpc.Code, but it may accept
--   additional error codes if needed. The error message should be a
--   developer-facing English message that helps developers *understand*
--   and *resolve* the error. If a localized user-facing error message is
--   needed, put the localized message in the error details or localize it
--   in the client. The optional error details may contain arbitrary
--   information about the error. There is a predefined set of error detail
--   types in the package `google.rpc` which can be used for common error
--   conditions. # Language mapping The `Status` message is the logical
--   representation of the error model, but it is not necessarily the
--   actual wire format. When the `Status` message is exposed in different
--   client libraries and different wire protocols, it can be mapped
--   differently. For example, it will likely be mapped to some exceptions
--   in Java, but more likely mapped to some error codes in C. # Other uses
--   The error model and the `Status` message can be used in a variety of
--   environments, either with or without APIs, to provide a consistent
--   developer experience across different environments. Example uses of
--   this error model include: - Partial errors. If a service needs to
--   return partial errors to the client, it may embed the `Status` in the
--   normal response to indicate the partial errors. - Workflow errors. A
--   typical workflow has multiple steps. Each step may have a `Status`
--   message for error reporting purpose. - Batch operations. If a client
--   uses batch request and batch response, the `Status` message should be
--   used directly inside batch response, one for each error sub-response.
--   - Asynchronous operations. If an API call embeds asynchronous
--   operation results in its response, the status of those operations
--   should be represented directly using the `Status` message. - Logging.
--   If some API errors are stored in logs, the message `Status` could be
--   used directly after any stripping needed for security/privacy reasons.
--   
--   <i>See:</i> <a>status</a> smart constructor.
data Status

-- | Creates a value of <a>Status</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sDetails</a></li>
--   <li><a>sCode</a></li>
--   <li><a>sMessage</a></li>
--   </ul>
status :: Status

-- | A list of messages that carry the error details. There will be a
--   common set of message types for APIs to use.
sDetails :: Lens' Status [StatusDetailsItem]

-- | The status code, which should be an enum value of google.rpc.Code.
sCode :: Lens' Status (Maybe Int32)

-- | 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.
sMessage :: Lens' Status (Maybe Text)

-- | 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.
--   
--   <i>See:</i> <a>operationSchema</a> smart constructor.
data OperationSchema

-- | Creates a value of <a>OperationSchema</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>osAddtional</a></li>
--   </ul>
operationSchema :: HashMap Text JSONValue -> OperationSchema

-- | Properties of the object. Contains field 'type with type URL.
osAddtional :: Lens' OperationSchema (HashMap Text JSONValue)

-- | <ul>
--   <li><i>Optional</i> A mapping of property names to values, used to
--   configure PySpark. Properties that conflict with values set by the
--   Cloud Dataproc API may be overwritten. Can include properties set in
--   /etc/spark/conf/spark-defaults.conf and classes in user code.</li>
--   </ul>
--   
--   <i>See:</i> <a>pySparkJobProperties</a> smart constructor.
data PySparkJobProperties

-- | Creates a value of <a>PySparkJobProperties</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>psjpAddtional</a></li>
--   </ul>
pySparkJobProperties :: HashMap Text Text -> PySparkJobProperties
psjpAddtional :: Lens' PySparkJobProperties (HashMap Text Text)

-- | The location of diagnostic output.
--   
--   <i>See:</i> <a>diagnoseClusterResults</a> smart constructor.
data DiagnoseClusterResults

-- | Creates a value of <a>DiagnoseClusterResults</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dcrOutputURI</a></li>
--   </ul>
diagnoseClusterResults :: DiagnoseClusterResults

-- | <ul>
--   <li><i>Output-only</i> The Google Cloud Storage URI of the diagnostic
--   output. The output report is a plain text file with a summary of
--   collected diagnostics.</li>
--   </ul>
dcrOutputURI :: Lens' DiagnoseClusterResults (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> The config settings for Google Compute Engine
--   resources in an instance group, such as a master or worker group.</li>
--   </ul>
--   
--   <i>See:</i> <a>instanceGroupConfig</a> smart constructor.
data InstanceGroupConfig

-- | Creates a value of <a>InstanceGroupConfig</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>igcNumInstances</a></li>
--   <li><a>igcDiskConfig</a></li>
--   <li><a>igcIsPreemptible</a></li>
--   <li><a>igcImageURI</a></li>
--   <li><a>igcInstanceNames</a></li>
--   <li><a>igcManagedGroupConfig</a></li>
--   <li><a>igcMachineTypeURI</a></li>
--   </ul>
instanceGroupConfig :: InstanceGroupConfig

-- | <ul>
--   <li><i>Required</i> The number of VM instances in the instance group.
--   For master instance groups, must be set to 1.</li>
--   </ul>
igcNumInstances :: Lens' InstanceGroupConfig (Maybe Int32)

-- | <ul>
--   <li><i>Optional</i> Disk option config settings.</li>
--   </ul>
igcDiskConfig :: Lens' InstanceGroupConfig (Maybe DiskConfig)

-- | <ul>
--   <li><i>Optional</i> Specifies that this instance group contains
--   preemptible instances.</li>
--   </ul>
igcIsPreemptible :: Lens' InstanceGroupConfig (Maybe Bool)

-- | <ul>
--   <li><i>Output-only</i> The Google Compute Engine image resource used
--   for cluster instances. Inferred from
--   `SoftwareConfig.image_version`.</li>
--   </ul>
igcImageURI :: Lens' InstanceGroupConfig (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> The list of instance names. Cloud Dataproc derives
--   the names from `cluster_name`, `num_instances`, and the instance group
--   if not set by user (recommended practice is to let Cloud Dataproc
--   derive the name).</li>
--   </ul>
igcInstanceNames :: Lens' InstanceGroupConfig [Text]

-- | <ul>
--   <li><i>Output-only</i> The config for Google Compute Engine Instance
--   Group Manager that manages this group. This is only used for
--   preemptible instance groups.</li>
--   </ul>
igcManagedGroupConfig :: Lens' InstanceGroupConfig (Maybe ManagedGroupConfig)

-- | <ul>
--   <li><i>Required</i> The Google Compute Engine machine type used for
--   cluster instances. Example:
--   `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2`.</li>
--   </ul>
igcMachineTypeURI :: Lens' InstanceGroupConfig (Maybe Text)

-- | A Cloud Dataproc job for running <a>Apache Spark</a> applications on
--   YARN.
--   
--   <i>See:</i> <a>sparkJob</a> smart constructor.
data SparkJob

-- | Creates a value of <a>SparkJob</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sjArgs</a></li>
--   <li><a>sjMainJarFileURI</a></li>
--   <li><a>sjJarFileURIs</a></li>
--   <li><a>sjFileURIs</a></li>
--   <li><a>sjArchiveURIs</a></li>
--   <li><a>sjMainClass</a></li>
--   <li><a>sjLoggingConfig</a></li>
--   <li><a>sjProperties</a></li>
--   </ul>
sparkJob :: SparkJob

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
sjArgs :: Lens' SparkJob [Text]

-- | The HCFS URI of the jar file that contains the main class.
sjMainJarFileURI :: Lens' SparkJob (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> HCFS URIs of jar files to add to the CLASSPATHs of
--   the Spark driver and tasks.</li>
--   </ul>
sjJarFileURIs :: Lens' SparkJob [Text]

-- | <ul>
--   <li><i>Optional</i> HCFS URIs of files to be copied to the working
--   directory of Spark drivers and distributed tasks. Useful for naively
--   parallel tasks.</li>
--   </ul>
sjFileURIs :: Lens' SparkJob [Text]

-- | <ul>
--   <li><i>Optional</i> HCFS URIs of archives to be extracted in the
--   working directory of Spark drivers and tasks. Supported file types:
--   .jar, .tar, .tar.gz, .tgz, and .zip.</li>
--   </ul>
sjArchiveURIs :: Lens' SparkJob [Text]

-- | The name of the driver's main class. The jar file that contains the
--   class must be in the default CLASSPATH or specified in
--   `jar_file_uris`.
sjMainClass :: Lens' SparkJob (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> The runtime log config for job execution.</li>
--   </ul>
sjLoggingConfig :: Lens' SparkJob (Maybe LoggingConfig)

-- | <ul>
--   <li><i>Optional</i> A mapping of property names to values, used to
--   configure Spark. Properties that conflict with values set by the Cloud
--   Dataproc API may be overwritten. Can include properties set in
--   /etc/spark/conf/spark-defaults.conf and classes in user code.</li>
--   </ul>
sjProperties :: Lens' SparkJob (Maybe SparkJobProperties)

-- | <ul>
--   <li><i>Optional</i> The properties to set on daemon config files.
--   Property keys are specified in `prefix:property` format, such as
--   `core:fs.defaultFS`. The following are supported prefixes and their
--   mappings: * core: `core-site.xml` * hdfs: `hdfs-site.xml` * mapred:
--   `mapred-site.xml` * yarn: `yarn-site.xml` * hive: `hive-site.xml` *
--   pig: `pig.properties` * spark: `spark-defaults.conf`</li>
--   </ul>
--   
--   <i>See:</i> <a>softwareConfigProperties</a> smart constructor.
data SoftwareConfigProperties

-- | Creates a value of <a>SoftwareConfigProperties</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>scpAddtional</a></li>
--   </ul>
softwareConfigProperties :: HashMap Text Text -> SoftwareConfigProperties
scpAddtional :: Lens' SoftwareConfigProperties (HashMap Text Text)

-- | Specifies the config of disk options for a group of VM instances.
--   
--   <i>See:</i> <a>diskConfig</a> smart constructor.
data DiskConfig

-- | Creates a value of <a>DiskConfig</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dcNumLocalSsds</a></li>
--   <li><a>dcBootDiskSizeGb</a></li>
--   </ul>
diskConfig :: DiskConfig

-- | <ul>
--   <li><i>Optional</i> 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</li>
--   <li><i>HDFS</i>
--   (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.</li>
--   </ul>
dcNumLocalSsds :: Lens' DiskConfig (Maybe Int32)

-- | <ul>
--   <li><i>Optional</i> Size in GB of the boot disk (default is
--   500GB).</li>
--   </ul>
dcBootDiskSizeGb :: Lens' DiskConfig (Maybe Int32)

-- | <ul>
--   <li><i>Output-only</i> labels associated with the operation</li>
--   </ul>
--   
--   <i>See:</i> <a>clusterOperationMetadataLabels</a> smart constructor.
data ClusterOperationMetadataLabels

-- | Creates a value of <a>ClusterOperationMetadataLabels</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>comlAddtional</a></li>
--   </ul>
clusterOperationMetadataLabels :: HashMap Text Text -> ClusterOperationMetadataLabels
comlAddtional :: Lens' ClusterOperationMetadataLabels (HashMap Text Text)

-- | The response message for Operations.ListOperations.
--   
--   <i>See:</i> <a>listOperationsResponse</a> smart constructor.
data ListOperationsResponse

-- | Creates a value of <a>ListOperationsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lorNextPageToken</a></li>
--   <li><a>lorOperations</a></li>
--   </ul>
listOperationsResponse :: ListOperationsResponse

-- | The standard List next-page token.
lorNextPageToken :: Lens' ListOperationsResponse (Maybe Text)

-- | A list of operations that matches the specified filter in the request.
lorOperations :: Lens' ListOperationsResponse [Operation]

-- | <ul>
--   <li><i>Optional</i> Mapping of query variable names to values
--   (equivalent to the Hive command: `SET name="value";`).</li>
--   </ul>
--   
--   <i>See:</i> <a>hiveJobScriptVariables</a> smart constructor.
data HiveJobScriptVariables

-- | Creates a value of <a>HiveJobScriptVariables</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>hjsvAddtional</a></li>
--   </ul>
hiveJobScriptVariables :: HashMap Text Text -> HiveJobScriptVariables
hjsvAddtional :: Lens' HiveJobScriptVariables (HashMap Text Text)

-- | Describes the identifying information, config, and status of a cluster
--   of Google Compute Engine instances.
--   
--   <i>See:</i> <a>cluster</a> smart constructor.
data Cluster

-- | Creates a value of <a>Cluster</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cStatus</a></li>
--   <li><a>cMetrics</a></li>
--   <li><a>cClusterUuid</a></li>
--   <li><a>cConfig</a></li>
--   <li><a>cClusterName</a></li>
--   <li><a>cLabels</a></li>
--   <li><a>cProjectId</a></li>
--   <li><a>cStatusHistory</a></li>
--   </ul>
cluster :: Cluster

-- | <ul>
--   <li><i>Output-only</i> Cluster status.</li>
--   </ul>
cStatus :: Lens' Cluster (Maybe ClusterStatus)

-- | Contains cluster daemon metrics such as HDFS and YARN stats. **Beta
--   Feature**: This report is available for testing purposes only. It may
--   be changed before final release.
cMetrics :: Lens' Cluster (Maybe ClusterMetrics)

-- | <ul>
--   <li><i>Output-only</i> A cluster UUID (Unique Universal Identifier).
--   Cloud Dataproc generates this value when it creates the cluster.</li>
--   </ul>
cClusterUuid :: Lens' Cluster (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The cluster config. Note that Cloud Dataproc may
--   set default values, and values may change when clusters are
--   updated.</li>
--   </ul>
cConfig :: Lens' Cluster (Maybe ClusterConfig)

-- | <ul>
--   <li><i>Required</i> The cluster name. Cluster names within a project
--   must be unique. Names of deleted clusters can be reused.</li>
--   </ul>
cClusterName :: Lens' Cluster (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> The labels to associate with this cluster. Label
--   **keys** must contain 1 to 63 characters, and must conform to <a>RFC
--   1035</a>. Label **values** may be empty, but, if present, must contain
--   1 to 63 characters, and must conform to <a>RFC 1035</a>. No more than
--   32 labels can be associated with a cluster.</li>
--   </ul>
cLabels :: Lens' Cluster (Maybe ClusterLabels)

-- | <ul>
--   <li><i>Required</i> The Google Cloud Platform project ID that the
--   cluster belongs to.</li>
--   </ul>
cProjectId :: Lens' Cluster (Maybe Text)

-- | <ul>
--   <li><i>Output-only</i> The previous cluster status.</li>
--   </ul>
cStatusHistory :: Lens' Cluster [ClusterStatus]

-- | <ul>
--   <li><i>Optional</i> The labels to associate with this job. Label
--   **keys** must contain 1 to 63 characters, and must conform to <a>RFC
--   1035</a>. Label **values** may be empty, but, if present, must contain
--   1 to 63 characters, and must conform to <a>RFC 1035</a>. No more than
--   32 labels can be associated with a job.</li>
--   </ul>
--   
--   <i>See:</i> <a>jobLabels</a> smart constructor.
data JobLabels

-- | Creates a value of <a>JobLabels</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jlAddtional</a></li>
--   </ul>
jobLabels :: HashMap Text Text -> JobLabels
jlAddtional :: Lens' JobLabels (HashMap Text Text)

-- | A request to submit a job.
--   
--   <i>See:</i> <a>submitJobRequest</a> smart constructor.
data SubmitJobRequest

-- | Creates a value of <a>SubmitJobRequest</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sjrJob</a></li>
--   </ul>
submitJobRequest :: SubmitJobRequest

-- | <ul>
--   <li><i>Required</i> The job resource.</li>
--   </ul>
sjrJob :: Lens' SubmitJobRequest (Maybe Job)

-- | Contains cluster daemon metrics, such as HDFS and YARN stats. **Beta
--   Feature**: This report is available for testing purposes only. It may
--   be changed before final release.
--   
--   <i>See:</i> <a>clusterMetrics</a> smart constructor.
data ClusterMetrics

-- | Creates a value of <a>ClusterMetrics</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cmYarnMetrics</a></li>
--   <li><a>cmHdfsMetrics</a></li>
--   </ul>
clusterMetrics :: ClusterMetrics

-- | The YARN metrics.
cmYarnMetrics :: Lens' ClusterMetrics (Maybe ClusterMetricsYarnMetrics)

-- | The HDFS metrics.
cmHdfsMetrics :: Lens' ClusterMetrics (Maybe ClusterMetricsHdfsMetrics)

-- | This resource represents a long-running operation that is the result
--   of a network API call.
--   
--   <i>See:</i> <a>operation</a> smart constructor.
data Operation

-- | Creates a value of <a>Operation</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>oDone</a></li>
--   <li><a>oError</a></li>
--   <li><a>oResponse</a></li>
--   <li><a>oName</a></li>
--   <li><a>oMetadata</a></li>
--   </ul>
operation :: Operation

-- | 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.
oDone :: Lens' Operation (Maybe Bool)

-- | The error result of the operation in case of failure or cancellation.
oError :: Lens' Operation (Maybe Status)

-- | 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`.
oResponse :: Lens' Operation (Maybe OperationResponse)

-- | 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 have the format of `operations/some/unique/name`.
oName :: Lens' Operation (Maybe Text)

-- | 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.
oMetadata :: Lens' Operation (Maybe OperationSchema)

-- | 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 `{}`.
--   
--   <i>See:</i> <a>empty</a> smart constructor.
data Empty

-- | Creates a value of <a>Empty</a> with the minimum fields required to
--   make a request.
empty :: Empty

-- | A Cloud Dataproc job for running <a>Apache Hive</a> queries on YARN.
--   
--   <i>See:</i> <a>hiveJob</a> smart constructor.
data HiveJob

-- | Creates a value of <a>HiveJob</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>hjQueryFileURI</a></li>
--   <li><a>hjJarFileURIs</a></li>
--   <li><a>hjScriptVariables</a></li>
--   <li><a>hjQueryList</a></li>
--   <li><a>hjContinueOnFailure</a></li>
--   <li><a>hjProperties</a></li>
--   </ul>
hiveJob :: HiveJob

-- | The HCFS URI of the script that contains Hive queries.
hjQueryFileURI :: Lens' HiveJob (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
hjJarFileURIs :: Lens' HiveJob [Text]

-- | <ul>
--   <li><i>Optional</i> Mapping of query variable names to values
--   (equivalent to the Hive command: `SET name="value";`).</li>
--   </ul>
hjScriptVariables :: Lens' HiveJob (Maybe HiveJobScriptVariables)

-- | A list of queries.
hjQueryList :: Lens' HiveJob (Maybe QueryList)

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
hjContinueOnFailure :: Lens' HiveJob (Maybe Bool)

-- | <ul>
--   <li><i>Optional</i> A mapping of property names and values, used to
--   configure Hive. Properties that conflict with values set by the Cloud
--   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.</li>
--   </ul>
hjProperties :: Lens' HiveJob (Maybe HiveJobProperties)

-- | <ul>
--   <li><i>Optional</i> Mapping of query variable names to values
--   (equivalent to the Spark SQL command: SET `name="value";`).</li>
--   </ul>
--   
--   <i>See:</i> <a>sparkSQLJobScriptVariables</a> smart constructor.
data SparkSQLJobScriptVariables

-- | Creates a value of <a>SparkSQLJobScriptVariables</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ssqljsvAddtional</a></li>
--   </ul>
sparkSQLJobScriptVariables :: HashMap Text Text -> SparkSQLJobScriptVariables
ssqljsvAddtional :: Lens' SparkSQLJobScriptVariables (HashMap Text Text)

-- | <ul>
--   <li><i>Optional</i> A mapping of property names to values, used to
--   configure Pig. Properties that conflict with values set by the Cloud
--   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.</li>
--   </ul>
--   
--   <i>See:</i> <a>pigJobProperties</a> smart constructor.
data PigJobProperties

-- | Creates a value of <a>PigJobProperties</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pjpAddtional</a></li>
--   </ul>
pigJobProperties :: HashMap Text Text -> PigJobProperties
pjpAddtional :: Lens' PigJobProperties (HashMap Text Text)

-- | The cluster config.
--   
--   <i>See:</i> <a>clusterConfig</a> smart constructor.
data ClusterConfig

-- | Creates a value of <a>ClusterConfig</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ccWorkerConfig</a></li>
--   <li><a>ccInitializationActions</a></li>
--   <li><a>ccMasterConfig</a></li>
--   <li><a>ccGceClusterConfig</a></li>
--   <li><a>ccConfigBucket</a></li>
--   <li><a>ccSoftwareConfig</a></li>
--   <li><a>ccSecondaryWorkerConfig</a></li>
--   </ul>
clusterConfig :: ClusterConfig

-- | <ul>
--   <li><i>Optional</i> The Google Compute Engine config settings for
--   worker instances in a cluster.</li>
--   </ul>
ccWorkerConfig :: Lens' ClusterConfig (Maybe InstanceGroupConfig)

-- | <ul>
--   <li><i>Optional</i> Commands to execute on each node after config is
--   completed. By default, executables are run on master and all worker
--   nodes. You can test a node's role metadata to run an executable on a
--   master or worker node, as shown below using `curl` (you can also use
--   `wget`): ROLE=$(curl -H Metadata-Flavor:Google
--   http://metadata/computeMetadata/v1/instance/attributes/dataproc-role)
--   if [[ "${ROLE}" == 'Master' ]]; then ... master specific actions ...
--   else ... worker specific actions ... fi</li>
--   </ul>
ccInitializationActions :: Lens' ClusterConfig [NodeInitializationAction]

-- | <ul>
--   <li><i>Optional</i> The Google Compute Engine config settings for the
--   master instance in a cluster.</li>
--   </ul>
ccMasterConfig :: Lens' ClusterConfig (Maybe InstanceGroupConfig)

-- | <ul>
--   <li><i>Required</i> The shared Google Compute Engine config settings
--   for all instances in a cluster.</li>
--   </ul>
ccGceClusterConfig :: Lens' ClusterConfig (Maybe GceClusterConfig)

-- | <ul>
--   <li><i>Optional</i> A Google Cloud Storage staging bucket used for
--   sharing generated SSH keys and config. If you do not specify a staging
--   bucket, Cloud Dataproc will determine an appropriate Cloud Storage
--   location (US, ASIA, or EU) for your cluster's staging bucket according
--   to the Google Compute Engine zone where your cluster is deployed, and
--   then it will create and manage this project-level, per-location bucket
--   for you.</li>
--   </ul>
ccConfigBucket :: Lens' ClusterConfig (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> The config settings for software inside the
--   cluster.</li>
--   </ul>
ccSoftwareConfig :: Lens' ClusterConfig (Maybe SoftwareConfig)

-- | <ul>
--   <li><i>Optional</i> The Google Compute Engine config settings for
--   additional worker instances in a cluster.</li>
--   </ul>
ccSecondaryWorkerConfig :: Lens' ClusterConfig (Maybe InstanceGroupConfig)

-- | <ul>
--   <li><i>Optional</i> A mapping of property names to values, used to
--   configure Hadoop. Properties that conflict with values set by the
--   Cloud Dataproc API may be overwritten. Can include properties set in
--   /etc/hadoop/conf/*-site and classes in user code.</li>
--   </ul>
--   
--   <i>See:</i> <a>hadoopJobProperties</a> smart constructor.
data HadoopJobProperties

-- | Creates a value of <a>HadoopJobProperties</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>hjpAddtional</a></li>
--   </ul>
hadoopJobProperties :: HashMap Text Text -> HadoopJobProperties
hjpAddtional :: Lens' HadoopJobProperties (HashMap Text Text)

-- | The status of the operation.
--   
--   <i>See:</i> <a>clusterOperationStatus</a> smart constructor.
data ClusterOperationStatus

-- | Creates a value of <a>ClusterOperationStatus</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cosState</a></li>
--   <li><a>cosInnerState</a></li>
--   <li><a>cosStateStartTime</a></li>
--   <li><a>cosDetails</a></li>
--   </ul>
clusterOperationStatus :: ClusterOperationStatus

-- | <ul>
--   <li><i>Output-only</i> A message containing the operation state.</li>
--   </ul>
cosState :: Lens' ClusterOperationStatus (Maybe Text)

-- | <ul>
--   <li><i>Output-only</i> A message containing the detailed operation
--   state.</li>
--   </ul>
cosInnerState :: Lens' ClusterOperationStatus (Maybe Text)

-- | <ul>
--   <li><i>Output-only</i> The time this state was entered.</li>
--   </ul>
cosStateStartTime :: Lens' ClusterOperationStatus (Maybe Text)

-- | <ul>
--   <li><i>Output-only</i> A message containing any operation metadata
--   details.</li>
--   </ul>
cosDetails :: Lens' ClusterOperationStatus (Maybe Text)
data StatusDetailsItem

-- | Creates a value of <a>StatusDetailsItem</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sdiAddtional</a></li>
--   </ul>
statusDetailsItem :: HashMap Text JSONValue -> StatusDetailsItem

-- | Properties of the object. Contains field 'type with type URL.
sdiAddtional :: Lens' StatusDetailsItem (HashMap Text JSONValue)

-- | <ul>
--   <li><i>Optional</i> A mapping of property names to values, used to
--   configure Spark SQL's SparkConf. Properties that conflict with values
--   set by the Cloud Dataproc API may be overwritten.</li>
--   </ul>
--   
--   <i>See:</i> <a>sparkSQLJobProperties</a> smart constructor.
data SparkSQLJobProperties

-- | Creates a value of <a>SparkSQLJobProperties</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ssqljpAddtional</a></li>
--   </ul>
sparkSQLJobProperties :: HashMap Text Text -> SparkSQLJobProperties
ssqljpAddtional :: Lens' SparkSQLJobProperties (HashMap Text Text)

-- | Specifies an executable to run on a fully configured node and a
--   timeout period for executable completion.
--   
--   <i>See:</i> <a>nodeInitializationAction</a> smart constructor.
data NodeInitializationAction

-- | Creates a value of <a>NodeInitializationAction</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>niaExecutionTimeout</a></li>
--   <li><a>niaExecutableFile</a></li>
--   </ul>
nodeInitializationAction :: NodeInitializationAction

-- | <ul>
--   <li><i>Optional</i> Amount of time executable has to complete. Default
--   is 10 minutes. 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.</li>
--   </ul>
niaExecutionTimeout :: Lens' NodeInitializationAction (Maybe Text)

-- | <ul>
--   <li><i>Required</i> Google Cloud Storage URI of executable file.</li>
--   </ul>
niaExecutableFile :: Lens' NodeInitializationAction (Maybe Text)

-- | The YARN metrics.
--   
--   <i>See:</i> <a>clusterMetricsYarnMetrics</a> smart constructor.
data ClusterMetricsYarnMetrics

-- | Creates a value of <a>ClusterMetricsYarnMetrics</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cmymAddtional</a></li>
--   </ul>
clusterMetricsYarnMetrics :: HashMap Text Int64 -> ClusterMetricsYarnMetrics
cmymAddtional :: Lens' ClusterMetricsYarnMetrics (HashMap Text Int64)

-- | Cloud Dataproc job config.
--   
--   <i>See:</i> <a>jobPlacement</a> smart constructor.
data JobPlacement

-- | Creates a value of <a>JobPlacement</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jpClusterUuid</a></li>
--   <li><a>jpClusterName</a></li>
--   </ul>
jobPlacement :: JobPlacement

-- | <ul>
--   <li><i>Output-only</i> A cluster UUID generated by the Cloud Dataproc
--   service when the job is submitted.</li>
--   </ul>
jpClusterUuid :: Lens' JobPlacement (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The name of the cluster where the job will be
--   submitted.</li>
--   </ul>
jpClusterName :: Lens' JobPlacement (Maybe Text)

-- | Common config settings for resources of Google Compute Engine cluster
--   instances, applicable to all instances in the cluster.
--   
--   <i>See:</i> <a>gceClusterConfig</a> smart constructor.
data GceClusterConfig

-- | Creates a value of <a>GceClusterConfig</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gccSubnetworkURI</a></li>
--   <li><a>gccInternalIPOnly</a></li>
--   <li><a>gccNetworkURI</a></li>
--   <li><a>gccZoneURI</a></li>
--   <li><a>gccMetadata</a></li>
--   <li><a>gccServiceAccountScopes</a></li>
--   <li><a>gccTags</a></li>
--   </ul>
gceClusterConfig :: GceClusterConfig

-- | <ul>
--   <li><i>Optional</i> The Google Compute Engine subnetwork to be used
--   for machine communications. Cannot be specified with network_uri.
--   Example:
--   `https://www.googleapis.com/compute/v1/projects/[project_id]/regions/us-east1/sub0`.</li>
--   </ul>
gccSubnetworkURI :: Lens' GceClusterConfig (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
gccInternalIPOnly :: Lens' GceClusterConfig (Maybe Bool)

-- | <ul>
--   <li><i>Optional</i> The Google 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 "default"
--   network of the project is used, if it exists. Cannot be a "Custom
--   Subnet Network" (see <a>Using Subnetworks</a> for more information).
--   Example:
--   `https://www.googleapis.com/compute/v1/projects/[project_id]/regions/global/default`.</li>
--   </ul>
gccNetworkURI :: Lens' GceClusterConfig (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The zone where the Google Compute Engine cluster
--   will be located. Example:
--   `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/[zone]`.</li>
--   </ul>
gccZoneURI :: Lens' GceClusterConfig (Maybe Text)

-- | The Google Compute Engine metadata entries to add to all instances
--   (see <a>Project and instance metadata</a>).
gccMetadata :: Lens' GceClusterConfig (Maybe GceClusterConfigMetadata)

-- | <ul>
--   <li><i>Optional</i> The URIs of service account scopes to be included
--   in Google Compute Engine instances. The following base set of scopes
--   is always included: *
--   https://www.googleapis.com/auth/cloud.useraccounts.readonly *
--   https://www.googleapis.com/auth/devstorage.read_write *
--   https://www.googleapis.com/auth/logging.write If no scopes are
--   specified, the following defaults are also provided: *
--   https://www.googleapis.com/auth/bigquery *
--   https://www.googleapis.com/auth/bigtable.admin.table *
--   https://www.googleapis.com/auth/bigtable.data *
--   https://www.googleapis.com/auth/devstorage.full_control</li>
--   </ul>
gccServiceAccountScopes :: Lens' GceClusterConfig [Text]

-- | The Google Compute Engine tags to add to all instances (see <a>Tagging
--   instances</a>).
gccTags :: Lens' GceClusterConfig [Text]

-- | The status of the operation.
--   
--   <i>See:</i> <a>operationStatus</a> smart constructor.
data OperationStatus

-- | Creates a value of <a>OperationStatus</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>osState</a></li>
--   <li><a>osInnerState</a></li>
--   <li><a>osStateStartTime</a></li>
--   <li><a>osDetails</a></li>
--   </ul>
operationStatus :: OperationStatus

-- | A message containing the operation state.
osState :: Lens' OperationStatus (Maybe Text)

-- | A message containing the detailed operation state.
osInnerState :: Lens' OperationStatus (Maybe Text)

-- | The time this state was entered.
osStateStartTime :: Lens' OperationStatus (Maybe Text)

-- | A message containing any operation metadata details.
osDetails :: Lens' OperationStatus (Maybe Text)

-- | The Google Compute Engine metadata entries to add to all instances
--   (see <a>Project and instance metadata</a>).
--   
--   <i>See:</i> <a>gceClusterConfigMetadata</a> smart constructor.
data GceClusterConfigMetadata

-- | Creates a value of <a>GceClusterConfigMetadata</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gccmAddtional</a></li>
--   </ul>
gceClusterConfigMetadata :: HashMap Text Text -> GceClusterConfigMetadata
gccmAddtional :: Lens' GceClusterConfigMetadata (HashMap Text Text)

-- | <ul>
--   <li><i>Optional</i> A mapping of property names and values, used to
--   configure Hive. Properties that conflict with values set by the Cloud
--   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.</li>
--   </ul>
--   
--   <i>See:</i> <a>hiveJobProperties</a> smart constructor.
data HiveJobProperties

-- | Creates a value of <a>HiveJobProperties</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>hAddtional</a></li>
--   </ul>
hiveJobProperties :: HashMap Text Text -> HiveJobProperties
hAddtional :: Lens' HiveJobProperties (HashMap Text Text)

-- | The location where output from diagnostic command can be found.
--   
--   <i>See:</i> <a>diagnoseClusterOutputLocation</a> smart constructor.
data DiagnoseClusterOutputLocation

-- | Creates a value of <a>DiagnoseClusterOutputLocation</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dcolOutputURI</a></li>
--   </ul>
diagnoseClusterOutputLocation :: DiagnoseClusterOutputLocation

-- | <ul>
--   <li><i>Output-only</i> The Google Cloud Storage URI of the diagnostic
--   output. This will be a plain text file with summary of collected
--   diagnostics.</li>
--   </ul>
dcolOutputURI :: Lens' DiagnoseClusterOutputLocation (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> The labels to associate with this cluster. Label
--   **keys** must contain 1 to 63 characters, and must conform to <a>RFC
--   1035</a>. Label **values** may be empty, but, if present, must contain
--   1 to 63 characters, and must conform to <a>RFC 1035</a>. No more than
--   32 labels can be associated with a cluster.</li>
--   </ul>
--   
--   <i>See:</i> <a>clusterLabels</a> smart constructor.
data ClusterLabels

-- | Creates a value of <a>ClusterLabels</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>clAddtional</a></li>
--   </ul>
clusterLabels :: HashMap Text Text -> ClusterLabels
clAddtional :: Lens' ClusterLabels (HashMap Text Text)

-- | A Cloud Dataproc job resource.
--   
--   <i>See:</i> <a>job</a> smart constructor.
data Job

-- | Creates a value of <a>Job</a> with the minimum fields required to make
--   a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jSparkJob</a></li>
--   <li><a>jStatus</a></li>
--   <li><a>jDriverControlFilesURI</a></li>
--   <li><a>jHiveJob</a></li>
--   <li><a>jReference</a></li>
--   <li><a>jSparkSQLJob</a></li>
--   <li><a>jHadoopJob</a></li>
--   <li><a>jYarnApplications</a></li>
--   <li><a>jLabels</a></li>
--   <li><a>jPysparkJob</a></li>
--   <li><a>jDriverOutputResourceURI</a></li>
--   <li><a>jStatusHistory</a></li>
--   <li><a>jPlacement</a></li>
--   <li><a>jPigJob</a></li>
--   </ul>
job :: Job

-- | Job is a Spark job.
jSparkJob :: Lens' Job (Maybe SparkJob)

-- | <ul>
--   <li><i>Output-only</i> The job status. Additional application-specific
--   status information may be contained in the type_job and
--   yarn_applications fields.</li>
--   </ul>
jStatus :: Lens' Job (Maybe JobStatus)

-- | <ul>
--   <li><i>Output-only</i> If present, the location of miscellaneous
--   control files which may be used as part of job setup and handling. If
--   not present, control files may be placed in the same location as
--   `driver_output_uri`.</li>
--   </ul>
jDriverControlFilesURI :: Lens' Job (Maybe Text)

-- | Job is a Hive job.
jHiveJob :: Lens' Job (Maybe HiveJob)

-- | <ul>
--   <li><i>Optional</i> The fully qualified reference to the job, which
--   can be used to obtain the equivalent REST path of the job resource. If
--   this property is not specified when a job is created, the server
--   generates a job_id.</li>
--   </ul>
jReference :: Lens' Job (Maybe JobReference)

-- | Job is a SparkSql job.
jSparkSQLJob :: Lens' Job (Maybe SparkSQLJob)

-- | Job is a Hadoop job.
jHadoopJob :: Lens' Job (Maybe HadoopJob)

-- | <ul>
--   <li><i>Output-only</i> The collection of YARN applications spun up by
--   this job. **Beta** Feature: This report is available for testing
--   purposes only. It may be changed before final release.</li>
--   </ul>
jYarnApplications :: Lens' Job [YarnApplication]

-- | <ul>
--   <li><i>Optional</i> The labels to associate with this job. Label
--   **keys** must contain 1 to 63 characters, and must conform to <a>RFC
--   1035</a>. Label **values** may be empty, but, if present, must contain
--   1 to 63 characters, and must conform to <a>RFC 1035</a>. No more than
--   32 labels can be associated with a job.</li>
--   </ul>
jLabels :: Lens' Job (Maybe JobLabels)

-- | Job is a Pyspark job.
jPysparkJob :: Lens' Job (Maybe PySparkJob)

-- | <ul>
--   <li><i>Output-only</i> A URI pointing to the location of the stdout of
--   the job's driver program.</li>
--   </ul>
jDriverOutputResourceURI :: Lens' Job (Maybe Text)

-- | <ul>
--   <li><i>Output-only</i> The previous job status.</li>
--   </ul>
jStatusHistory :: Lens' Job [JobStatus]

-- | <ul>
--   <li><i>Required</i> Job information, including how, when, and where to
--   run the job.</li>
--   </ul>
jPlacement :: Lens' Job (Maybe JobPlacement)

-- | Job is a Pig job.
jPigJob :: Lens' Job (Maybe PigJob)

-- | A request to collect cluster diagnostic information.
--   
--   <i>See:</i> <a>diagnoseClusterRequest</a> smart constructor.
data DiagnoseClusterRequest

-- | Creates a value of <a>DiagnoseClusterRequest</a> with the minimum
--   fields required to make a request.
diagnoseClusterRequest :: DiagnoseClusterRequest

-- | A Cloud Dataproc job for running <a>Apache Hadoop MapReduce</a> jobs
--   on <a>Apache Hadoop YARN</a>.
--   
--   <i>See:</i> <a>hadoopJob</a> smart constructor.
data HadoopJob

-- | Creates a value of <a>HadoopJob</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>hArgs</a></li>
--   <li><a>hMainJarFileURI</a></li>
--   <li><a>hJarFileURIs</a></li>
--   <li><a>hFileURIs</a></li>
--   <li><a>hArchiveURIs</a></li>
--   <li><a>hMainClass</a></li>
--   <li><a>hLoggingConfig</a></li>
--   <li><a>hProperties</a></li>
--   </ul>
hadoopJob :: HadoopJob

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
hArgs :: Lens' HadoopJob [Text]

-- | The HCFS URI of the jar file containing the main class. Examples:
--   'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar'
--   'hdfs:/tmp/test-samples/custom-wordcount.jar'
--   'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'
hMainJarFileURI :: Lens' HadoopJob (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> Jar file URIs to add to the CLASSPATHs of the
--   Hadoop driver and tasks.</li>
--   </ul>
hJarFileURIs :: Lens' HadoopJob [Text]

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
hFileURIs :: Lens' HadoopJob [Text]

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
hArchiveURIs :: Lens' HadoopJob [Text]

-- | The name of the driver's main class. The jar file containing the class
--   must be in the default CLASSPATH or specified in `jar_file_uris`.
hMainClass :: Lens' HadoopJob (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> The runtime log config for job execution.</li>
--   </ul>
hLoggingConfig :: Lens' HadoopJob (Maybe LoggingConfig)

-- | <ul>
--   <li><i>Optional</i> A mapping of property names to values, used to
--   configure Hadoop. Properties that conflict with values set by the
--   Cloud Dataproc API may be overwritten. Can include properties set in
--   /etc/hadoop/conf/*-site and classes in user code.</li>
--   </ul>
hProperties :: Lens' HadoopJob (Maybe HadoopJobProperties)

-- | Metadata describing the operation.
--   
--   <i>See:</i> <a>clusterOperationMetadata</a> smart constructor.
data ClusterOperationMetadata

-- | Creates a value of <a>ClusterOperationMetadata</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>comStatus</a></li>
--   <li><a>comClusterUuid</a></li>
--   <li><a>comClusterName</a></li>
--   <li><a>comLabels</a></li>
--   <li><a>comOperationType</a></li>
--   <li><a>comStatusHistory</a></li>
--   <li><a>comDescription</a></li>
--   </ul>
clusterOperationMetadata :: ClusterOperationMetadata

-- | <ul>
--   <li><i>Output-only</i> Current operation status.</li>
--   </ul>
comStatus :: Lens' ClusterOperationMetadata (Maybe ClusterOperationStatus)

-- | <ul>
--   <li><i>Output-only</i> Cluster UUID for the operation.</li>
--   </ul>
comClusterUuid :: Lens' ClusterOperationMetadata (Maybe Text)

-- | <ul>
--   <li><i>Output-only</i> Name of the cluster for the operation.</li>
--   </ul>
comClusterName :: Lens' ClusterOperationMetadata (Maybe Text)

-- | <ul>
--   <li><i>Output-only</i> labels associated with the operation</li>
--   </ul>
comLabels :: Lens' ClusterOperationMetadata (Maybe ClusterOperationMetadataLabels)

-- | <ul>
--   <li><i>Output-only</i> The operation type.</li>
--   </ul>
comOperationType :: Lens' ClusterOperationMetadata (Maybe Text)

-- | <ul>
--   <li><i>Output-only</i> The previous operation status.</li>
--   </ul>
comStatusHistory :: Lens' ClusterOperationMetadata [ClusterOperationStatus]

-- | <ul>
--   <li><i>Output-only</i> Short description of operation.</li>
--   </ul>
comDescription :: Lens' ClusterOperationMetadata (Maybe Text)

-- | A Cloud Dataproc job for running <a>Apache Spark SQL</a> queries.
--   
--   <i>See:</i> <a>sparkSQLJob</a> smart constructor.
data SparkSQLJob

-- | Creates a value of <a>SparkSQLJob</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ssqljQueryFileURI</a></li>
--   <li><a>ssqljJarFileURIs</a></li>
--   <li><a>ssqljScriptVariables</a></li>
--   <li><a>ssqljQueryList</a></li>
--   <li><a>ssqljLoggingConfig</a></li>
--   <li><a>ssqljProperties</a></li>
--   </ul>
sparkSQLJob :: SparkSQLJob

-- | The HCFS URI of the script that contains SQL queries.
ssqljQueryFileURI :: Lens' SparkSQLJob (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> HCFS URIs of jar files to be added to the Spark
--   CLASSPATH.</li>
--   </ul>
ssqljJarFileURIs :: Lens' SparkSQLJob [Text]

-- | <ul>
--   <li><i>Optional</i> Mapping of query variable names to values
--   (equivalent to the Spark SQL command: SET `name="value";`).</li>
--   </ul>
ssqljScriptVariables :: Lens' SparkSQLJob (Maybe SparkSQLJobScriptVariables)

-- | A list of queries.
ssqljQueryList :: Lens' SparkSQLJob (Maybe QueryList)

-- | <ul>
--   <li><i>Optional</i> The runtime log config for job execution.</li>
--   </ul>
ssqljLoggingConfig :: Lens' SparkSQLJob (Maybe LoggingConfig)

-- | <ul>
--   <li><i>Optional</i> A mapping of property names to values, used to
--   configure Spark SQL's SparkConf. Properties that conflict with values
--   set by the Cloud Dataproc API may be overwritten.</li>
--   </ul>
ssqljProperties :: Lens' SparkSQLJob (Maybe SparkSQLJobProperties)

-- | Specifies the selection and config of software inside the cluster.
--   
--   <i>See:</i> <a>softwareConfig</a> smart constructor.
data SoftwareConfig

-- | Creates a value of <a>SoftwareConfig</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>scImageVersion</a></li>
--   <li><a>scProperties</a></li>
--   </ul>
softwareConfig :: SoftwareConfig

-- | <ul>
--   <li><i>Optional</i> The version of software inside the cluster. It
--   must match the regular expression `[0-9]+\.[0-9]+`. If unspecified, it
--   defaults to the latest version (see <a>Cloud Dataproc
--   Versioning</a>).</li>
--   </ul>
scImageVersion :: Lens' SoftwareConfig (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> The properties to set on daemon config files.
--   Property keys are specified in `prefix:property` format, such as
--   `core:fs.defaultFS`. The following are supported prefixes and their
--   mappings: * core: `core-site.xml` * hdfs: `hdfs-site.xml` * mapred:
--   `mapred-site.xml` * yarn: `yarn-site.xml` * hive: `hive-site.xml` *
--   pig: `pig.properties` * spark: `spark-defaults.conf`</li>
--   </ul>
scProperties :: Lens' SoftwareConfig (Maybe SoftwareConfigProperties)

-- | A list of jobs in a project.
--   
--   <i>See:</i> <a>listJobsResponse</a> smart constructor.
data ListJobsResponse

-- | Creates a value of <a>ListJobsResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ljrNextPageToken</a></li>
--   <li><a>ljrJobs</a></li>
--   </ul>
listJobsResponse :: ListJobsResponse

-- | <ul>
--   <li><i>Optional</i> 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 ListJobsRequest.</li>
--   </ul>
ljrNextPageToken :: Lens' ListJobsResponse (Maybe Text)

-- | <ul>
--   <li><i>Output-only</i> Jobs list.</li>
--   </ul>
ljrJobs :: Lens' ListJobsResponse [Job]

-- | <ul>
--   <li><i>Optional</i> A mapping of property names to values, used to
--   configure Spark. Properties that conflict with values set by the Cloud
--   Dataproc API may be overwritten. Can include properties set in
--   /etc/spark/conf/spark-defaults.conf and classes in user code.</li>
--   </ul>
--   
--   <i>See:</i> <a>sparkJobProperties</a> smart constructor.
data SparkJobProperties

-- | Creates a value of <a>SparkJobProperties</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sjpAddtional</a></li>
--   </ul>
sparkJobProperties :: HashMap Text Text -> SparkJobProperties
sjpAddtional :: Lens' SparkJobProperties (HashMap Text Text)

-- | A Cloud Dataproc job for running <a>Apache PySpark</a> applications on
--   YARN.
--   
--   <i>See:</i> <a>pySparkJob</a> smart constructor.
data PySparkJob

-- | Creates a value of <a>PySparkJob</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>psjPythonFileURIs</a></li>
--   <li><a>psjMainPythonFileURI</a></li>
--   <li><a>psjArgs</a></li>
--   <li><a>psjJarFileURIs</a></li>
--   <li><a>psjFileURIs</a></li>
--   <li><a>psjArchiveURIs</a></li>
--   <li><a>psjLoggingConfig</a></li>
--   <li><a>psjProperties</a></li>
--   </ul>
pySparkJob :: PySparkJob

-- | <ul>
--   <li><i>Optional</i> HCFS file URIs of Python files to pass to the
--   PySpark framework. Supported file types: .py, .egg, and .zip.</li>
--   </ul>
psjPythonFileURIs :: Lens' PySparkJob [Text]

-- | <ul>
--   <li><i>Required</i> The HCFS URI of the main Python file to use as the
--   driver. Must be a .py file.</li>
--   </ul>
psjMainPythonFileURI :: Lens' PySparkJob (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
psjArgs :: Lens' PySparkJob [Text]

-- | <ul>
--   <li><i>Optional</i> HCFS URIs of jar files to add to the CLASSPATHs of
--   the Python driver and tasks.</li>
--   </ul>
psjJarFileURIs :: Lens' PySparkJob [Text]

-- | <ul>
--   <li><i>Optional</i> HCFS URIs of files to be copied to the working
--   directory of Python drivers and distributed tasks. Useful for naively
--   parallel tasks.</li>
--   </ul>
psjFileURIs :: Lens' PySparkJob [Text]

-- | <ul>
--   <li><i>Optional</i> HCFS URIs of archives to be extracted in the
--   working directory of .jar, .tar, .tar.gz, .tgz, and .zip.</li>
--   </ul>
psjArchiveURIs :: Lens' PySparkJob [Text]

-- | <ul>
--   <li><i>Optional</i> The runtime log config for job execution.</li>
--   </ul>
psjLoggingConfig :: Lens' PySparkJob (Maybe LoggingConfig)

-- | <ul>
--   <li><i>Optional</i> A mapping of property names to values, used to
--   configure PySpark. Properties that conflict with values set by the
--   Cloud Dataproc API may be overwritten. Can include properties set in
--   /etc/spark/conf/spark-defaults.conf and classes in user code.</li>
--   </ul>
psjProperties :: Lens' PySparkJob (Maybe PySparkJobProperties)

-- | Specifies the resources used to actively manage an instance group.
--   
--   <i>See:</i> <a>managedGroupConfig</a> smart constructor.
data ManagedGroupConfig

-- | Creates a value of <a>ManagedGroupConfig</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mgcInstanceTemplateName</a></li>
--   <li><a>mgcInstanceGroupManagerName</a></li>
--   </ul>
managedGroupConfig :: ManagedGroupConfig

-- | <ul>
--   <li><i>Output-only</i> The name of the Instance Template used for the
--   Managed Instance Group.</li>
--   </ul>
mgcInstanceTemplateName :: Lens' ManagedGroupConfig (Maybe Text)

-- | <ul>
--   <li><i>Output-only</i> The name of the Instance Group Manager for this
--   group.</li>
--   </ul>
mgcInstanceGroupManagerName :: Lens' ManagedGroupConfig (Maybe Text)

-- | The list of all clusters in a project.
--   
--   <i>See:</i> <a>listClustersResponse</a> smart constructor.
data ListClustersResponse

-- | Creates a value of <a>ListClustersResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lcrNextPageToken</a></li>
--   <li><a>lcrClusters</a></li>
--   </ul>
listClustersResponse :: ListClustersResponse

-- | <ul>
--   <li><i>Output-only</i> 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 ListClustersRequest.</li>
--   </ul>
lcrNextPageToken :: Lens' ListClustersResponse (Maybe Text)

-- | <ul>
--   <li><i>Output-only</i> The clusters in the project.</li>
--   </ul>
lcrClusters :: Lens' ListClustersResponse [Cluster]

-- | A request to cancel a job.
--   
--   <i>See:</i> <a>cancelJobRequest</a> smart constructor.
data CancelJobRequest

-- | Creates a value of <a>CancelJobRequest</a> with the minimum fields
--   required to make a request.
cancelJobRequest :: CancelJobRequest

-- | A list of queries to run on a cluster.
--   
--   <i>See:</i> <a>queryList</a> smart constructor.
data QueryList

-- | Creates a value of <a>QueryList</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>qlQueries</a></li>
--   </ul>
queryList :: QueryList

-- | <ul>
--   <li><i>Required</i> The queries to execute. You do not need to
--   terminate a query with a semicolon. Multiple queries can be specified
--   in one string by separating each with a semicolon. Here is an example
--   of an Cloud Dataproc API snippet that uses a QueryList to specify a
--   HiveJob: "hiveJob": { "queryList": { "queries": [ "query1", "query2",
--   "query3;query4", ] } }</li>
--   </ul>
qlQueries :: Lens' QueryList [Text]

-- | Metadata describing the operation.
--   
--   <i>See:</i> <a>operationMetadata</a> smart constructor.
data OperationMetadata

-- | Creates a value of <a>OperationMetadata</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>omStatus</a></li>
--   <li><a>omState</a></li>
--   <li><a>omClusterUuid</a></li>
--   <li><a>omInsertTime</a></li>
--   <li><a>omStartTime</a></li>
--   <li><a>omInnerState</a></li>
--   <li><a>omEndTime</a></li>
--   <li><a>omDetails</a></li>
--   <li><a>omClusterName</a></li>
--   <li><a>omOperationType</a></li>
--   <li><a>omStatusHistory</a></li>
--   <li><a>omDescription</a></li>
--   </ul>
operationMetadata :: OperationMetadata

-- | <ul>
--   <li><i>Output-only</i> Current operation status.</li>
--   </ul>
omStatus :: Lens' OperationMetadata (Maybe OperationStatus)

-- | A message containing the operation state.
omState :: Lens' OperationMetadata (Maybe Text)

-- | Cluster UUId for the operation.
omClusterUuid :: Lens' OperationMetadata (Maybe Text)

-- | The time that the operation was requested.
omInsertTime :: Lens' OperationMetadata (Maybe Text)

-- | The time that the operation was started by the server.
omStartTime :: Lens' OperationMetadata (Maybe Text)

-- | A message containing the detailed operation state.
omInnerState :: Lens' OperationMetadata (Maybe Text)

-- | The time that the operation completed.
omEndTime :: Lens' OperationMetadata (Maybe Text)

-- | A message containing any operation metadata details.
omDetails :: Lens' OperationMetadata (Maybe Text)

-- | Name of the cluster for the operation.
omClusterName :: Lens' OperationMetadata (Maybe Text)

-- | <ul>
--   <li><i>Output-only</i> The operation type.</li>
--   </ul>
omOperationType :: Lens' OperationMetadata (Maybe Text)

-- | <ul>
--   <li><i>Output-only</i> Previous operation status.</li>
--   </ul>
omStatusHistory :: Lens' OperationMetadata [OperationStatus]

-- | <ul>
--   <li><i>Output-only</i> Short description of operation.</li>
--   </ul>
omDescription :: Lens' OperationMetadata (Maybe Text)

-- | Cloud Dataproc job status.
--   
--   <i>See:</i> <a>jobStatus</a> smart constructor.
data JobStatus

-- | Creates a value of <a>JobStatus</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jsState</a></li>
--   <li><a>jsStateStartTime</a></li>
--   <li><a>jsDetails</a></li>
--   </ul>
jobStatus :: JobStatus

-- | <ul>
--   <li><i>Output-only</i> A state message specifying the overall job
--   state.</li>
--   </ul>
jsState :: Lens' JobStatus (Maybe Text)

-- | <ul>
--   <li><i>Output-only</i> The time when this state was entered.</li>
--   </ul>
jsStateStartTime :: Lens' JobStatus (Maybe Text)

-- | <ul>
--   <li><i>Output-only</i> Optional job state details, such as an error
--   description if the state is ERROR.</li>
--   </ul>
jsDetails :: Lens' JobStatus (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> Mapping of query variable names to values
--   (equivalent to the Pig command: `name=[value]`).</li>
--   </ul>
--   
--   <i>See:</i> <a>pigJobScriptVariables</a> smart constructor.
data PigJobScriptVariables

-- | Creates a value of <a>PigJobScriptVariables</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pjsvAddtional</a></li>
--   </ul>
pigJobScriptVariables :: HashMap Text Text -> PigJobScriptVariables
pjsvAddtional :: Lens' PigJobScriptVariables (HashMap Text Text)

-- | The HDFS metrics.
--   
--   <i>See:</i> <a>clusterMetricsHdfsMetrics</a> smart constructor.
data ClusterMetricsHdfsMetrics

-- | Creates a value of <a>ClusterMetricsHdfsMetrics</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cmhmAddtional</a></li>
--   </ul>
clusterMetricsHdfsMetrics :: HashMap Text Int64 -> ClusterMetricsHdfsMetrics
cmhmAddtional :: Lens' ClusterMetricsHdfsMetrics (HashMap Text Int64)

-- | 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`.
--   
--   <i>See:</i> <a>operationResponse</a> smart constructor.
data OperationResponse

-- | Creates a value of <a>OperationResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>orAddtional</a></li>
--   </ul>
operationResponse :: HashMap Text JSONValue -> OperationResponse

-- | Properties of the object. Contains field 'type with type URL.
orAddtional :: Lens' OperationResponse (HashMap Text JSONValue)

-- | The per-package log levels for the driver. This may include "root"
--   package name to configure rootLogger. Examples: 'com.google = FATAL',
--   'root = INFO', 'org.apache = DEBUG'
--   
--   <i>See:</i> <a>loggingConfigDriverLogLevels</a> smart constructor.
data LoggingConfigDriverLogLevels

-- | Creates a value of <a>LoggingConfigDriverLogLevels</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lcdllAddtional</a></li>
--   </ul>
loggingConfigDriverLogLevels :: HashMap Text Text -> LoggingConfigDriverLogLevels
lcdllAddtional :: Lens' LoggingConfigDriverLogLevels (HashMap Text Text)

-- | The status of a cluster and its instances.
--   
--   <i>See:</i> <a>clusterStatus</a> smart constructor.
data ClusterStatus

-- | Creates a value of <a>ClusterStatus</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>csState</a></li>
--   <li><a>csStateStartTime</a></li>
--   <li><a>csDetail</a></li>
--   </ul>
clusterStatus :: ClusterStatus

-- | <ul>
--   <li><i>Output-only</i> The cluster's state.</li>
--   </ul>
csState :: Lens' ClusterStatus (Maybe Text)

-- | <ul>
--   <li><i>Output-only</i> Time when this state was entered.</li>
--   </ul>
csStateStartTime :: Lens' ClusterStatus (Maybe Text)

-- | <ul>
--   <li><i>Output-only</i> Optional details of cluster's state.</li>
--   </ul>
csDetail :: Lens' ClusterStatus (Maybe Text)

-- | A YARN application created by a job. Application information is a
--   subset of
--   org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto. **Beta
--   Feature**: This report is available for testing purposes only. It may
--   be changed before final release.
--   
--   <i>See:</i> <a>yarnApplication</a> smart constructor.
data YarnApplication

-- | Creates a value of <a>YarnApplication</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>yaTrackingURL</a></li>
--   <li><a>yaState</a></li>
--   <li><a>yaProgress</a></li>
--   <li><a>yaName</a></li>
--   </ul>
yarnApplication :: YarnApplication

-- | <ul>
--   <li><i>Optional</i> The HTTP URL of the ApplicationMaster,
--   HistoryServer, or TimelineServer that provides application-specific
--   information. The URL uses the internal hostname, and requires a proxy
--   server for resolution and, possibly, access.</li>
--   </ul>
yaTrackingURL :: Lens' YarnApplication (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The application state.</li>
--   </ul>
yaState :: Lens' YarnApplication (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The numerical progress of the application, from 1
--   to 100.</li>
--   </ul>
yaProgress :: Lens' YarnApplication (Maybe Double)

-- | <ul>
--   <li><i>Required</i> The application name.</li>
--   </ul>
yaName :: Lens' YarnApplication (Maybe Text)

-- | A Cloud Dataproc job for running <a>Apache Pig</a> queries on YARN.
--   
--   <i>See:</i> <a>pigJob</a> smart constructor.
data PigJob

-- | Creates a value of <a>PigJob</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pjQueryFileURI</a></li>
--   <li><a>pjJarFileURIs</a></li>
--   <li><a>pjScriptVariables</a></li>
--   <li><a>pjQueryList</a></li>
--   <li><a>pjContinueOnFailure</a></li>
--   <li><a>pjLoggingConfig</a></li>
--   <li><a>pjProperties</a></li>
--   </ul>
pigJob :: PigJob

-- | The HCFS URI of the script that contains the Pig queries.
pjQueryFileURI :: Lens' PigJob (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> HCFS URIs of jar files to add to the CLASSPATH of
--   the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig
--   UDFs.</li>
--   </ul>
pjJarFileURIs :: Lens' PigJob [Text]

-- | <ul>
--   <li><i>Optional</i> Mapping of query variable names to values
--   (equivalent to the Pig command: `name=[value]`).</li>
--   </ul>
pjScriptVariables :: Lens' PigJob (Maybe PigJobScriptVariables)

-- | A list of queries.
pjQueryList :: Lens' PigJob (Maybe QueryList)

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
pjContinueOnFailure :: Lens' PigJob (Maybe Bool)

-- | <ul>
--   <li><i>Optional</i> The runtime log config for job execution.</li>
--   </ul>
pjLoggingConfig :: Lens' PigJob (Maybe LoggingConfig)

-- | <ul>
--   <li><i>Optional</i> A mapping of property names to values, used to
--   configure Pig. Properties that conflict with values set by the Cloud
--   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.</li>
--   </ul>
pjProperties :: Lens' PigJob (Maybe PigJobProperties)

-- | The runtime logging config of the job.
--   
--   <i>See:</i> <a>loggingConfig</a> smart constructor.
data LoggingConfig

-- | Creates a value of <a>LoggingConfig</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lcDriverLogLevels</a></li>
--   </ul>
loggingConfig :: LoggingConfig

-- | The per-package log levels for the driver. This may include "root"
--   package name to configure rootLogger. Examples: 'com.google = FATAL',
--   'root = INFO', 'org.apache = DEBUG'
lcDriverLogLevels :: Lens' LoggingConfig (Maybe LoggingConfigDriverLogLevels)


-- | Creates a cluster in a project.
--   
--   <i>See:</i> <a>Google Cloud Dataproc API Reference</a> for
--   <tt>dataproc.projects.regions.clusters.create</tt>.
module Network.Google.Resource.Dataproc.Projects.Regions.Clusters.Create

-- | A resource alias for
--   <tt>dataproc.projects.regions.clusters.create</tt> method which the
--   <a>ProjectsRegionsClustersCreate</a> request conforms to.
type ProjectsRegionsClustersCreateResource = "v1" :> ("projects" :> (Capture "projectId" Text :> ("regions" :> (Capture "region" Text :> ("clusters" :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Cluster :> Post '[JSON] Operation))))))))))))))

-- | Creates a value of <a>ProjectsRegionsClustersCreate</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>prccXgafv</a></li>
--   <li><a>prccUploadProtocol</a></li>
--   <li><a>prccPp</a></li>
--   <li><a>prccAccessToken</a></li>
--   <li><a>prccUploadType</a></li>
--   <li><a>prccPayload</a></li>
--   <li><a>prccBearerToken</a></li>
--   <li><a>prccRegion</a></li>
--   <li><a>prccProjectId</a></li>
--   <li><a>prccCallback</a></li>
--   </ul>
projectsRegionsClustersCreate :: Cluster -> Text -> Text -> ProjectsRegionsClustersCreate

-- | Creates a cluster in a project.
--   
--   <i>See:</i> <a>projectsRegionsClustersCreate</a> smart constructor.
data ProjectsRegionsClustersCreate

-- | V1 error format.
prccXgafv :: Lens' ProjectsRegionsClustersCreate (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
prccUploadProtocol :: Lens' ProjectsRegionsClustersCreate (Maybe Text)

-- | Pretty-print response.
prccPp :: Lens' ProjectsRegionsClustersCreate Bool

-- | OAuth access token.
prccAccessToken :: Lens' ProjectsRegionsClustersCreate (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
prccUploadType :: Lens' ProjectsRegionsClustersCreate (Maybe Text)

-- | Multipart request metadata.
prccPayload :: Lens' ProjectsRegionsClustersCreate Cluster

-- | OAuth bearer token.
prccBearerToken :: Lens' ProjectsRegionsClustersCreate (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The Cloud Dataproc region in which to handle the
--   request.</li>
--   </ul>
prccRegion :: Lens' ProjectsRegionsClustersCreate Text

-- | <ul>
--   <li><i>Required</i> The ID of the Google Cloud Platform project that
--   the cluster belongs to.</li>
--   </ul>
prccProjectId :: Lens' ProjectsRegionsClustersCreate Text

-- | JSONP
prccCallback :: Lens' ProjectsRegionsClustersCreate (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Dataproc.Projects.Regions.Clusters.Create.ProjectsRegionsClustersCreate
instance Data.Data.Data Network.Google.Resource.Dataproc.Projects.Regions.Clusters.Create.ProjectsRegionsClustersCreate
instance GHC.Show.Show Network.Google.Resource.Dataproc.Projects.Regions.Clusters.Create.ProjectsRegionsClustersCreate
instance GHC.Classes.Eq Network.Google.Resource.Dataproc.Projects.Regions.Clusters.Create.ProjectsRegionsClustersCreate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Dataproc.Projects.Regions.Clusters.Create.ProjectsRegionsClustersCreate


-- | Deletes a cluster in a project.
--   
--   <i>See:</i> <a>Google Cloud Dataproc API Reference</a> for
--   <tt>dataproc.projects.regions.clusters.delete</tt>.
module Network.Google.Resource.Dataproc.Projects.Regions.Clusters.Delete

-- | A resource alias for
--   <tt>dataproc.projects.regions.clusters.delete</tt> method which the
--   <a>ProjectsRegionsClustersDelete</a> request conforms to.
type ProjectsRegionsClustersDeleteResource = "v1" :> ("projects" :> (Capture "projectId" Text :> ("regions" :> (Capture "region" Text :> ("clusters" :> (Capture "clusterName" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] Operation))))))))))))))

-- | Creates a value of <a>ProjectsRegionsClustersDelete</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>prcdXgafv</a></li>
--   <li><a>prcdUploadProtocol</a></li>
--   <li><a>prcdPp</a></li>
--   <li><a>prcdAccessToken</a></li>
--   <li><a>prcdUploadType</a></li>
--   <li><a>prcdBearerToken</a></li>
--   <li><a>prcdClusterName</a></li>
--   <li><a>prcdRegion</a></li>
--   <li><a>prcdProjectId</a></li>
--   <li><a>prcdCallback</a></li>
--   </ul>
projectsRegionsClustersDelete :: Text -> Text -> Text -> ProjectsRegionsClustersDelete

-- | Deletes a cluster in a project.
--   
--   <i>See:</i> <a>projectsRegionsClustersDelete</a> smart constructor.
data ProjectsRegionsClustersDelete

-- | V1 error format.
prcdXgafv :: Lens' ProjectsRegionsClustersDelete (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
prcdUploadProtocol :: Lens' ProjectsRegionsClustersDelete (Maybe Text)

-- | Pretty-print response.
prcdPp :: Lens' ProjectsRegionsClustersDelete Bool

-- | OAuth access token.
prcdAccessToken :: Lens' ProjectsRegionsClustersDelete (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
prcdUploadType :: Lens' ProjectsRegionsClustersDelete (Maybe Text)

-- | OAuth bearer token.
prcdBearerToken :: Lens' ProjectsRegionsClustersDelete (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The cluster name.</li>
--   </ul>
prcdClusterName :: Lens' ProjectsRegionsClustersDelete Text

-- | <ul>
--   <li><i>Required</i> The Cloud Dataproc region in which to handle the
--   request.</li>
--   </ul>
prcdRegion :: Lens' ProjectsRegionsClustersDelete Text

-- | <ul>
--   <li><i>Required</i> The ID of the Google Cloud Platform project that
--   the cluster belongs to.</li>
--   </ul>
prcdProjectId :: Lens' ProjectsRegionsClustersDelete Text

-- | JSONP
prcdCallback :: Lens' ProjectsRegionsClustersDelete (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Dataproc.Projects.Regions.Clusters.Delete.ProjectsRegionsClustersDelete
instance Data.Data.Data Network.Google.Resource.Dataproc.Projects.Regions.Clusters.Delete.ProjectsRegionsClustersDelete
instance GHC.Show.Show Network.Google.Resource.Dataproc.Projects.Regions.Clusters.Delete.ProjectsRegionsClustersDelete
instance GHC.Classes.Eq Network.Google.Resource.Dataproc.Projects.Regions.Clusters.Delete.ProjectsRegionsClustersDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Dataproc.Projects.Regions.Clusters.Delete.ProjectsRegionsClustersDelete


-- | Gets cluster diagnostic information. After the operation completes,
--   the Operation.response field contains `DiagnoseClusterOutputLocation`.
--   
--   <i>See:</i> <a>Google Cloud Dataproc API Reference</a> for
--   <tt>dataproc.projects.regions.clusters.diagnose</tt>.
module Network.Google.Resource.Dataproc.Projects.Regions.Clusters.Diagnose

-- | A resource alias for
--   <tt>dataproc.projects.regions.clusters.diagnose</tt> method which the
--   <a>ProjectsRegionsClustersDiagnose</a> request conforms to.
type ProjectsRegionsClustersDiagnoseResource = "v1" :> ("projects" :> (Capture "projectId" Text :> ("regions" :> (Capture "region" Text :> ("clusters" :> (CaptureMode "clusterName" "diagnose" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] DiagnoseClusterRequest :> Post '[JSON] Operation)))))))))))))))

-- | Creates a value of <a>ProjectsRegionsClustersDiagnose</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pXgafv</a></li>
--   <li><a>pUploadProtocol</a></li>
--   <li><a>pPp</a></li>
--   <li><a>pAccessToken</a></li>
--   <li><a>pUploadType</a></li>
--   <li><a>pPayload</a></li>
--   <li><a>pBearerToken</a></li>
--   <li><a>pClusterName</a></li>
--   <li><a>pRegion</a></li>
--   <li><a>pProjectId</a></li>
--   <li><a>pCallback</a></li>
--   </ul>
projectsRegionsClustersDiagnose :: DiagnoseClusterRequest -> Text -> Text -> Text -> ProjectsRegionsClustersDiagnose

-- | Gets cluster diagnostic information. After the operation completes,
--   the Operation.response field contains `DiagnoseClusterOutputLocation`.
--   
--   <i>See:</i> <a>projectsRegionsClustersDiagnose</a> smart constructor.
data ProjectsRegionsClustersDiagnose

-- | V1 error format.
pXgafv :: Lens' ProjectsRegionsClustersDiagnose (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
pUploadProtocol :: Lens' ProjectsRegionsClustersDiagnose (Maybe Text)

-- | Pretty-print response.
pPp :: Lens' ProjectsRegionsClustersDiagnose Bool

-- | OAuth access token.
pAccessToken :: Lens' ProjectsRegionsClustersDiagnose (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
pUploadType :: Lens' ProjectsRegionsClustersDiagnose (Maybe Text)

-- | Multipart request metadata.
pPayload :: Lens' ProjectsRegionsClustersDiagnose DiagnoseClusterRequest

-- | OAuth bearer token.
pBearerToken :: Lens' ProjectsRegionsClustersDiagnose (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The cluster name.</li>
--   </ul>
pClusterName :: Lens' ProjectsRegionsClustersDiagnose Text

-- | <ul>
--   <li><i>Required</i> The Cloud Dataproc region in which to handle the
--   request.</li>
--   </ul>
pRegion :: Lens' ProjectsRegionsClustersDiagnose Text

-- | <ul>
--   <li><i>Required</i> The ID of the Google Cloud Platform project that
--   the cluster belongs to.</li>
--   </ul>
pProjectId :: Lens' ProjectsRegionsClustersDiagnose Text

-- | JSONP
pCallback :: Lens' ProjectsRegionsClustersDiagnose (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Dataproc.Projects.Regions.Clusters.Diagnose.ProjectsRegionsClustersDiagnose
instance Data.Data.Data Network.Google.Resource.Dataproc.Projects.Regions.Clusters.Diagnose.ProjectsRegionsClustersDiagnose
instance GHC.Show.Show Network.Google.Resource.Dataproc.Projects.Regions.Clusters.Diagnose.ProjectsRegionsClustersDiagnose
instance GHC.Classes.Eq Network.Google.Resource.Dataproc.Projects.Regions.Clusters.Diagnose.ProjectsRegionsClustersDiagnose
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Dataproc.Projects.Regions.Clusters.Diagnose.ProjectsRegionsClustersDiagnose


-- | Gets the resource representation for a cluster in a project.
--   
--   <i>See:</i> <a>Google Cloud Dataproc API Reference</a> for
--   <tt>dataproc.projects.regions.clusters.get</tt>.
module Network.Google.Resource.Dataproc.Projects.Regions.Clusters.Get

-- | A resource alias for <tt>dataproc.projects.regions.clusters.get</tt>
--   method which the <a>ProjectsRegionsClustersGet</a> request conforms
--   to.
type ProjectsRegionsClustersGetResource = "v1" :> ("projects" :> (Capture "projectId" Text :> ("regions" :> (Capture "region" Text :> ("clusters" :> (Capture "clusterName" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Cluster))))))))))))))

-- | Creates a value of <a>ProjectsRegionsClustersGet</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>prcgXgafv</a></li>
--   <li><a>prcgUploadProtocol</a></li>
--   <li><a>prcgPp</a></li>
--   <li><a>prcgAccessToken</a></li>
--   <li><a>prcgUploadType</a></li>
--   <li><a>prcgBearerToken</a></li>
--   <li><a>prcgClusterName</a></li>
--   <li><a>prcgRegion</a></li>
--   <li><a>prcgProjectId</a></li>
--   <li><a>prcgCallback</a></li>
--   </ul>
projectsRegionsClustersGet :: Text -> Text -> Text -> ProjectsRegionsClustersGet

-- | Gets the resource representation for a cluster in a project.
--   
--   <i>See:</i> <a>projectsRegionsClustersGet</a> smart constructor.
data ProjectsRegionsClustersGet

-- | V1 error format.
prcgXgafv :: Lens' ProjectsRegionsClustersGet (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
prcgUploadProtocol :: Lens' ProjectsRegionsClustersGet (Maybe Text)

-- | Pretty-print response.
prcgPp :: Lens' ProjectsRegionsClustersGet Bool

-- | OAuth access token.
prcgAccessToken :: Lens' ProjectsRegionsClustersGet (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
prcgUploadType :: Lens' ProjectsRegionsClustersGet (Maybe Text)

-- | OAuth bearer token.
prcgBearerToken :: Lens' ProjectsRegionsClustersGet (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The cluster name.</li>
--   </ul>
prcgClusterName :: Lens' ProjectsRegionsClustersGet Text

-- | <ul>
--   <li><i>Required</i> The Cloud Dataproc region in which to handle the
--   request.</li>
--   </ul>
prcgRegion :: Lens' ProjectsRegionsClustersGet Text

-- | <ul>
--   <li><i>Required</i> The ID of the Google Cloud Platform project that
--   the cluster belongs to.</li>
--   </ul>
prcgProjectId :: Lens' ProjectsRegionsClustersGet Text

-- | JSONP
prcgCallback :: Lens' ProjectsRegionsClustersGet (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Dataproc.Projects.Regions.Clusters.Get.ProjectsRegionsClustersGet
instance Data.Data.Data Network.Google.Resource.Dataproc.Projects.Regions.Clusters.Get.ProjectsRegionsClustersGet
instance GHC.Show.Show Network.Google.Resource.Dataproc.Projects.Regions.Clusters.Get.ProjectsRegionsClustersGet
instance GHC.Classes.Eq Network.Google.Resource.Dataproc.Projects.Regions.Clusters.Get.ProjectsRegionsClustersGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Dataproc.Projects.Regions.Clusters.Get.ProjectsRegionsClustersGet


-- | Lists all regions/{region}/clusters in a project.
--   
--   <i>See:</i> <a>Google Cloud Dataproc API Reference</a> for
--   <tt>dataproc.projects.regions.clusters.list</tt>.
module Network.Google.Resource.Dataproc.Projects.Regions.Clusters.List

-- | A resource alias for <tt>dataproc.projects.regions.clusters.list</tt>
--   method which the <a>ProjectsRegionsClustersList</a> request conforms
--   to.
type ProjectsRegionsClustersListResource = "v1" :> ("projects" :> (Capture "projectId" Text :> ("regions" :> (Capture "region" Text :> ("clusters" :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "filter" Text :> (QueryParam "pageToken" Text :> (QueryParam "pageSize" (Textual Int32) :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ListClustersResponse))))))))))))))))

-- | Creates a value of <a>ProjectsRegionsClustersList</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>prclXgafv</a></li>
--   <li><a>prclUploadProtocol</a></li>
--   <li><a>prclPp</a></li>
--   <li><a>prclAccessToken</a></li>
--   <li><a>prclUploadType</a></li>
--   <li><a>prclBearerToken</a></li>
--   <li><a>prclFilter</a></li>
--   <li><a>prclRegion</a></li>
--   <li><a>prclPageToken</a></li>
--   <li><a>prclProjectId</a></li>
--   <li><a>prclPageSize</a></li>
--   <li><a>prclCallback</a></li>
--   </ul>
projectsRegionsClustersList :: Text -> Text -> ProjectsRegionsClustersList

-- | Lists all regions/{region}/clusters in a project.
--   
--   <i>See:</i> <a>projectsRegionsClustersList</a> smart constructor.
data ProjectsRegionsClustersList

-- | V1 error format.
prclXgafv :: Lens' ProjectsRegionsClustersList (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
prclUploadProtocol :: Lens' ProjectsRegionsClustersList (Maybe Text)

-- | Pretty-print response.
prclPp :: Lens' ProjectsRegionsClustersList Bool

-- | OAuth access token.
prclAccessToken :: Lens' ProjectsRegionsClustersList (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
prclUploadType :: Lens' ProjectsRegionsClustersList (Maybe Text)

-- | OAuth bearer token.
prclBearerToken :: Lens' ProjectsRegionsClustersList (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> A filter constraining the clusters to list.
--   Filters are case-sensitive and have the following syntax: field:value
--   [field:value] ... or field = value [AND [field = value]] ... where
--   **field** is one of `status.state`, `clusterName`, or `labels.[KEY]`,
--   and `[KEY]` is a label key. **value** can be `*` to match all values.
--   `status.state` can be one of the following: `ACTIVE`, `INACTIVE`,
--   `CREATING`, `RUNNING`, `ERROR`, `DELETING`, or `UPDATING`. `ACTIVE`
--   contains the `CREATING`, `UPDATING`, and `RUNNING` states. `INACTIVE`
--   contains the `DELETING` and `ERROR` states. `clusterName` is the name
--   of the cluster provided at creation time. Only the logical `AND`
--   operator is supported; space-separated items are treated as having an
--   implicit `AND` operator. Example valid filters are:
--   status.state:ACTIVE clusterName:mycluster labels.env:staging \
--   labels.starred:* and status.state = ACTIVE AND clusterName = mycluster
--   \ AND labels.env = staging AND labels.starred = *</li>
--   </ul>
prclFilter :: Lens' ProjectsRegionsClustersList (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The Cloud Dataproc region in which to handle the
--   request.</li>
--   </ul>
prclRegion :: Lens' ProjectsRegionsClustersList Text

-- | <ul>
--   <li><i>Optional</i> The standard List page token.</li>
--   </ul>
prclPageToken :: Lens' ProjectsRegionsClustersList (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The ID of the Google Cloud Platform project that
--   the cluster belongs to.</li>
--   </ul>
prclProjectId :: Lens' ProjectsRegionsClustersList Text

-- | <ul>
--   <li><i>Optional</i> The standard List page size.</li>
--   </ul>
prclPageSize :: Lens' ProjectsRegionsClustersList (Maybe Int32)

-- | JSONP
prclCallback :: Lens' ProjectsRegionsClustersList (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Dataproc.Projects.Regions.Clusters.List.ProjectsRegionsClustersList
instance Data.Data.Data Network.Google.Resource.Dataproc.Projects.Regions.Clusters.List.ProjectsRegionsClustersList
instance GHC.Show.Show Network.Google.Resource.Dataproc.Projects.Regions.Clusters.List.ProjectsRegionsClustersList
instance GHC.Classes.Eq Network.Google.Resource.Dataproc.Projects.Regions.Clusters.List.ProjectsRegionsClustersList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Dataproc.Projects.Regions.Clusters.List.ProjectsRegionsClustersList


-- | Updates a cluster in a project.
--   
--   <i>See:</i> <a>Google Cloud Dataproc API Reference</a> for
--   <tt>dataproc.projects.regions.clusters.patch</tt>.
module Network.Google.Resource.Dataproc.Projects.Regions.Clusters.Patch

-- | A resource alias for <tt>dataproc.projects.regions.clusters.patch</tt>
--   method which the <a>ProjectsRegionsClustersPatch</a> request conforms
--   to.
type ProjectsRegionsClustersPatchResource = "v1" :> ("projects" :> (Capture "projectId" Text :> ("regions" :> (Capture "region" Text :> ("clusters" :> (Capture "clusterName" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "updateMask" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Cluster :> Patch '[JSON] Operation))))))))))))))))

-- | Creates a value of <a>ProjectsRegionsClustersPatch</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>prcpXgafv</a></li>
--   <li><a>prcpUploadProtocol</a></li>
--   <li><a>prcpUpdateMask</a></li>
--   <li><a>prcpPp</a></li>
--   <li><a>prcpAccessToken</a></li>
--   <li><a>prcpUploadType</a></li>
--   <li><a>prcpPayload</a></li>
--   <li><a>prcpBearerToken</a></li>
--   <li><a>prcpClusterName</a></li>
--   <li><a>prcpRegion</a></li>
--   <li><a>prcpProjectId</a></li>
--   <li><a>prcpCallback</a></li>
--   </ul>
projectsRegionsClustersPatch :: Cluster -> Text -> Text -> Text -> ProjectsRegionsClustersPatch

-- | Updates a cluster in a project.
--   
--   <i>See:</i> <a>projectsRegionsClustersPatch</a> smart constructor.
data ProjectsRegionsClustersPatch

-- | V1 error format.
prcpXgafv :: Lens' ProjectsRegionsClustersPatch (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
prcpUploadProtocol :: Lens' ProjectsRegionsClustersPatch (Maybe Text)

-- | <ul>
--   <li><i>Required</i> Specifies the path, relative to Cluster, of the
--   field to update. For example, to change the number of workers in a
--   cluster to 5, the update_mask parameter would be specified as
--   config.worker_config.num_instances, and the `PATCH` request body would
--   specify the new value, as follows: { "config":{ "workerConfig":{
--   "numInstances":"5" } } } Similarly, to change the number of
--   preemptible workers in a cluster to 5, the update_mask parameter would
--   be config.secondary_worker_config.num_instances, and the `PATCH`
--   request body would be set as follows: { "config":{
--   "secondaryWorkerConfig":{ "numInstances":"5" } } } Note: Currently,
--   config.worker_config.num_instances and
--   config.secondary_worker_config.num_instances are the only fields that
--   can be updated.</li>
--   </ul>
prcpUpdateMask :: Lens' ProjectsRegionsClustersPatch (Maybe Text)

-- | Pretty-print response.
prcpPp :: Lens' ProjectsRegionsClustersPatch Bool

-- | OAuth access token.
prcpAccessToken :: Lens' ProjectsRegionsClustersPatch (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
prcpUploadType :: Lens' ProjectsRegionsClustersPatch (Maybe Text)

-- | Multipart request metadata.
prcpPayload :: Lens' ProjectsRegionsClustersPatch Cluster

-- | OAuth bearer token.
prcpBearerToken :: Lens' ProjectsRegionsClustersPatch (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The cluster name.</li>
--   </ul>
prcpClusterName :: Lens' ProjectsRegionsClustersPatch Text

-- | <ul>
--   <li><i>Required</i> The Cloud Dataproc region in which to handle the
--   request.</li>
--   </ul>
prcpRegion :: Lens' ProjectsRegionsClustersPatch Text

-- | <ul>
--   <li><i>Required</i> The ID of the Google Cloud Platform project the
--   cluster belongs to.</li>
--   </ul>
prcpProjectId :: Lens' ProjectsRegionsClustersPatch Text

-- | JSONP
prcpCallback :: Lens' ProjectsRegionsClustersPatch (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Dataproc.Projects.Regions.Clusters.Patch.ProjectsRegionsClustersPatch
instance Data.Data.Data Network.Google.Resource.Dataproc.Projects.Regions.Clusters.Patch.ProjectsRegionsClustersPatch
instance GHC.Show.Show Network.Google.Resource.Dataproc.Projects.Regions.Clusters.Patch.ProjectsRegionsClustersPatch
instance GHC.Classes.Eq Network.Google.Resource.Dataproc.Projects.Regions.Clusters.Patch.ProjectsRegionsClustersPatch
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Dataproc.Projects.Regions.Clusters.Patch.ProjectsRegionsClustersPatch


-- | Starts a job cancellation request. To access the job resource after
--   cancellation, call <a>regions/{region}/jobs.list</a> or
--   <a>regions/{region}/jobs.get</a>.
--   
--   <i>See:</i> <a>Google Cloud Dataproc API Reference</a> for
--   <tt>dataproc.projects.regions.jobs.cancel</tt>.
module Network.Google.Resource.Dataproc.Projects.Regions.Jobs.Cancel

-- | A resource alias for <tt>dataproc.projects.regions.jobs.cancel</tt>
--   method which the <a>ProjectsRegionsJobsCancel</a> request conforms to.
type ProjectsRegionsJobsCancelResource = "v1" :> ("projects" :> (Capture "projectId" Text :> ("regions" :> (Capture "region" Text :> ("jobs" :> (CaptureMode "jobId" "cancel" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] CancelJobRequest :> Post '[JSON] Job)))))))))))))))

-- | Creates a value of <a>ProjectsRegionsJobsCancel</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>prjcXgafv</a></li>
--   <li><a>prjcJobId</a></li>
--   <li><a>prjcUploadProtocol</a></li>
--   <li><a>prjcPp</a></li>
--   <li><a>prjcAccessToken</a></li>
--   <li><a>prjcUploadType</a></li>
--   <li><a>prjcPayload</a></li>
--   <li><a>prjcBearerToken</a></li>
--   <li><a>prjcRegion</a></li>
--   <li><a>prjcProjectId</a></li>
--   <li><a>prjcCallback</a></li>
--   </ul>
projectsRegionsJobsCancel :: Text -> CancelJobRequest -> Text -> Text -> ProjectsRegionsJobsCancel

-- | Starts a job cancellation request. To access the job resource after
--   cancellation, call <a>regions/{region}/jobs.list</a> or
--   <a>regions/{region}/jobs.get</a>.
--   
--   <i>See:</i> <a>projectsRegionsJobsCancel</a> smart constructor.
data ProjectsRegionsJobsCancel

-- | V1 error format.
prjcXgafv :: Lens' ProjectsRegionsJobsCancel (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The job ID.</li>
--   </ul>
prjcJobId :: Lens' ProjectsRegionsJobsCancel Text

-- | Upload protocol for media (e.g. "raw", "multipart").
prjcUploadProtocol :: Lens' ProjectsRegionsJobsCancel (Maybe Text)

-- | Pretty-print response.
prjcPp :: Lens' ProjectsRegionsJobsCancel Bool

-- | OAuth access token.
prjcAccessToken :: Lens' ProjectsRegionsJobsCancel (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
prjcUploadType :: Lens' ProjectsRegionsJobsCancel (Maybe Text)

-- | Multipart request metadata.
prjcPayload :: Lens' ProjectsRegionsJobsCancel CancelJobRequest

-- | OAuth bearer token.
prjcBearerToken :: Lens' ProjectsRegionsJobsCancel (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The Cloud Dataproc region in which to handle the
--   request.</li>
--   </ul>
prjcRegion :: Lens' ProjectsRegionsJobsCancel Text

-- | <ul>
--   <li><i>Required</i> The ID of the Google Cloud Platform project that
--   the job belongs to.</li>
--   </ul>
prjcProjectId :: Lens' ProjectsRegionsJobsCancel Text

-- | JSONP
prjcCallback :: Lens' ProjectsRegionsJobsCancel (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Dataproc.Projects.Regions.Jobs.Cancel.ProjectsRegionsJobsCancel
instance Data.Data.Data Network.Google.Resource.Dataproc.Projects.Regions.Jobs.Cancel.ProjectsRegionsJobsCancel
instance GHC.Show.Show Network.Google.Resource.Dataproc.Projects.Regions.Jobs.Cancel.ProjectsRegionsJobsCancel
instance GHC.Classes.Eq Network.Google.Resource.Dataproc.Projects.Regions.Jobs.Cancel.ProjectsRegionsJobsCancel
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Dataproc.Projects.Regions.Jobs.Cancel.ProjectsRegionsJobsCancel


-- | Deletes the job from the project. If the job is active, the delete
--   fails, and the response returns `FAILED_PRECONDITION`.
--   
--   <i>See:</i> <a>Google Cloud Dataproc API Reference</a> for
--   <tt>dataproc.projects.regions.jobs.delete</tt>.
module Network.Google.Resource.Dataproc.Projects.Regions.Jobs.Delete

-- | A resource alias for <tt>dataproc.projects.regions.jobs.delete</tt>
--   method which the <a>ProjectsRegionsJobsDelete</a> request conforms to.
type ProjectsRegionsJobsDeleteResource = "v1" :> ("projects" :> (Capture "projectId" Text :> ("regions" :> (Capture "region" Text :> ("jobs" :> (Capture "jobId" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] Empty))))))))))))))

-- | Creates a value of <a>ProjectsRegionsJobsDelete</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>prjdXgafv</a></li>
--   <li><a>prjdJobId</a></li>
--   <li><a>prjdUploadProtocol</a></li>
--   <li><a>prjdPp</a></li>
--   <li><a>prjdAccessToken</a></li>
--   <li><a>prjdUploadType</a></li>
--   <li><a>prjdBearerToken</a></li>
--   <li><a>prjdRegion</a></li>
--   <li><a>prjdProjectId</a></li>
--   <li><a>prjdCallback</a></li>
--   </ul>
projectsRegionsJobsDelete :: Text -> Text -> Text -> ProjectsRegionsJobsDelete

-- | Deletes the job from the project. If the job is active, the delete
--   fails, and the response returns `FAILED_PRECONDITION`.
--   
--   <i>See:</i> <a>projectsRegionsJobsDelete</a> smart constructor.
data ProjectsRegionsJobsDelete

-- | V1 error format.
prjdXgafv :: Lens' ProjectsRegionsJobsDelete (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The job ID.</li>
--   </ul>
prjdJobId :: Lens' ProjectsRegionsJobsDelete Text

-- | Upload protocol for media (e.g. "raw", "multipart").
prjdUploadProtocol :: Lens' ProjectsRegionsJobsDelete (Maybe Text)

-- | Pretty-print response.
prjdPp :: Lens' ProjectsRegionsJobsDelete Bool

-- | OAuth access token.
prjdAccessToken :: Lens' ProjectsRegionsJobsDelete (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
prjdUploadType :: Lens' ProjectsRegionsJobsDelete (Maybe Text)

-- | OAuth bearer token.
prjdBearerToken :: Lens' ProjectsRegionsJobsDelete (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The Cloud Dataproc region in which to handle the
--   request.</li>
--   </ul>
prjdRegion :: Lens' ProjectsRegionsJobsDelete Text

-- | <ul>
--   <li><i>Required</i> The ID of the Google Cloud Platform project that
--   the job belongs to.</li>
--   </ul>
prjdProjectId :: Lens' ProjectsRegionsJobsDelete Text

-- | JSONP
prjdCallback :: Lens' ProjectsRegionsJobsDelete (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Dataproc.Projects.Regions.Jobs.Delete.ProjectsRegionsJobsDelete
instance Data.Data.Data Network.Google.Resource.Dataproc.Projects.Regions.Jobs.Delete.ProjectsRegionsJobsDelete
instance GHC.Show.Show Network.Google.Resource.Dataproc.Projects.Regions.Jobs.Delete.ProjectsRegionsJobsDelete
instance GHC.Classes.Eq Network.Google.Resource.Dataproc.Projects.Regions.Jobs.Delete.ProjectsRegionsJobsDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Dataproc.Projects.Regions.Jobs.Delete.ProjectsRegionsJobsDelete


-- | Gets the resource representation for a job in a project.
--   
--   <i>See:</i> <a>Google Cloud Dataproc API Reference</a> for
--   <tt>dataproc.projects.regions.jobs.get</tt>.
module Network.Google.Resource.Dataproc.Projects.Regions.Jobs.Get

-- | A resource alias for <tt>dataproc.projects.regions.jobs.get</tt>
--   method which the <a>ProjectsRegionsJobsGet</a> request conforms to.
type ProjectsRegionsJobsGetResource = "v1" :> ("projects" :> (Capture "projectId" Text :> ("regions" :> (Capture "region" Text :> ("jobs" :> (Capture "jobId" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Job))))))))))))))

-- | Creates a value of <a>ProjectsRegionsJobsGet</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>prjgXgafv</a></li>
--   <li><a>prjgJobId</a></li>
--   <li><a>prjgUploadProtocol</a></li>
--   <li><a>prjgPp</a></li>
--   <li><a>prjgAccessToken</a></li>
--   <li><a>prjgUploadType</a></li>
--   <li><a>prjgBearerToken</a></li>
--   <li><a>prjgRegion</a></li>
--   <li><a>prjgProjectId</a></li>
--   <li><a>prjgCallback</a></li>
--   </ul>
projectsRegionsJobsGet :: Text -> Text -> Text -> ProjectsRegionsJobsGet

-- | Gets the resource representation for a job in a project.
--   
--   <i>See:</i> <a>projectsRegionsJobsGet</a> smart constructor.
data ProjectsRegionsJobsGet

-- | V1 error format.
prjgXgafv :: Lens' ProjectsRegionsJobsGet (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The job ID.</li>
--   </ul>
prjgJobId :: Lens' ProjectsRegionsJobsGet Text

-- | Upload protocol for media (e.g. "raw", "multipart").
prjgUploadProtocol :: Lens' ProjectsRegionsJobsGet (Maybe Text)

-- | Pretty-print response.
prjgPp :: Lens' ProjectsRegionsJobsGet Bool

-- | OAuth access token.
prjgAccessToken :: Lens' ProjectsRegionsJobsGet (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
prjgUploadType :: Lens' ProjectsRegionsJobsGet (Maybe Text)

-- | OAuth bearer token.
prjgBearerToken :: Lens' ProjectsRegionsJobsGet (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The Cloud Dataproc region in which to handle the
--   request.</li>
--   </ul>
prjgRegion :: Lens' ProjectsRegionsJobsGet Text

-- | <ul>
--   <li><i>Required</i> The ID of the Google Cloud Platform project that
--   the job belongs to.</li>
--   </ul>
prjgProjectId :: Lens' ProjectsRegionsJobsGet Text

-- | JSONP
prjgCallback :: Lens' ProjectsRegionsJobsGet (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Dataproc.Projects.Regions.Jobs.Get.ProjectsRegionsJobsGet
instance Data.Data.Data Network.Google.Resource.Dataproc.Projects.Regions.Jobs.Get.ProjectsRegionsJobsGet
instance GHC.Show.Show Network.Google.Resource.Dataproc.Projects.Regions.Jobs.Get.ProjectsRegionsJobsGet
instance GHC.Classes.Eq Network.Google.Resource.Dataproc.Projects.Regions.Jobs.Get.ProjectsRegionsJobsGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Dataproc.Projects.Regions.Jobs.Get.ProjectsRegionsJobsGet


-- | Lists regions/{region}/jobs in a project.
--   
--   <i>See:</i> <a>Google Cloud Dataproc API Reference</a> for
--   <tt>dataproc.projects.regions.jobs.list</tt>.
module Network.Google.Resource.Dataproc.Projects.Regions.Jobs.List

-- | A resource alias for <tt>dataproc.projects.regions.jobs.list</tt>
--   method which the <a>ProjectsRegionsJobsList</a> request conforms to.
type ProjectsRegionsJobsListResource = "v1" :> ("projects" :> (Capture "projectId" Text :> ("regions" :> (Capture "region" Text :> ("jobs" :> (QueryParam "jobStateMatcher" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "clusterName" Text :> (QueryParam "filter" Text :> (QueryParam "pageToken" Text :> (QueryParam "pageSize" (Textual Int32) :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ListJobsResponse))))))))))))))))))

-- | Creates a value of <a>ProjectsRegionsJobsList</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>prjlJobStateMatcher</a></li>
--   <li><a>prjlXgafv</a></li>
--   <li><a>prjlUploadProtocol</a></li>
--   <li><a>prjlPp</a></li>
--   <li><a>prjlAccessToken</a></li>
--   <li><a>prjlUploadType</a></li>
--   <li><a>prjlBearerToken</a></li>
--   <li><a>prjlClusterName</a></li>
--   <li><a>prjlFilter</a></li>
--   <li><a>prjlRegion</a></li>
--   <li><a>prjlPageToken</a></li>
--   <li><a>prjlProjectId</a></li>
--   <li><a>prjlPageSize</a></li>
--   <li><a>prjlCallback</a></li>
--   </ul>
projectsRegionsJobsList :: Text -> Text -> ProjectsRegionsJobsList

-- | Lists regions/{region}/jobs in a project.
--   
--   <i>See:</i> <a>projectsRegionsJobsList</a> smart constructor.
data ProjectsRegionsJobsList

-- | <ul>
--   <li><i>Optional</i> Specifies enumerated categories of jobs to list
--   (default = match ALL jobs).</li>
--   </ul>
prjlJobStateMatcher :: Lens' ProjectsRegionsJobsList (Maybe Text)

-- | V1 error format.
prjlXgafv :: Lens' ProjectsRegionsJobsList (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
prjlUploadProtocol :: Lens' ProjectsRegionsJobsList (Maybe Text)

-- | Pretty-print response.
prjlPp :: Lens' ProjectsRegionsJobsList Bool

-- | OAuth access token.
prjlAccessToken :: Lens' ProjectsRegionsJobsList (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
prjlUploadType :: Lens' ProjectsRegionsJobsList (Maybe Text)

-- | OAuth bearer token.
prjlBearerToken :: Lens' ProjectsRegionsJobsList (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> If set, the returned jobs list includes only jobs
--   that were submitted to the named cluster.</li>
--   </ul>
prjlClusterName :: Lens' ProjectsRegionsJobsList (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> A filter constraining the jobs to list. Filters
--   are case-sensitive and have the following syntax: field:value] ... or
--   [field = value] AND [field [= value]] ... where **field** is
--   `status.state` or `labels.[KEY]`, and `[KEY]` is a label key.
--   **value** can be `*` to match all values. `status.state` can be either
--   `ACTIVE` or `INACTIVE`. Only the logical `AND` operator is supported;
--   space-separated items are treated as having an implicit `AND`
--   operator. Example valid filters are: status.state:ACTIVE
--   labels.env:staging labels.starred:* and status.state = ACTIVE AND
--   labels.env = staging AND labels.starred = *</li>
--   </ul>
prjlFilter :: Lens' ProjectsRegionsJobsList (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The Cloud Dataproc region in which to handle the
--   request.</li>
--   </ul>
prjlRegion :: Lens' ProjectsRegionsJobsList Text

-- | <ul>
--   <li><i>Optional</i> The page token, returned by a previous call, to
--   request the next page of results.</li>
--   </ul>
prjlPageToken :: Lens' ProjectsRegionsJobsList (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The ID of the Google Cloud Platform project that
--   the job belongs to.</li>
--   </ul>
prjlProjectId :: Lens' ProjectsRegionsJobsList Text

-- | <ul>
--   <li><i>Optional</i> The number of results to return in each
--   response.</li>
--   </ul>
prjlPageSize :: Lens' ProjectsRegionsJobsList (Maybe Int32)

-- | JSONP
prjlCallback :: Lens' ProjectsRegionsJobsList (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Dataproc.Projects.Regions.Jobs.List.ProjectsRegionsJobsList
instance Data.Data.Data Network.Google.Resource.Dataproc.Projects.Regions.Jobs.List.ProjectsRegionsJobsList
instance GHC.Show.Show Network.Google.Resource.Dataproc.Projects.Regions.Jobs.List.ProjectsRegionsJobsList
instance GHC.Classes.Eq Network.Google.Resource.Dataproc.Projects.Regions.Jobs.List.ProjectsRegionsJobsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Dataproc.Projects.Regions.Jobs.List.ProjectsRegionsJobsList


-- | Submits a job to a cluster.
--   
--   <i>See:</i> <a>Google Cloud Dataproc API Reference</a> for
--   <tt>dataproc.projects.regions.jobs.submit</tt>.
module Network.Google.Resource.Dataproc.Projects.Regions.Jobs.Submit

-- | A resource alias for <tt>dataproc.projects.regions.jobs.submit</tt>
--   method which the <a>ProjectsRegionsJobsSubmit</a> request conforms to.
type ProjectsRegionsJobsSubmitResource = "v1" :> ("projects" :> (Capture "projectId" Text :> ("regions" :> (Capture "region" Text :> ("jobs:submit" :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] SubmitJobRequest :> Post '[JSON] Job))))))))))))))

-- | Creates a value of <a>ProjectsRegionsJobsSubmit</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>prjsXgafv</a></li>
--   <li><a>prjsUploadProtocol</a></li>
--   <li><a>prjsPp</a></li>
--   <li><a>prjsAccessToken</a></li>
--   <li><a>prjsUploadType</a></li>
--   <li><a>prjsPayload</a></li>
--   <li><a>prjsBearerToken</a></li>
--   <li><a>prjsRegion</a></li>
--   <li><a>prjsProjectId</a></li>
--   <li><a>prjsCallback</a></li>
--   </ul>
projectsRegionsJobsSubmit :: SubmitJobRequest -> Text -> Text -> ProjectsRegionsJobsSubmit

-- | Submits a job to a cluster.
--   
--   <i>See:</i> <a>projectsRegionsJobsSubmit</a> smart constructor.
data ProjectsRegionsJobsSubmit

-- | V1 error format.
prjsXgafv :: Lens' ProjectsRegionsJobsSubmit (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
prjsUploadProtocol :: Lens' ProjectsRegionsJobsSubmit (Maybe Text)

-- | Pretty-print response.
prjsPp :: Lens' ProjectsRegionsJobsSubmit Bool

-- | OAuth access token.
prjsAccessToken :: Lens' ProjectsRegionsJobsSubmit (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
prjsUploadType :: Lens' ProjectsRegionsJobsSubmit (Maybe Text)

-- | Multipart request metadata.
prjsPayload :: Lens' ProjectsRegionsJobsSubmit SubmitJobRequest

-- | OAuth bearer token.
prjsBearerToken :: Lens' ProjectsRegionsJobsSubmit (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The Cloud Dataproc region in which to handle the
--   request.</li>
--   </ul>
prjsRegion :: Lens' ProjectsRegionsJobsSubmit Text

-- | <ul>
--   <li><i>Required</i> The ID of the Google Cloud Platform project that
--   the job belongs to.</li>
--   </ul>
prjsProjectId :: Lens' ProjectsRegionsJobsSubmit Text

-- | JSONP
prjsCallback :: Lens' ProjectsRegionsJobsSubmit (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Dataproc.Projects.Regions.Jobs.Submit.ProjectsRegionsJobsSubmit
instance Data.Data.Data Network.Google.Resource.Dataproc.Projects.Regions.Jobs.Submit.ProjectsRegionsJobsSubmit
instance GHC.Show.Show Network.Google.Resource.Dataproc.Projects.Regions.Jobs.Submit.ProjectsRegionsJobsSubmit
instance GHC.Classes.Eq Network.Google.Resource.Dataproc.Projects.Regions.Jobs.Submit.ProjectsRegionsJobsSubmit
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Dataproc.Projects.Regions.Jobs.Submit.ProjectsRegionsJobsSubmit


-- | Starts asynchronous cancellation on a long-running operation. The
--   server makes a best effort to cancel the operation, but success is not
--   guaranteed. If the server doesn't support this method, it returns
--   `google.rpc.Code.UNIMPLEMENTED`. Clients can use
--   Operations.GetOperation or other methods to check whether the
--   cancellation succeeded or whether the operation completed despite
--   cancellation. On successful cancellation, the operation is not
--   deleted; instead, it becomes an operation with an Operation.error
--   value with a google.rpc.Status.code of 1, corresponding to
--   `Code.CANCELLED`.
--   
--   <i>See:</i> <a>Google Cloud Dataproc API Reference</a> for
--   <tt>dataproc.projects.regions.operations.cancel</tt>.
module Network.Google.Resource.Dataproc.Projects.Regions.Operations.Cancel

-- | A resource alias for
--   <tt>dataproc.projects.regions.operations.cancel</tt> method which the
--   <a>ProjectsRegionsOperationsCancel</a> request conforms to.
type ProjectsRegionsOperationsCancelResource = "v1" :> (CaptureMode "name" "cancel" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Post '[JSON] Empty)))))))))

-- | Creates a value of <a>ProjectsRegionsOperationsCancel</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>procXgafv</a></li>
--   <li><a>procUploadProtocol</a></li>
--   <li><a>procPp</a></li>
--   <li><a>procAccessToken</a></li>
--   <li><a>procUploadType</a></li>
--   <li><a>procBearerToken</a></li>
--   <li><a>procName</a></li>
--   <li><a>procCallback</a></li>
--   </ul>
projectsRegionsOperationsCancel :: Text -> ProjectsRegionsOperationsCancel

-- | Starts asynchronous cancellation on a long-running operation. The
--   server makes a best effort to cancel the operation, but success is not
--   guaranteed. If the server doesn't support this method, it returns
--   `google.rpc.Code.UNIMPLEMENTED`. Clients can use
--   Operations.GetOperation or other methods to check whether the
--   cancellation succeeded or whether the operation completed despite
--   cancellation. On successful cancellation, the operation is not
--   deleted; instead, it becomes an operation with an Operation.error
--   value with a google.rpc.Status.code of 1, corresponding to
--   `Code.CANCELLED`.
--   
--   <i>See:</i> <a>projectsRegionsOperationsCancel</a> smart constructor.
data ProjectsRegionsOperationsCancel

-- | V1 error format.
procXgafv :: Lens' ProjectsRegionsOperationsCancel (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
procUploadProtocol :: Lens' ProjectsRegionsOperationsCancel (Maybe Text)

-- | Pretty-print response.
procPp :: Lens' ProjectsRegionsOperationsCancel Bool

-- | OAuth access token.
procAccessToken :: Lens' ProjectsRegionsOperationsCancel (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
procUploadType :: Lens' ProjectsRegionsOperationsCancel (Maybe Text)

-- | OAuth bearer token.
procBearerToken :: Lens' ProjectsRegionsOperationsCancel (Maybe Text)

-- | The name of the operation resource to be cancelled.
procName :: Lens' ProjectsRegionsOperationsCancel Text

-- | JSONP
procCallback :: Lens' ProjectsRegionsOperationsCancel (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Dataproc.Projects.Regions.Operations.Cancel.ProjectsRegionsOperationsCancel
instance Data.Data.Data Network.Google.Resource.Dataproc.Projects.Regions.Operations.Cancel.ProjectsRegionsOperationsCancel
instance GHC.Show.Show Network.Google.Resource.Dataproc.Projects.Regions.Operations.Cancel.ProjectsRegionsOperationsCancel
instance GHC.Classes.Eq Network.Google.Resource.Dataproc.Projects.Regions.Operations.Cancel.ProjectsRegionsOperationsCancel
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Dataproc.Projects.Regions.Operations.Cancel.ProjectsRegionsOperationsCancel


-- | Deletes a long-running operation. This method indicates that the
--   client is no longer interested in the operation result. It does not
--   cancel the operation. If the server doesn't support this method, it
--   returns `google.rpc.Code.UNIMPLEMENTED`.
--   
--   <i>See:</i> <a>Google Cloud Dataproc API Reference</a> for
--   <tt>dataproc.projects.regions.operations.delete</tt>.
module Network.Google.Resource.Dataproc.Projects.Regions.Operations.Delete

-- | A resource alias for
--   <tt>dataproc.projects.regions.operations.delete</tt> method which the
--   <a>ProjectsRegionsOperationsDelete</a> request conforms to.
type ProjectsRegionsOperationsDeleteResource = "v1" :> (Capture "name" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] Empty)))))))))

-- | Creates a value of <a>ProjectsRegionsOperationsDelete</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>prodXgafv</a></li>
--   <li><a>prodUploadProtocol</a></li>
--   <li><a>prodPp</a></li>
--   <li><a>prodAccessToken</a></li>
--   <li><a>prodUploadType</a></li>
--   <li><a>prodBearerToken</a></li>
--   <li><a>prodName</a></li>
--   <li><a>prodCallback</a></li>
--   </ul>
projectsRegionsOperationsDelete :: Text -> ProjectsRegionsOperationsDelete

-- | Deletes a long-running operation. This method indicates that the
--   client is no longer interested in the operation result. It does not
--   cancel the operation. If the server doesn't support this method, it
--   returns `google.rpc.Code.UNIMPLEMENTED`.
--   
--   <i>See:</i> <a>projectsRegionsOperationsDelete</a> smart constructor.
data ProjectsRegionsOperationsDelete

-- | V1 error format.
prodXgafv :: Lens' ProjectsRegionsOperationsDelete (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
prodUploadProtocol :: Lens' ProjectsRegionsOperationsDelete (Maybe Text)

-- | Pretty-print response.
prodPp :: Lens' ProjectsRegionsOperationsDelete Bool

-- | OAuth access token.
prodAccessToken :: Lens' ProjectsRegionsOperationsDelete (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
prodUploadType :: Lens' ProjectsRegionsOperationsDelete (Maybe Text)

-- | OAuth bearer token.
prodBearerToken :: Lens' ProjectsRegionsOperationsDelete (Maybe Text)

-- | The name of the operation resource to be deleted.
prodName :: Lens' ProjectsRegionsOperationsDelete Text

-- | JSONP
prodCallback :: Lens' ProjectsRegionsOperationsDelete (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Dataproc.Projects.Regions.Operations.Delete.ProjectsRegionsOperationsDelete
instance Data.Data.Data Network.Google.Resource.Dataproc.Projects.Regions.Operations.Delete.ProjectsRegionsOperationsDelete
instance GHC.Show.Show Network.Google.Resource.Dataproc.Projects.Regions.Operations.Delete.ProjectsRegionsOperationsDelete
instance GHC.Classes.Eq Network.Google.Resource.Dataproc.Projects.Regions.Operations.Delete.ProjectsRegionsOperationsDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Dataproc.Projects.Regions.Operations.Delete.ProjectsRegionsOperationsDelete


-- | Gets the latest state of a long-running operation. Clients can use
--   this method to poll the operation result at intervals as recommended
--   by the API service.
--   
--   <i>See:</i> <a>Google Cloud Dataproc API Reference</a> for
--   <tt>dataproc.projects.regions.operations.get</tt>.
module Network.Google.Resource.Dataproc.Projects.Regions.Operations.Get

-- | A resource alias for <tt>dataproc.projects.regions.operations.get</tt>
--   method which the <a>ProjectsRegionsOperationsGet</a> request conforms
--   to.
type ProjectsRegionsOperationsGetResource = "v1" :> (Capture "name" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Operation)))))))))

-- | Creates a value of <a>ProjectsRegionsOperationsGet</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>progXgafv</a></li>
--   <li><a>progUploadProtocol</a></li>
--   <li><a>progPp</a></li>
--   <li><a>progAccessToken</a></li>
--   <li><a>progUploadType</a></li>
--   <li><a>progBearerToken</a></li>
--   <li><a>progName</a></li>
--   <li><a>progCallback</a></li>
--   </ul>
projectsRegionsOperationsGet :: Text -> ProjectsRegionsOperationsGet

-- | Gets the latest state of a long-running operation. Clients can use
--   this method to poll the operation result at intervals as recommended
--   by the API service.
--   
--   <i>See:</i> <a>projectsRegionsOperationsGet</a> smart constructor.
data ProjectsRegionsOperationsGet

-- | V1 error format.
progXgafv :: Lens' ProjectsRegionsOperationsGet (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
progUploadProtocol :: Lens' ProjectsRegionsOperationsGet (Maybe Text)

-- | Pretty-print response.
progPp :: Lens' ProjectsRegionsOperationsGet Bool

-- | OAuth access token.
progAccessToken :: Lens' ProjectsRegionsOperationsGet (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
progUploadType :: Lens' ProjectsRegionsOperationsGet (Maybe Text)

-- | OAuth bearer token.
progBearerToken :: Lens' ProjectsRegionsOperationsGet (Maybe Text)

-- | The name of the operation resource.
progName :: Lens' ProjectsRegionsOperationsGet Text

-- | JSONP
progCallback :: Lens' ProjectsRegionsOperationsGet (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Dataproc.Projects.Regions.Operations.Get.ProjectsRegionsOperationsGet
instance Data.Data.Data Network.Google.Resource.Dataproc.Projects.Regions.Operations.Get.ProjectsRegionsOperationsGet
instance GHC.Show.Show Network.Google.Resource.Dataproc.Projects.Regions.Operations.Get.ProjectsRegionsOperationsGet
instance GHC.Classes.Eq Network.Google.Resource.Dataproc.Projects.Regions.Operations.Get.ProjectsRegionsOperationsGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Dataproc.Projects.Regions.Operations.Get.ProjectsRegionsOperationsGet


-- | Lists operations that match the specified filter in the request. If
--   the server doesn't support this method, it returns `UNIMPLEMENTED`.
--   NOTE: the `name` binding below allows API services to override the
--   binding to use different resource name schemes, such as
--   `users/*/operations`.
--   
--   <i>See:</i> <a>Google Cloud Dataproc API Reference</a> for
--   <tt>dataproc.projects.regions.operations.list</tt>.
module Network.Google.Resource.Dataproc.Projects.Regions.Operations.List

-- | A resource alias for
--   <tt>dataproc.projects.regions.operations.list</tt> method which the
--   <a>ProjectsRegionsOperationsList</a> request conforms to.
type ProjectsRegionsOperationsListResource = "v1" :> (Capture "name" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "filter" Text :> (QueryParam "pageToken" Text :> (QueryParam "pageSize" (Textual Int32) :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ListOperationsResponse))))))))))))

-- | Creates a value of <a>ProjectsRegionsOperationsList</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>prolXgafv</a></li>
--   <li><a>prolUploadProtocol</a></li>
--   <li><a>prolPp</a></li>
--   <li><a>prolAccessToken</a></li>
--   <li><a>prolUploadType</a></li>
--   <li><a>prolBearerToken</a></li>
--   <li><a>prolName</a></li>
--   <li><a>prolFilter</a></li>
--   <li><a>prolPageToken</a></li>
--   <li><a>prolPageSize</a></li>
--   <li><a>prolCallback</a></li>
--   </ul>
projectsRegionsOperationsList :: Text -> ProjectsRegionsOperationsList

-- | Lists operations that match the specified filter in the request. If
--   the server doesn't support this method, it returns `UNIMPLEMENTED`.
--   NOTE: the `name` binding below allows API services to override the
--   binding to use different resource name schemes, such as
--   `users/*/operations`.
--   
--   <i>See:</i> <a>projectsRegionsOperationsList</a> smart constructor.
data ProjectsRegionsOperationsList

-- | V1 error format.
prolXgafv :: Lens' ProjectsRegionsOperationsList (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
prolUploadProtocol :: Lens' ProjectsRegionsOperationsList (Maybe Text)

-- | Pretty-print response.
prolPp :: Lens' ProjectsRegionsOperationsList Bool

-- | OAuth access token.
prolAccessToken :: Lens' ProjectsRegionsOperationsList (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
prolUploadType :: Lens' ProjectsRegionsOperationsList (Maybe Text)

-- | OAuth bearer token.
prolBearerToken :: Lens' ProjectsRegionsOperationsList (Maybe Text)

-- | The name of the operation collection.
prolName :: Lens' ProjectsRegionsOperationsList Text

-- | The standard list filter.
prolFilter :: Lens' ProjectsRegionsOperationsList (Maybe Text)

-- | The standard list page token.
prolPageToken :: Lens' ProjectsRegionsOperationsList (Maybe Text)

-- | The standard list page size.
prolPageSize :: Lens' ProjectsRegionsOperationsList (Maybe Int32)

-- | JSONP
prolCallback :: Lens' ProjectsRegionsOperationsList (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Dataproc.Projects.Regions.Operations.List.ProjectsRegionsOperationsList
instance Data.Data.Data Network.Google.Resource.Dataproc.Projects.Regions.Operations.List.ProjectsRegionsOperationsList
instance GHC.Show.Show Network.Google.Resource.Dataproc.Projects.Regions.Operations.List.ProjectsRegionsOperationsList
instance GHC.Classes.Eq Network.Google.Resource.Dataproc.Projects.Regions.Operations.List.ProjectsRegionsOperationsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Dataproc.Projects.Regions.Operations.List.ProjectsRegionsOperationsList


-- | An API for managing Hadoop-based clusters and jobs on Google Cloud
--   Platform.
--   
--   <i>See:</i> <a>Google Cloud Dataproc API Reference</a>
module Network.Google.Dataproc

-- | Default request referring to version <tt>v1</tt> of the Google Cloud
--   Dataproc API. This contains the host and root path used as a starting
--   point for constructing service requests.
dataprocService :: ServiceConfig

-- | View and manage your data across Google Cloud Platform services
cloudPlatformScope :: Proxy '["https://www.googleapis.com/auth/cloud-platform"]

-- | Represents the entirety of the methods and resources available for the
--   Google Cloud Dataproc API service.
type DataprocAPI = ProjectsRegionsJobsListResource :<|> (ProjectsRegionsJobsGetResource :<|> (ProjectsRegionsJobsSubmitResource :<|> (ProjectsRegionsJobsCancelResource :<|> (ProjectsRegionsJobsDeleteResource :<|> (ProjectsRegionsOperationsListResource :<|> (ProjectsRegionsOperationsGetResource :<|> (ProjectsRegionsOperationsCancelResource :<|> (ProjectsRegionsOperationsDeleteResource :<|> (ProjectsRegionsClustersDiagnoseResource :<|> (ProjectsRegionsClustersListResource :<|> (ProjectsRegionsClustersPatchResource :<|> (ProjectsRegionsClustersGetResource :<|> (ProjectsRegionsClustersCreateResource :<|> ProjectsRegionsClustersDeleteResource)))))))))))))

-- | Encapsulates the full scoping used to reference a job.
--   
--   <i>See:</i> <a>jobReference</a> smart constructor.
data JobReference

-- | Creates a value of <a>JobReference</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jrJobId</a></li>
--   <li><a>jrProjectId</a></li>
--   </ul>
jobReference :: JobReference

-- | <ul>
--   <li><i>Optional</i> The job ID, which must be unique within the
--   project. The job ID is generated by the server upon job submission or
--   provided by the user as a means to perform retries without creating
--   duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers
--   (0-9), underscores (_), or hyphens (-). The maximum length is 512
--   characters.</li>
--   </ul>
jrJobId :: Lens' JobReference (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The ID of the Google Cloud Platform project that
--   the job belongs to.</li>
--   </ul>
jrProjectId :: Lens' JobReference (Maybe Text)

-- | 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 <a>gRPC</a>. The error model is designed to be: - Simple
--   to use and understand for most users - Flexible enough to meet
--   unexpected needs # Overview The `Status` message contains three pieces
--   of data: error code, error message, and error details. The error code
--   should be an enum value of google.rpc.Code, but it may accept
--   additional error codes if needed. The error message should be a
--   developer-facing English message that helps developers *understand*
--   and *resolve* the error. If a localized user-facing error message is
--   needed, put the localized message in the error details or localize it
--   in the client. The optional error details may contain arbitrary
--   information about the error. There is a predefined set of error detail
--   types in the package `google.rpc` which can be used for common error
--   conditions. # Language mapping The `Status` message is the logical
--   representation of the error model, but it is not necessarily the
--   actual wire format. When the `Status` message is exposed in different
--   client libraries and different wire protocols, it can be mapped
--   differently. For example, it will likely be mapped to some exceptions
--   in Java, but more likely mapped to some error codes in C. # Other uses
--   The error model and the `Status` message can be used in a variety of
--   environments, either with or without APIs, to provide a consistent
--   developer experience across different environments. Example uses of
--   this error model include: - Partial errors. If a service needs to
--   return partial errors to the client, it may embed the `Status` in the
--   normal response to indicate the partial errors. - Workflow errors. A
--   typical workflow has multiple steps. Each step may have a `Status`
--   message for error reporting purpose. - Batch operations. If a client
--   uses batch request and batch response, the `Status` message should be
--   used directly inside batch response, one for each error sub-response.
--   - Asynchronous operations. If an API call embeds asynchronous
--   operation results in its response, the status of those operations
--   should be represented directly using the `Status` message. - Logging.
--   If some API errors are stored in logs, the message `Status` could be
--   used directly after any stripping needed for security/privacy reasons.
--   
--   <i>See:</i> <a>status</a> smart constructor.
data Status

-- | Creates a value of <a>Status</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sDetails</a></li>
--   <li><a>sCode</a></li>
--   <li><a>sMessage</a></li>
--   </ul>
status :: Status

-- | A list of messages that carry the error details. There will be a
--   common set of message types for APIs to use.
sDetails :: Lens' Status [StatusDetailsItem]

-- | The status code, which should be an enum value of google.rpc.Code.
sCode :: Lens' Status (Maybe Int32)

-- | 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.
sMessage :: Lens' Status (Maybe Text)

-- | 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.
--   
--   <i>See:</i> <a>operationSchema</a> smart constructor.
data OperationSchema

-- | Creates a value of <a>OperationSchema</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>osAddtional</a></li>
--   </ul>
operationSchema :: HashMap Text JSONValue -> OperationSchema

-- | Properties of the object. Contains field 'type with type URL.
osAddtional :: Lens' OperationSchema (HashMap Text JSONValue)

-- | <ul>
--   <li><i>Optional</i> A mapping of property names to values, used to
--   configure PySpark. Properties that conflict with values set by the
--   Cloud Dataproc API may be overwritten. Can include properties set in
--   /etc/spark/conf/spark-defaults.conf and classes in user code.</li>
--   </ul>
--   
--   <i>See:</i> <a>pySparkJobProperties</a> smart constructor.
data PySparkJobProperties

-- | Creates a value of <a>PySparkJobProperties</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>psjpAddtional</a></li>
--   </ul>
pySparkJobProperties :: HashMap Text Text -> PySparkJobProperties
psjpAddtional :: Lens' PySparkJobProperties (HashMap Text Text)

-- | The location of diagnostic output.
--   
--   <i>See:</i> <a>diagnoseClusterResults</a> smart constructor.
data DiagnoseClusterResults

-- | Creates a value of <a>DiagnoseClusterResults</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dcrOutputURI</a></li>
--   </ul>
diagnoseClusterResults :: DiagnoseClusterResults

-- | <ul>
--   <li><i>Output-only</i> The Google Cloud Storage URI of the diagnostic
--   output. The output report is a plain text file with a summary of
--   collected diagnostics.</li>
--   </ul>
dcrOutputURI :: Lens' DiagnoseClusterResults (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> The config settings for Google Compute Engine
--   resources in an instance group, such as a master or worker group.</li>
--   </ul>
--   
--   <i>See:</i> <a>instanceGroupConfig</a> smart constructor.
data InstanceGroupConfig

-- | Creates a value of <a>InstanceGroupConfig</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>igcNumInstances</a></li>
--   <li><a>igcDiskConfig</a></li>
--   <li><a>igcIsPreemptible</a></li>
--   <li><a>igcImageURI</a></li>
--   <li><a>igcInstanceNames</a></li>
--   <li><a>igcManagedGroupConfig</a></li>
--   <li><a>igcMachineTypeURI</a></li>
--   </ul>
instanceGroupConfig :: InstanceGroupConfig

-- | <ul>
--   <li><i>Required</i> The number of VM instances in the instance group.
--   For master instance groups, must be set to 1.</li>
--   </ul>
igcNumInstances :: Lens' InstanceGroupConfig (Maybe Int32)

-- | <ul>
--   <li><i>Optional</i> Disk option config settings.</li>
--   </ul>
igcDiskConfig :: Lens' InstanceGroupConfig (Maybe DiskConfig)

-- | <ul>
--   <li><i>Optional</i> Specifies that this instance group contains
--   preemptible instances.</li>
--   </ul>
igcIsPreemptible :: Lens' InstanceGroupConfig (Maybe Bool)

-- | <ul>
--   <li><i>Output-only</i> The Google Compute Engine image resource used
--   for cluster instances. Inferred from
--   `SoftwareConfig.image_version`.</li>
--   </ul>
igcImageURI :: Lens' InstanceGroupConfig (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> The list of instance names. Cloud Dataproc derives
--   the names from `cluster_name`, `num_instances`, and the instance group
--   if not set by user (recommended practice is to let Cloud Dataproc
--   derive the name).</li>
--   </ul>
igcInstanceNames :: Lens' InstanceGroupConfig [Text]

-- | <ul>
--   <li><i>Output-only</i> The config for Google Compute Engine Instance
--   Group Manager that manages this group. This is only used for
--   preemptible instance groups.</li>
--   </ul>
igcManagedGroupConfig :: Lens' InstanceGroupConfig (Maybe ManagedGroupConfig)

-- | <ul>
--   <li><i>Required</i> The Google Compute Engine machine type used for
--   cluster instances. Example:
--   `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2`.</li>
--   </ul>
igcMachineTypeURI :: Lens' InstanceGroupConfig (Maybe Text)

-- | A Cloud Dataproc job for running <a>Apache Spark</a> applications on
--   YARN.
--   
--   <i>See:</i> <a>sparkJob</a> smart constructor.
data SparkJob

-- | Creates a value of <a>SparkJob</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sjArgs</a></li>
--   <li><a>sjMainJarFileURI</a></li>
--   <li><a>sjJarFileURIs</a></li>
--   <li><a>sjFileURIs</a></li>
--   <li><a>sjArchiveURIs</a></li>
--   <li><a>sjMainClass</a></li>
--   <li><a>sjLoggingConfig</a></li>
--   <li><a>sjProperties</a></li>
--   </ul>
sparkJob :: SparkJob

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
sjArgs :: Lens' SparkJob [Text]

-- | The HCFS URI of the jar file that contains the main class.
sjMainJarFileURI :: Lens' SparkJob (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> HCFS URIs of jar files to add to the CLASSPATHs of
--   the Spark driver and tasks.</li>
--   </ul>
sjJarFileURIs :: Lens' SparkJob [Text]

-- | <ul>
--   <li><i>Optional</i> HCFS URIs of files to be copied to the working
--   directory of Spark drivers and distributed tasks. Useful for naively
--   parallel tasks.</li>
--   </ul>
sjFileURIs :: Lens' SparkJob [Text]

-- | <ul>
--   <li><i>Optional</i> HCFS URIs of archives to be extracted in the
--   working directory of Spark drivers and tasks. Supported file types:
--   .jar, .tar, .tar.gz, .tgz, and .zip.</li>
--   </ul>
sjArchiveURIs :: Lens' SparkJob [Text]

-- | The name of the driver's main class. The jar file that contains the
--   class must be in the default CLASSPATH or specified in
--   `jar_file_uris`.
sjMainClass :: Lens' SparkJob (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> The runtime log config for job execution.</li>
--   </ul>
sjLoggingConfig :: Lens' SparkJob (Maybe LoggingConfig)

-- | <ul>
--   <li><i>Optional</i> A mapping of property names to values, used to
--   configure Spark. Properties that conflict with values set by the Cloud
--   Dataproc API may be overwritten. Can include properties set in
--   /etc/spark/conf/spark-defaults.conf and classes in user code.</li>
--   </ul>
sjProperties :: Lens' SparkJob (Maybe SparkJobProperties)

-- | <ul>
--   <li><i>Optional</i> The properties to set on daemon config files.
--   Property keys are specified in `prefix:property` format, such as
--   `core:fs.defaultFS`. The following are supported prefixes and their
--   mappings: * core: `core-site.xml` * hdfs: `hdfs-site.xml` * mapred:
--   `mapred-site.xml` * yarn: `yarn-site.xml` * hive: `hive-site.xml` *
--   pig: `pig.properties` * spark: `spark-defaults.conf`</li>
--   </ul>
--   
--   <i>See:</i> <a>softwareConfigProperties</a> smart constructor.
data SoftwareConfigProperties

-- | Creates a value of <a>SoftwareConfigProperties</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>scpAddtional</a></li>
--   </ul>
softwareConfigProperties :: HashMap Text Text -> SoftwareConfigProperties
scpAddtional :: Lens' SoftwareConfigProperties (HashMap Text Text)

-- | Specifies the config of disk options for a group of VM instances.
--   
--   <i>See:</i> <a>diskConfig</a> smart constructor.
data DiskConfig

-- | Creates a value of <a>DiskConfig</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dcNumLocalSsds</a></li>
--   <li><a>dcBootDiskSizeGb</a></li>
--   </ul>
diskConfig :: DiskConfig

-- | <ul>
--   <li><i>Optional</i> 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</li>
--   <li><i>HDFS</i>
--   (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.</li>
--   </ul>
dcNumLocalSsds :: Lens' DiskConfig (Maybe Int32)

-- | <ul>
--   <li><i>Optional</i> Size in GB of the boot disk (default is
--   500GB).</li>
--   </ul>
dcBootDiskSizeGb :: Lens' DiskConfig (Maybe Int32)

-- | <ul>
--   <li><i>Output-only</i> labels associated with the operation</li>
--   </ul>
--   
--   <i>See:</i> <a>clusterOperationMetadataLabels</a> smart constructor.
data ClusterOperationMetadataLabels

-- | Creates a value of <a>ClusterOperationMetadataLabels</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>comlAddtional</a></li>
--   </ul>
clusterOperationMetadataLabels :: HashMap Text Text -> ClusterOperationMetadataLabels
comlAddtional :: Lens' ClusterOperationMetadataLabels (HashMap Text Text)

-- | The response message for Operations.ListOperations.
--   
--   <i>See:</i> <a>listOperationsResponse</a> smart constructor.
data ListOperationsResponse

-- | Creates a value of <a>ListOperationsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lorNextPageToken</a></li>
--   <li><a>lorOperations</a></li>
--   </ul>
listOperationsResponse :: ListOperationsResponse

-- | The standard List next-page token.
lorNextPageToken :: Lens' ListOperationsResponse (Maybe Text)

-- | A list of operations that matches the specified filter in the request.
lorOperations :: Lens' ListOperationsResponse [Operation]

-- | <ul>
--   <li><i>Optional</i> Mapping of query variable names to values
--   (equivalent to the Hive command: `SET name="value";`).</li>
--   </ul>
--   
--   <i>See:</i> <a>hiveJobScriptVariables</a> smart constructor.
data HiveJobScriptVariables

-- | Creates a value of <a>HiveJobScriptVariables</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>hjsvAddtional</a></li>
--   </ul>
hiveJobScriptVariables :: HashMap Text Text -> HiveJobScriptVariables
hjsvAddtional :: Lens' HiveJobScriptVariables (HashMap Text Text)

-- | Describes the identifying information, config, and status of a cluster
--   of Google Compute Engine instances.
--   
--   <i>See:</i> <a>cluster</a> smart constructor.
data Cluster

-- | Creates a value of <a>Cluster</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cStatus</a></li>
--   <li><a>cMetrics</a></li>
--   <li><a>cClusterUuid</a></li>
--   <li><a>cConfig</a></li>
--   <li><a>cClusterName</a></li>
--   <li><a>cLabels</a></li>
--   <li><a>cProjectId</a></li>
--   <li><a>cStatusHistory</a></li>
--   </ul>
cluster :: Cluster

-- | <ul>
--   <li><i>Output-only</i> Cluster status.</li>
--   </ul>
cStatus :: Lens' Cluster (Maybe ClusterStatus)

-- | Contains cluster daemon metrics such as HDFS and YARN stats. **Beta
--   Feature**: This report is available for testing purposes only. It may
--   be changed before final release.
cMetrics :: Lens' Cluster (Maybe ClusterMetrics)

-- | <ul>
--   <li><i>Output-only</i> A cluster UUID (Unique Universal Identifier).
--   Cloud Dataproc generates this value when it creates the cluster.</li>
--   </ul>
cClusterUuid :: Lens' Cluster (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The cluster config. Note that Cloud Dataproc may
--   set default values, and values may change when clusters are
--   updated.</li>
--   </ul>
cConfig :: Lens' Cluster (Maybe ClusterConfig)

-- | <ul>
--   <li><i>Required</i> The cluster name. Cluster names within a project
--   must be unique. Names of deleted clusters can be reused.</li>
--   </ul>
cClusterName :: Lens' Cluster (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> The labels to associate with this cluster. Label
--   **keys** must contain 1 to 63 characters, and must conform to <a>RFC
--   1035</a>. Label **values** may be empty, but, if present, must contain
--   1 to 63 characters, and must conform to <a>RFC 1035</a>. No more than
--   32 labels can be associated with a cluster.</li>
--   </ul>
cLabels :: Lens' Cluster (Maybe ClusterLabels)

-- | <ul>
--   <li><i>Required</i> The Google Cloud Platform project ID that the
--   cluster belongs to.</li>
--   </ul>
cProjectId :: Lens' Cluster (Maybe Text)

-- | <ul>
--   <li><i>Output-only</i> The previous cluster status.</li>
--   </ul>
cStatusHistory :: Lens' Cluster [ClusterStatus]

-- | <ul>
--   <li><i>Optional</i> The labels to associate with this job. Label
--   **keys** must contain 1 to 63 characters, and must conform to <a>RFC
--   1035</a>. Label **values** may be empty, but, if present, must contain
--   1 to 63 characters, and must conform to <a>RFC 1035</a>. No more than
--   32 labels can be associated with a job.</li>
--   </ul>
--   
--   <i>See:</i> <a>jobLabels</a> smart constructor.
data JobLabels

-- | Creates a value of <a>JobLabels</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jlAddtional</a></li>
--   </ul>
jobLabels :: HashMap Text Text -> JobLabels
jlAddtional :: Lens' JobLabels (HashMap Text Text)

-- | A request to submit a job.
--   
--   <i>See:</i> <a>submitJobRequest</a> smart constructor.
data SubmitJobRequest

-- | Creates a value of <a>SubmitJobRequest</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sjrJob</a></li>
--   </ul>
submitJobRequest :: SubmitJobRequest

-- | <ul>
--   <li><i>Required</i> The job resource.</li>
--   </ul>
sjrJob :: Lens' SubmitJobRequest (Maybe Job)

-- | Contains cluster daemon metrics, such as HDFS and YARN stats. **Beta
--   Feature**: This report is available for testing purposes only. It may
--   be changed before final release.
--   
--   <i>See:</i> <a>clusterMetrics</a> smart constructor.
data ClusterMetrics

-- | Creates a value of <a>ClusterMetrics</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cmYarnMetrics</a></li>
--   <li><a>cmHdfsMetrics</a></li>
--   </ul>
clusterMetrics :: ClusterMetrics

-- | The YARN metrics.
cmYarnMetrics :: Lens' ClusterMetrics (Maybe ClusterMetricsYarnMetrics)

-- | The HDFS metrics.
cmHdfsMetrics :: Lens' ClusterMetrics (Maybe ClusterMetricsHdfsMetrics)

-- | This resource represents a long-running operation that is the result
--   of a network API call.
--   
--   <i>See:</i> <a>operation</a> smart constructor.
data Operation

-- | Creates a value of <a>Operation</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>oDone</a></li>
--   <li><a>oError</a></li>
--   <li><a>oResponse</a></li>
--   <li><a>oName</a></li>
--   <li><a>oMetadata</a></li>
--   </ul>
operation :: Operation

-- | 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.
oDone :: Lens' Operation (Maybe Bool)

-- | The error result of the operation in case of failure or cancellation.
oError :: Lens' Operation (Maybe Status)

-- | 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`.
oResponse :: Lens' Operation (Maybe OperationResponse)

-- | 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 have the format of `operations/some/unique/name`.
oName :: Lens' Operation (Maybe Text)

-- | 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.
oMetadata :: Lens' Operation (Maybe OperationSchema)

-- | 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 `{}`.
--   
--   <i>See:</i> <a>empty</a> smart constructor.
data Empty

-- | Creates a value of <a>Empty</a> with the minimum fields required to
--   make a request.
empty :: Empty

-- | A Cloud Dataproc job for running <a>Apache Hive</a> queries on YARN.
--   
--   <i>See:</i> <a>hiveJob</a> smart constructor.
data HiveJob

-- | Creates a value of <a>HiveJob</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>hjQueryFileURI</a></li>
--   <li><a>hjJarFileURIs</a></li>
--   <li><a>hjScriptVariables</a></li>
--   <li><a>hjQueryList</a></li>
--   <li><a>hjContinueOnFailure</a></li>
--   <li><a>hjProperties</a></li>
--   </ul>
hiveJob :: HiveJob

-- | The HCFS URI of the script that contains Hive queries.
hjQueryFileURI :: Lens' HiveJob (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
hjJarFileURIs :: Lens' HiveJob [Text]

-- | <ul>
--   <li><i>Optional</i> Mapping of query variable names to values
--   (equivalent to the Hive command: `SET name="value";`).</li>
--   </ul>
hjScriptVariables :: Lens' HiveJob (Maybe HiveJobScriptVariables)

-- | A list of queries.
hjQueryList :: Lens' HiveJob (Maybe QueryList)

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
hjContinueOnFailure :: Lens' HiveJob (Maybe Bool)

-- | <ul>
--   <li><i>Optional</i> A mapping of property names and values, used to
--   configure Hive. Properties that conflict with values set by the Cloud
--   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.</li>
--   </ul>
hjProperties :: Lens' HiveJob (Maybe HiveJobProperties)

-- | <ul>
--   <li><i>Optional</i> Mapping of query variable names to values
--   (equivalent to the Spark SQL command: SET `name="value";`).</li>
--   </ul>
--   
--   <i>See:</i> <a>sparkSQLJobScriptVariables</a> smart constructor.
data SparkSQLJobScriptVariables

-- | Creates a value of <a>SparkSQLJobScriptVariables</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ssqljsvAddtional</a></li>
--   </ul>
sparkSQLJobScriptVariables :: HashMap Text Text -> SparkSQLJobScriptVariables
ssqljsvAddtional :: Lens' SparkSQLJobScriptVariables (HashMap Text Text)

-- | <ul>
--   <li><i>Optional</i> A mapping of property names to values, used to
--   configure Pig. Properties that conflict with values set by the Cloud
--   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.</li>
--   </ul>
--   
--   <i>See:</i> <a>pigJobProperties</a> smart constructor.
data PigJobProperties

-- | Creates a value of <a>PigJobProperties</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pjpAddtional</a></li>
--   </ul>
pigJobProperties :: HashMap Text Text -> PigJobProperties
pjpAddtional :: Lens' PigJobProperties (HashMap Text Text)

-- | The cluster config.
--   
--   <i>See:</i> <a>clusterConfig</a> smart constructor.
data ClusterConfig

-- | Creates a value of <a>ClusterConfig</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ccWorkerConfig</a></li>
--   <li><a>ccInitializationActions</a></li>
--   <li><a>ccMasterConfig</a></li>
--   <li><a>ccGceClusterConfig</a></li>
--   <li><a>ccConfigBucket</a></li>
--   <li><a>ccSoftwareConfig</a></li>
--   <li><a>ccSecondaryWorkerConfig</a></li>
--   </ul>
clusterConfig :: ClusterConfig

-- | <ul>
--   <li><i>Optional</i> The Google Compute Engine config settings for
--   worker instances in a cluster.</li>
--   </ul>
ccWorkerConfig :: Lens' ClusterConfig (Maybe InstanceGroupConfig)

-- | <ul>
--   <li><i>Optional</i> Commands to execute on each node after config is
--   completed. By default, executables are run on master and all worker
--   nodes. You can test a node's role metadata to run an executable on a
--   master or worker node, as shown below using `curl` (you can also use
--   `wget`): ROLE=$(curl -H Metadata-Flavor:Google
--   http://metadata/computeMetadata/v1/instance/attributes/dataproc-role)
--   if [[ "${ROLE}" == 'Master' ]]; then ... master specific actions ...
--   else ... worker specific actions ... fi</li>
--   </ul>
ccInitializationActions :: Lens' ClusterConfig [NodeInitializationAction]

-- | <ul>
--   <li><i>Optional</i> The Google Compute Engine config settings for the
--   master instance in a cluster.</li>
--   </ul>
ccMasterConfig :: Lens' ClusterConfig (Maybe InstanceGroupConfig)

-- | <ul>
--   <li><i>Required</i> The shared Google Compute Engine config settings
--   for all instances in a cluster.</li>
--   </ul>
ccGceClusterConfig :: Lens' ClusterConfig (Maybe GceClusterConfig)

-- | <ul>
--   <li><i>Optional</i> A Google Cloud Storage staging bucket used for
--   sharing generated SSH keys and config. If you do not specify a staging
--   bucket, Cloud Dataproc will determine an appropriate Cloud Storage
--   location (US, ASIA, or EU) for your cluster's staging bucket according
--   to the Google Compute Engine zone where your cluster is deployed, and
--   then it will create and manage this project-level, per-location bucket
--   for you.</li>
--   </ul>
ccConfigBucket :: Lens' ClusterConfig (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> The config settings for software inside the
--   cluster.</li>
--   </ul>
ccSoftwareConfig :: Lens' ClusterConfig (Maybe SoftwareConfig)

-- | <ul>
--   <li><i>Optional</i> The Google Compute Engine config settings for
--   additional worker instances in a cluster.</li>
--   </ul>
ccSecondaryWorkerConfig :: Lens' ClusterConfig (Maybe InstanceGroupConfig)

-- | <ul>
--   <li><i>Optional</i> A mapping of property names to values, used to
--   configure Hadoop. Properties that conflict with values set by the
--   Cloud Dataproc API may be overwritten. Can include properties set in
--   /etc/hadoop/conf/*-site and classes in user code.</li>
--   </ul>
--   
--   <i>See:</i> <a>hadoopJobProperties</a> smart constructor.
data HadoopJobProperties

-- | Creates a value of <a>HadoopJobProperties</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>hjpAddtional</a></li>
--   </ul>
hadoopJobProperties :: HashMap Text Text -> HadoopJobProperties
hjpAddtional :: Lens' HadoopJobProperties (HashMap Text Text)

-- | The status of the operation.
--   
--   <i>See:</i> <a>clusterOperationStatus</a> smart constructor.
data ClusterOperationStatus

-- | Creates a value of <a>ClusterOperationStatus</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cosState</a></li>
--   <li><a>cosInnerState</a></li>
--   <li><a>cosStateStartTime</a></li>
--   <li><a>cosDetails</a></li>
--   </ul>
clusterOperationStatus :: ClusterOperationStatus

-- | <ul>
--   <li><i>Output-only</i> A message containing the operation state.</li>
--   </ul>
cosState :: Lens' ClusterOperationStatus (Maybe Text)

-- | <ul>
--   <li><i>Output-only</i> A message containing the detailed operation
--   state.</li>
--   </ul>
cosInnerState :: Lens' ClusterOperationStatus (Maybe Text)

-- | <ul>
--   <li><i>Output-only</i> The time this state was entered.</li>
--   </ul>
cosStateStartTime :: Lens' ClusterOperationStatus (Maybe Text)

-- | <ul>
--   <li><i>Output-only</i> A message containing any operation metadata
--   details.</li>
--   </ul>
cosDetails :: Lens' ClusterOperationStatus (Maybe Text)
data StatusDetailsItem

-- | Creates a value of <a>StatusDetailsItem</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sdiAddtional</a></li>
--   </ul>
statusDetailsItem :: HashMap Text JSONValue -> StatusDetailsItem

-- | Properties of the object. Contains field 'type with type URL.
sdiAddtional :: Lens' StatusDetailsItem (HashMap Text JSONValue)

-- | <ul>
--   <li><i>Optional</i> A mapping of property names to values, used to
--   configure Spark SQL's SparkConf. Properties that conflict with values
--   set by the Cloud Dataproc API may be overwritten.</li>
--   </ul>
--   
--   <i>See:</i> <a>sparkSQLJobProperties</a> smart constructor.
data SparkSQLJobProperties

-- | Creates a value of <a>SparkSQLJobProperties</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ssqljpAddtional</a></li>
--   </ul>
sparkSQLJobProperties :: HashMap Text Text -> SparkSQLJobProperties
ssqljpAddtional :: Lens' SparkSQLJobProperties (HashMap Text Text)

-- | Specifies an executable to run on a fully configured node and a
--   timeout period for executable completion.
--   
--   <i>See:</i> <a>nodeInitializationAction</a> smart constructor.
data NodeInitializationAction

-- | Creates a value of <a>NodeInitializationAction</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>niaExecutionTimeout</a></li>
--   <li><a>niaExecutableFile</a></li>
--   </ul>
nodeInitializationAction :: NodeInitializationAction

-- | <ul>
--   <li><i>Optional</i> Amount of time executable has to complete. Default
--   is 10 minutes. 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.</li>
--   </ul>
niaExecutionTimeout :: Lens' NodeInitializationAction (Maybe Text)

-- | <ul>
--   <li><i>Required</i> Google Cloud Storage URI of executable file.</li>
--   </ul>
niaExecutableFile :: Lens' NodeInitializationAction (Maybe Text)

-- | The YARN metrics.
--   
--   <i>See:</i> <a>clusterMetricsYarnMetrics</a> smart constructor.
data ClusterMetricsYarnMetrics

-- | Creates a value of <a>ClusterMetricsYarnMetrics</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cmymAddtional</a></li>
--   </ul>
clusterMetricsYarnMetrics :: HashMap Text Int64 -> ClusterMetricsYarnMetrics
cmymAddtional :: Lens' ClusterMetricsYarnMetrics (HashMap Text Int64)

-- | Cloud Dataproc job config.
--   
--   <i>See:</i> <a>jobPlacement</a> smart constructor.
data JobPlacement

-- | Creates a value of <a>JobPlacement</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jpClusterUuid</a></li>
--   <li><a>jpClusterName</a></li>
--   </ul>
jobPlacement :: JobPlacement

-- | <ul>
--   <li><i>Output-only</i> A cluster UUID generated by the Cloud Dataproc
--   service when the job is submitted.</li>
--   </ul>
jpClusterUuid :: Lens' JobPlacement (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The name of the cluster where the job will be
--   submitted.</li>
--   </ul>
jpClusterName :: Lens' JobPlacement (Maybe Text)

-- | Common config settings for resources of Google Compute Engine cluster
--   instances, applicable to all instances in the cluster.
--   
--   <i>See:</i> <a>gceClusterConfig</a> smart constructor.
data GceClusterConfig

-- | Creates a value of <a>GceClusterConfig</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gccSubnetworkURI</a></li>
--   <li><a>gccInternalIPOnly</a></li>
--   <li><a>gccNetworkURI</a></li>
--   <li><a>gccZoneURI</a></li>
--   <li><a>gccMetadata</a></li>
--   <li><a>gccServiceAccountScopes</a></li>
--   <li><a>gccTags</a></li>
--   </ul>
gceClusterConfig :: GceClusterConfig

-- | <ul>
--   <li><i>Optional</i> The Google Compute Engine subnetwork to be used
--   for machine communications. Cannot be specified with network_uri.
--   Example:
--   `https://www.googleapis.com/compute/v1/projects/[project_id]/regions/us-east1/sub0`.</li>
--   </ul>
gccSubnetworkURI :: Lens' GceClusterConfig (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
gccInternalIPOnly :: Lens' GceClusterConfig (Maybe Bool)

-- | <ul>
--   <li><i>Optional</i> The Google 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 "default"
--   network of the project is used, if it exists. Cannot be a "Custom
--   Subnet Network" (see <a>Using Subnetworks</a> for more information).
--   Example:
--   `https://www.googleapis.com/compute/v1/projects/[project_id]/regions/global/default`.</li>
--   </ul>
gccNetworkURI :: Lens' GceClusterConfig (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The zone where the Google Compute Engine cluster
--   will be located. Example:
--   `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/[zone]`.</li>
--   </ul>
gccZoneURI :: Lens' GceClusterConfig (Maybe Text)

-- | The Google Compute Engine metadata entries to add to all instances
--   (see <a>Project and instance metadata</a>).
gccMetadata :: Lens' GceClusterConfig (Maybe GceClusterConfigMetadata)

-- | <ul>
--   <li><i>Optional</i> The URIs of service account scopes to be included
--   in Google Compute Engine instances. The following base set of scopes
--   is always included: *
--   https://www.googleapis.com/auth/cloud.useraccounts.readonly *
--   https://www.googleapis.com/auth/devstorage.read_write *
--   https://www.googleapis.com/auth/logging.write If no scopes are
--   specified, the following defaults are also provided: *
--   https://www.googleapis.com/auth/bigquery *
--   https://www.googleapis.com/auth/bigtable.admin.table *
--   https://www.googleapis.com/auth/bigtable.data *
--   https://www.googleapis.com/auth/devstorage.full_control</li>
--   </ul>
gccServiceAccountScopes :: Lens' GceClusterConfig [Text]

-- | The Google Compute Engine tags to add to all instances (see <a>Tagging
--   instances</a>).
gccTags :: Lens' GceClusterConfig [Text]

-- | The status of the operation.
--   
--   <i>See:</i> <a>operationStatus</a> smart constructor.
data OperationStatus

-- | Creates a value of <a>OperationStatus</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>osState</a></li>
--   <li><a>osInnerState</a></li>
--   <li><a>osStateStartTime</a></li>
--   <li><a>osDetails</a></li>
--   </ul>
operationStatus :: OperationStatus

-- | A message containing the operation state.
osState :: Lens' OperationStatus (Maybe Text)

-- | A message containing the detailed operation state.
osInnerState :: Lens' OperationStatus (Maybe Text)

-- | The time this state was entered.
osStateStartTime :: Lens' OperationStatus (Maybe Text)

-- | A message containing any operation metadata details.
osDetails :: Lens' OperationStatus (Maybe Text)

-- | The Google Compute Engine metadata entries to add to all instances
--   (see <a>Project and instance metadata</a>).
--   
--   <i>See:</i> <a>gceClusterConfigMetadata</a> smart constructor.
data GceClusterConfigMetadata

-- | Creates a value of <a>GceClusterConfigMetadata</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gccmAddtional</a></li>
--   </ul>
gceClusterConfigMetadata :: HashMap Text Text -> GceClusterConfigMetadata
gccmAddtional :: Lens' GceClusterConfigMetadata (HashMap Text Text)

-- | <ul>
--   <li><i>Optional</i> A mapping of property names and values, used to
--   configure Hive. Properties that conflict with values set by the Cloud
--   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.</li>
--   </ul>
--   
--   <i>See:</i> <a>hiveJobProperties</a> smart constructor.
data HiveJobProperties

-- | Creates a value of <a>HiveJobProperties</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>hAddtional</a></li>
--   </ul>
hiveJobProperties :: HashMap Text Text -> HiveJobProperties
hAddtional :: Lens' HiveJobProperties (HashMap Text Text)

-- | The location where output from diagnostic command can be found.
--   
--   <i>See:</i> <a>diagnoseClusterOutputLocation</a> smart constructor.
data DiagnoseClusterOutputLocation

-- | Creates a value of <a>DiagnoseClusterOutputLocation</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dcolOutputURI</a></li>
--   </ul>
diagnoseClusterOutputLocation :: DiagnoseClusterOutputLocation

-- | <ul>
--   <li><i>Output-only</i> The Google Cloud Storage URI of the diagnostic
--   output. This will be a plain text file with summary of collected
--   diagnostics.</li>
--   </ul>
dcolOutputURI :: Lens' DiagnoseClusterOutputLocation (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> The labels to associate with this cluster. Label
--   **keys** must contain 1 to 63 characters, and must conform to <a>RFC
--   1035</a>. Label **values** may be empty, but, if present, must contain
--   1 to 63 characters, and must conform to <a>RFC 1035</a>. No more than
--   32 labels can be associated with a cluster.</li>
--   </ul>
--   
--   <i>See:</i> <a>clusterLabels</a> smart constructor.
data ClusterLabels

-- | Creates a value of <a>ClusterLabels</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>clAddtional</a></li>
--   </ul>
clusterLabels :: HashMap Text Text -> ClusterLabels
clAddtional :: Lens' ClusterLabels (HashMap Text Text)

-- | A Cloud Dataproc job resource.
--   
--   <i>See:</i> <a>job</a> smart constructor.
data Job

-- | Creates a value of <a>Job</a> with the minimum fields required to make
--   a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jSparkJob</a></li>
--   <li><a>jStatus</a></li>
--   <li><a>jDriverControlFilesURI</a></li>
--   <li><a>jHiveJob</a></li>
--   <li><a>jReference</a></li>
--   <li><a>jSparkSQLJob</a></li>
--   <li><a>jHadoopJob</a></li>
--   <li><a>jYarnApplications</a></li>
--   <li><a>jLabels</a></li>
--   <li><a>jPysparkJob</a></li>
--   <li><a>jDriverOutputResourceURI</a></li>
--   <li><a>jStatusHistory</a></li>
--   <li><a>jPlacement</a></li>
--   <li><a>jPigJob</a></li>
--   </ul>
job :: Job

-- | Job is a Spark job.
jSparkJob :: Lens' Job (Maybe SparkJob)

-- | <ul>
--   <li><i>Output-only</i> The job status. Additional application-specific
--   status information may be contained in the type_job and
--   yarn_applications fields.</li>
--   </ul>
jStatus :: Lens' Job (Maybe JobStatus)

-- | <ul>
--   <li><i>Output-only</i> If present, the location of miscellaneous
--   control files which may be used as part of job setup and handling. If
--   not present, control files may be placed in the same location as
--   `driver_output_uri`.</li>
--   </ul>
jDriverControlFilesURI :: Lens' Job (Maybe Text)

-- | Job is a Hive job.
jHiveJob :: Lens' Job (Maybe HiveJob)

-- | <ul>
--   <li><i>Optional</i> The fully qualified reference to the job, which
--   can be used to obtain the equivalent REST path of the job resource. If
--   this property is not specified when a job is created, the server
--   generates a job_id.</li>
--   </ul>
jReference :: Lens' Job (Maybe JobReference)

-- | Job is a SparkSql job.
jSparkSQLJob :: Lens' Job (Maybe SparkSQLJob)

-- | Job is a Hadoop job.
jHadoopJob :: Lens' Job (Maybe HadoopJob)

-- | <ul>
--   <li><i>Output-only</i> The collection of YARN applications spun up by
--   this job. **Beta** Feature: This report is available for testing
--   purposes only. It may be changed before final release.</li>
--   </ul>
jYarnApplications :: Lens' Job [YarnApplication]

-- | <ul>
--   <li><i>Optional</i> The labels to associate with this job. Label
--   **keys** must contain 1 to 63 characters, and must conform to <a>RFC
--   1035</a>. Label **values** may be empty, but, if present, must contain
--   1 to 63 characters, and must conform to <a>RFC 1035</a>. No more than
--   32 labels can be associated with a job.</li>
--   </ul>
jLabels :: Lens' Job (Maybe JobLabels)

-- | Job is a Pyspark job.
jPysparkJob :: Lens' Job (Maybe PySparkJob)

-- | <ul>
--   <li><i>Output-only</i> A URI pointing to the location of the stdout of
--   the job's driver program.</li>
--   </ul>
jDriverOutputResourceURI :: Lens' Job (Maybe Text)

-- | <ul>
--   <li><i>Output-only</i> The previous job status.</li>
--   </ul>
jStatusHistory :: Lens' Job [JobStatus]

-- | <ul>
--   <li><i>Required</i> Job information, including how, when, and where to
--   run the job.</li>
--   </ul>
jPlacement :: Lens' Job (Maybe JobPlacement)

-- | Job is a Pig job.
jPigJob :: Lens' Job (Maybe PigJob)

-- | A request to collect cluster diagnostic information.
--   
--   <i>See:</i> <a>diagnoseClusterRequest</a> smart constructor.
data DiagnoseClusterRequest

-- | Creates a value of <a>DiagnoseClusterRequest</a> with the minimum
--   fields required to make a request.
diagnoseClusterRequest :: DiagnoseClusterRequest

-- | A Cloud Dataproc job for running <a>Apache Hadoop MapReduce</a> jobs
--   on <a>Apache Hadoop YARN</a>.
--   
--   <i>See:</i> <a>hadoopJob</a> smart constructor.
data HadoopJob

-- | Creates a value of <a>HadoopJob</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>hArgs</a></li>
--   <li><a>hMainJarFileURI</a></li>
--   <li><a>hJarFileURIs</a></li>
--   <li><a>hFileURIs</a></li>
--   <li><a>hArchiveURIs</a></li>
--   <li><a>hMainClass</a></li>
--   <li><a>hLoggingConfig</a></li>
--   <li><a>hProperties</a></li>
--   </ul>
hadoopJob :: HadoopJob

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
hArgs :: Lens' HadoopJob [Text]

-- | The HCFS URI of the jar file containing the main class. Examples:
--   'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar'
--   'hdfs:/tmp/test-samples/custom-wordcount.jar'
--   'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'
hMainJarFileURI :: Lens' HadoopJob (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> Jar file URIs to add to the CLASSPATHs of the
--   Hadoop driver and tasks.</li>
--   </ul>
hJarFileURIs :: Lens' HadoopJob [Text]

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
hFileURIs :: Lens' HadoopJob [Text]

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
hArchiveURIs :: Lens' HadoopJob [Text]

-- | The name of the driver's main class. The jar file containing the class
--   must be in the default CLASSPATH or specified in `jar_file_uris`.
hMainClass :: Lens' HadoopJob (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> The runtime log config for job execution.</li>
--   </ul>
hLoggingConfig :: Lens' HadoopJob (Maybe LoggingConfig)

-- | <ul>
--   <li><i>Optional</i> A mapping of property names to values, used to
--   configure Hadoop. Properties that conflict with values set by the
--   Cloud Dataproc API may be overwritten. Can include properties set in
--   /etc/hadoop/conf/*-site and classes in user code.</li>
--   </ul>
hProperties :: Lens' HadoopJob (Maybe HadoopJobProperties)

-- | Metadata describing the operation.
--   
--   <i>See:</i> <a>clusterOperationMetadata</a> smart constructor.
data ClusterOperationMetadata

-- | Creates a value of <a>ClusterOperationMetadata</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>comStatus</a></li>
--   <li><a>comClusterUuid</a></li>
--   <li><a>comClusterName</a></li>
--   <li><a>comLabels</a></li>
--   <li><a>comOperationType</a></li>
--   <li><a>comStatusHistory</a></li>
--   <li><a>comDescription</a></li>
--   </ul>
clusterOperationMetadata :: ClusterOperationMetadata

-- | <ul>
--   <li><i>Output-only</i> Current operation status.</li>
--   </ul>
comStatus :: Lens' ClusterOperationMetadata (Maybe ClusterOperationStatus)

-- | <ul>
--   <li><i>Output-only</i> Cluster UUID for the operation.</li>
--   </ul>
comClusterUuid :: Lens' ClusterOperationMetadata (Maybe Text)

-- | <ul>
--   <li><i>Output-only</i> Name of the cluster for the operation.</li>
--   </ul>
comClusterName :: Lens' ClusterOperationMetadata (Maybe Text)

-- | <ul>
--   <li><i>Output-only</i> labels associated with the operation</li>
--   </ul>
comLabels :: Lens' ClusterOperationMetadata (Maybe ClusterOperationMetadataLabels)

-- | <ul>
--   <li><i>Output-only</i> The operation type.</li>
--   </ul>
comOperationType :: Lens' ClusterOperationMetadata (Maybe Text)

-- | <ul>
--   <li><i>Output-only</i> The previous operation status.</li>
--   </ul>
comStatusHistory :: Lens' ClusterOperationMetadata [ClusterOperationStatus]

-- | <ul>
--   <li><i>Output-only</i> Short description of operation.</li>
--   </ul>
comDescription :: Lens' ClusterOperationMetadata (Maybe Text)

-- | A Cloud Dataproc job for running <a>Apache Spark SQL</a> queries.
--   
--   <i>See:</i> <a>sparkSQLJob</a> smart constructor.
data SparkSQLJob

-- | Creates a value of <a>SparkSQLJob</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ssqljQueryFileURI</a></li>
--   <li><a>ssqljJarFileURIs</a></li>
--   <li><a>ssqljScriptVariables</a></li>
--   <li><a>ssqljQueryList</a></li>
--   <li><a>ssqljLoggingConfig</a></li>
--   <li><a>ssqljProperties</a></li>
--   </ul>
sparkSQLJob :: SparkSQLJob

-- | The HCFS URI of the script that contains SQL queries.
ssqljQueryFileURI :: Lens' SparkSQLJob (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> HCFS URIs of jar files to be added to the Spark
--   CLASSPATH.</li>
--   </ul>
ssqljJarFileURIs :: Lens' SparkSQLJob [Text]

-- | <ul>
--   <li><i>Optional</i> Mapping of query variable names to values
--   (equivalent to the Spark SQL command: SET `name="value";`).</li>
--   </ul>
ssqljScriptVariables :: Lens' SparkSQLJob (Maybe SparkSQLJobScriptVariables)

-- | A list of queries.
ssqljQueryList :: Lens' SparkSQLJob (Maybe QueryList)

-- | <ul>
--   <li><i>Optional</i> The runtime log config for job execution.</li>
--   </ul>
ssqljLoggingConfig :: Lens' SparkSQLJob (Maybe LoggingConfig)

-- | <ul>
--   <li><i>Optional</i> A mapping of property names to values, used to
--   configure Spark SQL's SparkConf. Properties that conflict with values
--   set by the Cloud Dataproc API may be overwritten.</li>
--   </ul>
ssqljProperties :: Lens' SparkSQLJob (Maybe SparkSQLJobProperties)

-- | Specifies the selection and config of software inside the cluster.
--   
--   <i>See:</i> <a>softwareConfig</a> smart constructor.
data SoftwareConfig

-- | Creates a value of <a>SoftwareConfig</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>scImageVersion</a></li>
--   <li><a>scProperties</a></li>
--   </ul>
softwareConfig :: SoftwareConfig

-- | <ul>
--   <li><i>Optional</i> The version of software inside the cluster. It
--   must match the regular expression `[0-9]+\.[0-9]+`. If unspecified, it
--   defaults to the latest version (see <a>Cloud Dataproc
--   Versioning</a>).</li>
--   </ul>
scImageVersion :: Lens' SoftwareConfig (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> The properties to set on daemon config files.
--   Property keys are specified in `prefix:property` format, such as
--   `core:fs.defaultFS`. The following are supported prefixes and their
--   mappings: * core: `core-site.xml` * hdfs: `hdfs-site.xml` * mapred:
--   `mapred-site.xml` * yarn: `yarn-site.xml` * hive: `hive-site.xml` *
--   pig: `pig.properties` * spark: `spark-defaults.conf`</li>
--   </ul>
scProperties :: Lens' SoftwareConfig (Maybe SoftwareConfigProperties)

-- | A list of jobs in a project.
--   
--   <i>See:</i> <a>listJobsResponse</a> smart constructor.
data ListJobsResponse

-- | Creates a value of <a>ListJobsResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ljrNextPageToken</a></li>
--   <li><a>ljrJobs</a></li>
--   </ul>
listJobsResponse :: ListJobsResponse

-- | <ul>
--   <li><i>Optional</i> 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 ListJobsRequest.</li>
--   </ul>
ljrNextPageToken :: Lens' ListJobsResponse (Maybe Text)

-- | <ul>
--   <li><i>Output-only</i> Jobs list.</li>
--   </ul>
ljrJobs :: Lens' ListJobsResponse [Job]

-- | <ul>
--   <li><i>Optional</i> A mapping of property names to values, used to
--   configure Spark. Properties that conflict with values set by the Cloud
--   Dataproc API may be overwritten. Can include properties set in
--   /etc/spark/conf/spark-defaults.conf and classes in user code.</li>
--   </ul>
--   
--   <i>See:</i> <a>sparkJobProperties</a> smart constructor.
data SparkJobProperties

-- | Creates a value of <a>SparkJobProperties</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sjpAddtional</a></li>
--   </ul>
sparkJobProperties :: HashMap Text Text -> SparkJobProperties
sjpAddtional :: Lens' SparkJobProperties (HashMap Text Text)

-- | A Cloud Dataproc job for running <a>Apache PySpark</a> applications on
--   YARN.
--   
--   <i>See:</i> <a>pySparkJob</a> smart constructor.
data PySparkJob

-- | Creates a value of <a>PySparkJob</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>psjPythonFileURIs</a></li>
--   <li><a>psjMainPythonFileURI</a></li>
--   <li><a>psjArgs</a></li>
--   <li><a>psjJarFileURIs</a></li>
--   <li><a>psjFileURIs</a></li>
--   <li><a>psjArchiveURIs</a></li>
--   <li><a>psjLoggingConfig</a></li>
--   <li><a>psjProperties</a></li>
--   </ul>
pySparkJob :: PySparkJob

-- | <ul>
--   <li><i>Optional</i> HCFS file URIs of Python files to pass to the
--   PySpark framework. Supported file types: .py, .egg, and .zip.</li>
--   </ul>
psjPythonFileURIs :: Lens' PySparkJob [Text]

-- | <ul>
--   <li><i>Required</i> The HCFS URI of the main Python file to use as the
--   driver. Must be a .py file.</li>
--   </ul>
psjMainPythonFileURI :: Lens' PySparkJob (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
psjArgs :: Lens' PySparkJob [Text]

-- | <ul>
--   <li><i>Optional</i> HCFS URIs of jar files to add to the CLASSPATHs of
--   the Python driver and tasks.</li>
--   </ul>
psjJarFileURIs :: Lens' PySparkJob [Text]

-- | <ul>
--   <li><i>Optional</i> HCFS URIs of files to be copied to the working
--   directory of Python drivers and distributed tasks. Useful for naively
--   parallel tasks.</li>
--   </ul>
psjFileURIs :: Lens' PySparkJob [Text]

-- | <ul>
--   <li><i>Optional</i> HCFS URIs of archives to be extracted in the
--   working directory of .jar, .tar, .tar.gz, .tgz, and .zip.</li>
--   </ul>
psjArchiveURIs :: Lens' PySparkJob [Text]

-- | <ul>
--   <li><i>Optional</i> The runtime log config for job execution.</li>
--   </ul>
psjLoggingConfig :: Lens' PySparkJob (Maybe LoggingConfig)

-- | <ul>
--   <li><i>Optional</i> A mapping of property names to values, used to
--   configure PySpark. Properties that conflict with values set by the
--   Cloud Dataproc API may be overwritten. Can include properties set in
--   /etc/spark/conf/spark-defaults.conf and classes in user code.</li>
--   </ul>
psjProperties :: Lens' PySparkJob (Maybe PySparkJobProperties)

-- | Specifies the resources used to actively manage an instance group.
--   
--   <i>See:</i> <a>managedGroupConfig</a> smart constructor.
data ManagedGroupConfig

-- | Creates a value of <a>ManagedGroupConfig</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mgcInstanceTemplateName</a></li>
--   <li><a>mgcInstanceGroupManagerName</a></li>
--   </ul>
managedGroupConfig :: ManagedGroupConfig

-- | <ul>
--   <li><i>Output-only</i> The name of the Instance Template used for the
--   Managed Instance Group.</li>
--   </ul>
mgcInstanceTemplateName :: Lens' ManagedGroupConfig (Maybe Text)

-- | <ul>
--   <li><i>Output-only</i> The name of the Instance Group Manager for this
--   group.</li>
--   </ul>
mgcInstanceGroupManagerName :: Lens' ManagedGroupConfig (Maybe Text)

-- | The list of all clusters in a project.
--   
--   <i>See:</i> <a>listClustersResponse</a> smart constructor.
data ListClustersResponse

-- | Creates a value of <a>ListClustersResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lcrNextPageToken</a></li>
--   <li><a>lcrClusters</a></li>
--   </ul>
listClustersResponse :: ListClustersResponse

-- | <ul>
--   <li><i>Output-only</i> 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 ListClustersRequest.</li>
--   </ul>
lcrNextPageToken :: Lens' ListClustersResponse (Maybe Text)

-- | <ul>
--   <li><i>Output-only</i> The clusters in the project.</li>
--   </ul>
lcrClusters :: Lens' ListClustersResponse [Cluster]

-- | A request to cancel a job.
--   
--   <i>See:</i> <a>cancelJobRequest</a> smart constructor.
data CancelJobRequest

-- | Creates a value of <a>CancelJobRequest</a> with the minimum fields
--   required to make a request.
cancelJobRequest :: CancelJobRequest

-- | A list of queries to run on a cluster.
--   
--   <i>See:</i> <a>queryList</a> smart constructor.
data QueryList

-- | Creates a value of <a>QueryList</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>qlQueries</a></li>
--   </ul>
queryList :: QueryList

-- | <ul>
--   <li><i>Required</i> The queries to execute. You do not need to
--   terminate a query with a semicolon. Multiple queries can be specified
--   in one string by separating each with a semicolon. Here is an example
--   of an Cloud Dataproc API snippet that uses a QueryList to specify a
--   HiveJob: "hiveJob": { "queryList": { "queries": [ "query1", "query2",
--   "query3;query4", ] } }</li>
--   </ul>
qlQueries :: Lens' QueryList [Text]

-- | Metadata describing the operation.
--   
--   <i>See:</i> <a>operationMetadata</a> smart constructor.
data OperationMetadata

-- | Creates a value of <a>OperationMetadata</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>omStatus</a></li>
--   <li><a>omState</a></li>
--   <li><a>omClusterUuid</a></li>
--   <li><a>omInsertTime</a></li>
--   <li><a>omStartTime</a></li>
--   <li><a>omInnerState</a></li>
--   <li><a>omEndTime</a></li>
--   <li><a>omDetails</a></li>
--   <li><a>omClusterName</a></li>
--   <li><a>omOperationType</a></li>
--   <li><a>omStatusHistory</a></li>
--   <li><a>omDescription</a></li>
--   </ul>
operationMetadata :: OperationMetadata

-- | <ul>
--   <li><i>Output-only</i> Current operation status.</li>
--   </ul>
omStatus :: Lens' OperationMetadata (Maybe OperationStatus)

-- | A message containing the operation state.
omState :: Lens' OperationMetadata (Maybe Text)

-- | Cluster UUId for the operation.
omClusterUuid :: Lens' OperationMetadata (Maybe Text)

-- | The time that the operation was requested.
omInsertTime :: Lens' OperationMetadata (Maybe Text)

-- | The time that the operation was started by the server.
omStartTime :: Lens' OperationMetadata (Maybe Text)

-- | A message containing the detailed operation state.
omInnerState :: Lens' OperationMetadata (Maybe Text)

-- | The time that the operation completed.
omEndTime :: Lens' OperationMetadata (Maybe Text)

-- | A message containing any operation metadata details.
omDetails :: Lens' OperationMetadata (Maybe Text)

-- | Name of the cluster for the operation.
omClusterName :: Lens' OperationMetadata (Maybe Text)

-- | <ul>
--   <li><i>Output-only</i> The operation type.</li>
--   </ul>
omOperationType :: Lens' OperationMetadata (Maybe Text)

-- | <ul>
--   <li><i>Output-only</i> Previous operation status.</li>
--   </ul>
omStatusHistory :: Lens' OperationMetadata [OperationStatus]

-- | <ul>
--   <li><i>Output-only</i> Short description of operation.</li>
--   </ul>
omDescription :: Lens' OperationMetadata (Maybe Text)

-- | Cloud Dataproc job status.
--   
--   <i>See:</i> <a>jobStatus</a> smart constructor.
data JobStatus

-- | Creates a value of <a>JobStatus</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jsState</a></li>
--   <li><a>jsStateStartTime</a></li>
--   <li><a>jsDetails</a></li>
--   </ul>
jobStatus :: JobStatus

-- | <ul>
--   <li><i>Output-only</i> A state message specifying the overall job
--   state.</li>
--   </ul>
jsState :: Lens' JobStatus (Maybe Text)

-- | <ul>
--   <li><i>Output-only</i> The time when this state was entered.</li>
--   </ul>
jsStateStartTime :: Lens' JobStatus (Maybe Text)

-- | <ul>
--   <li><i>Output-only</i> Optional job state details, such as an error
--   description if the state is ERROR.</li>
--   </ul>
jsDetails :: Lens' JobStatus (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> Mapping of query variable names to values
--   (equivalent to the Pig command: `name=[value]`).</li>
--   </ul>
--   
--   <i>See:</i> <a>pigJobScriptVariables</a> smart constructor.
data PigJobScriptVariables

-- | Creates a value of <a>PigJobScriptVariables</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pjsvAddtional</a></li>
--   </ul>
pigJobScriptVariables :: HashMap Text Text -> PigJobScriptVariables
pjsvAddtional :: Lens' PigJobScriptVariables (HashMap Text Text)

-- | The HDFS metrics.
--   
--   <i>See:</i> <a>clusterMetricsHdfsMetrics</a> smart constructor.
data ClusterMetricsHdfsMetrics

-- | Creates a value of <a>ClusterMetricsHdfsMetrics</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cmhmAddtional</a></li>
--   </ul>
clusterMetricsHdfsMetrics :: HashMap Text Int64 -> ClusterMetricsHdfsMetrics
cmhmAddtional :: Lens' ClusterMetricsHdfsMetrics (HashMap Text Int64)

-- | 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`.
--   
--   <i>See:</i> <a>operationResponse</a> smart constructor.
data OperationResponse

-- | Creates a value of <a>OperationResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>orAddtional</a></li>
--   </ul>
operationResponse :: HashMap Text JSONValue -> OperationResponse

-- | Properties of the object. Contains field 'type with type URL.
orAddtional :: Lens' OperationResponse (HashMap Text JSONValue)

-- | The per-package log levels for the driver. This may include "root"
--   package name to configure rootLogger. Examples: 'com.google = FATAL',
--   'root = INFO', 'org.apache = DEBUG'
--   
--   <i>See:</i> <a>loggingConfigDriverLogLevels</a> smart constructor.
data LoggingConfigDriverLogLevels

-- | Creates a value of <a>LoggingConfigDriverLogLevels</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lcdllAddtional</a></li>
--   </ul>
loggingConfigDriverLogLevels :: HashMap Text Text -> LoggingConfigDriverLogLevels
lcdllAddtional :: Lens' LoggingConfigDriverLogLevels (HashMap Text Text)

-- | The status of a cluster and its instances.
--   
--   <i>See:</i> <a>clusterStatus</a> smart constructor.
data ClusterStatus

-- | Creates a value of <a>ClusterStatus</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>csState</a></li>
--   <li><a>csStateStartTime</a></li>
--   <li><a>csDetail</a></li>
--   </ul>
clusterStatus :: ClusterStatus

-- | <ul>
--   <li><i>Output-only</i> The cluster's state.</li>
--   </ul>
csState :: Lens' ClusterStatus (Maybe Text)

-- | <ul>
--   <li><i>Output-only</i> Time when this state was entered.</li>
--   </ul>
csStateStartTime :: Lens' ClusterStatus (Maybe Text)

-- | <ul>
--   <li><i>Output-only</i> Optional details of cluster's state.</li>
--   </ul>
csDetail :: Lens' ClusterStatus (Maybe Text)

-- | A YARN application created by a job. Application information is a
--   subset of
--   org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto. **Beta
--   Feature**: This report is available for testing purposes only. It may
--   be changed before final release.
--   
--   <i>See:</i> <a>yarnApplication</a> smart constructor.
data YarnApplication

-- | Creates a value of <a>YarnApplication</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>yaTrackingURL</a></li>
--   <li><a>yaState</a></li>
--   <li><a>yaProgress</a></li>
--   <li><a>yaName</a></li>
--   </ul>
yarnApplication :: YarnApplication

-- | <ul>
--   <li><i>Optional</i> The HTTP URL of the ApplicationMaster,
--   HistoryServer, or TimelineServer that provides application-specific
--   information. The URL uses the internal hostname, and requires a proxy
--   server for resolution and, possibly, access.</li>
--   </ul>
yaTrackingURL :: Lens' YarnApplication (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The application state.</li>
--   </ul>
yaState :: Lens' YarnApplication (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The numerical progress of the application, from 1
--   to 100.</li>
--   </ul>
yaProgress :: Lens' YarnApplication (Maybe Double)

-- | <ul>
--   <li><i>Required</i> The application name.</li>
--   </ul>
yaName :: Lens' YarnApplication (Maybe Text)

-- | A Cloud Dataproc job for running <a>Apache Pig</a> queries on YARN.
--   
--   <i>See:</i> <a>pigJob</a> smart constructor.
data PigJob

-- | Creates a value of <a>PigJob</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pjQueryFileURI</a></li>
--   <li><a>pjJarFileURIs</a></li>
--   <li><a>pjScriptVariables</a></li>
--   <li><a>pjQueryList</a></li>
--   <li><a>pjContinueOnFailure</a></li>
--   <li><a>pjLoggingConfig</a></li>
--   <li><a>pjProperties</a></li>
--   </ul>
pigJob :: PigJob

-- | The HCFS URI of the script that contains the Pig queries.
pjQueryFileURI :: Lens' PigJob (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> HCFS URIs of jar files to add to the CLASSPATH of
--   the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig
--   UDFs.</li>
--   </ul>
pjJarFileURIs :: Lens' PigJob [Text]

-- | <ul>
--   <li><i>Optional</i> Mapping of query variable names to values
--   (equivalent to the Pig command: `name=[value]`).</li>
--   </ul>
pjScriptVariables :: Lens' PigJob (Maybe PigJobScriptVariables)

-- | A list of queries.
pjQueryList :: Lens' PigJob (Maybe QueryList)

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
pjContinueOnFailure :: Lens' PigJob (Maybe Bool)

-- | <ul>
--   <li><i>Optional</i> The runtime log config for job execution.</li>
--   </ul>
pjLoggingConfig :: Lens' PigJob (Maybe LoggingConfig)

-- | <ul>
--   <li><i>Optional</i> A mapping of property names to values, used to
--   configure Pig. Properties that conflict with values set by the Cloud
--   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.</li>
--   </ul>
pjProperties :: Lens' PigJob (Maybe PigJobProperties)

-- | The runtime logging config of the job.
--   
--   <i>See:</i> <a>loggingConfig</a> smart constructor.
data LoggingConfig

-- | Creates a value of <a>LoggingConfig</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lcDriverLogLevels</a></li>
--   </ul>
loggingConfig :: LoggingConfig

-- | The per-package log levels for the driver. This may include "root"
--   package name to configure rootLogger. Examples: 'com.google = FATAL',
--   'root = INFO', 'org.apache = DEBUG'
lcDriverLogLevels :: Lens' LoggingConfig (Maybe LoggingConfigDriverLogLevels)
