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


-- | Google Dataflow SDK.
--   
--   Manages Google Cloud Dataflow projects 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>v1b3</tt> of the API.
@package gogol-dataflow
@version 0.3.0


module Network.Google.Dataflow.Types

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

-- | View your email address
userInfoEmailScope :: Proxy '["https://www.googleapis.com/auth/userinfo.email"]

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

-- | A mapping from each stage to the information about that stage.
--   
--   <i>See:</i> <a>jobExecutionInfoStages</a> smart constructor.
data JobExecutionInfoStages

-- | Creates a value of <a>JobExecutionInfoStages</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>jeisAddtional</a></li>
--   </ul>
jobExecutionInfoStages :: HashMap Text JobExecutionStageInfo -> JobExecutionInfoStages
jeisAddtional :: Lens' JobExecutionInfoStages (HashMap Text JobExecutionStageInfo)

-- | All configuration data for a particular Computation.
--   
--   <i>See:</i> <a>computationTopology</a> smart constructor.
data ComputationTopology

-- | Creates a value of <a>ComputationTopology</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>ctStateFamilies</a></li>
--   <li><a>ctUserStageName</a></li>
--   <li><a>ctInputs</a></li>
--   <li><a>ctKeyRanges</a></li>
--   <li><a>ctOutputs</a></li>
--   <li><a>ctComputationId</a></li>
--   <li><a>ctSystemStageName</a></li>
--   </ul>
computationTopology :: ComputationTopology

-- | The state family values.
ctStateFamilies :: Lens' ComputationTopology [StateFamilyConfig]

-- | The user stage name.
ctUserStageName :: Lens' ComputationTopology (Maybe Text)

-- | The inputs to the computation.
ctInputs :: Lens' ComputationTopology [StreamLocation]

-- | The key ranges processed by the computation.
ctKeyRanges :: Lens' ComputationTopology [KeyRangeLocation]

-- | The outputs from the computation.
ctOutputs :: Lens' ComputationTopology [StreamLocation]

-- | The ID of the computation.
ctComputationId :: Lens' ComputationTopology (Maybe Text)

-- | The system stage name.
ctSystemStageName :: Lens' ComputationTopology (Maybe Text)

-- | The response to a SourceSplitRequest.
--   
--   <i>See:</i> <a>sourceSplitResponse</a> smart constructor.
data SourceSplitResponse

-- | Creates a value of <a>SourceSplitResponse</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>ssrBundles</a></li>
--   <li><a>ssrShards</a></li>
--   <li><a>ssrOutcome</a></li>
--   </ul>
sourceSplitResponse :: SourceSplitResponse

-- | If outcome is SPLITTING_HAPPENED, then this is a list of bundles into
--   which the source was split. Otherwise this field is ignored. This list
--   can be empty, which means the source represents an empty input.
ssrBundles :: Lens' SourceSplitResponse [DerivedSource]

-- | DEPRECATED in favor of bundles.
ssrShards :: Lens' SourceSplitResponse [SourceSplitShard]

-- | Indicates whether splitting happened and produced a list of bundles.
--   If this is USE_CURRENT_SOURCE_AS_IS, the current source should be
--   processed "as is" without splitting. "bundles" is ignored in this
--   case. If this is SPLITTING_HAPPENED, then "bundles" contains a list of
--   bundles into which the source was split.
ssrOutcome :: Lens' SourceSplitResponse (Maybe Text)
data ResourceUtilizationReportMetricsItem

-- | Creates a value of <a>ResourceUtilizationReportMetricsItem</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>rurmiAddtional</a></li>
--   </ul>
resourceUtilizationReportMetricsItem :: HashMap Text JSONValue -> ResourceUtilizationReportMetricsItem

-- | Properties of the object.
rurmiAddtional :: Lens' ResourceUtilizationReportMetricsItem (HashMap Text JSONValue)

-- | A request to create a Cloud Dataflow job from a template.
--   
--   <i>See:</i> <a>createJobFromTemplateRequest</a> smart constructor.
data CreateJobFromTemplateRequest

-- | Creates a value of <a>CreateJobFromTemplateRequest</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>cjftrEnvironment</a></li>
--   <li><a>cjftrJobName</a></li>
--   <li><a>cjftrGcsPath</a></li>
--   <li><a>cjftrParameters</a></li>
--   </ul>
createJobFromTemplateRequest :: CreateJobFromTemplateRequest

-- | The runtime environment for the job.
cjftrEnvironment :: Lens' CreateJobFromTemplateRequest (Maybe RuntimeEnvironment)

-- | Required. The job name to use for the created job.
cjftrJobName :: Lens' CreateJobFromTemplateRequest (Maybe Text)

-- | Required. A Cloud Storage path to the template from which to create
--   the job. Must be a valid Cloud Storage URL, beginning with `gs://`.
cjftrGcsPath :: Lens' CreateJobFromTemplateRequest (Maybe Text)

-- | The runtime parameters to pass to the job.
cjftrParameters :: Lens' CreateJobFromTemplateRequest (Maybe CreateJobFromTemplateRequestParameters)

-- | 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)

-- | Basic metadata about a counter.
--   
--   <i>See:</i> <a>nameAndKind</a> smart constructor.
data NameAndKind

-- | Creates a value of <a>NameAndKind</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>nakKind</a></li>
--   <li><a>nakName</a></li>
--   </ul>
nameAndKind :: NameAndKind

-- | Counter aggregation kind.
nakKind :: Lens' NameAndKind (Maybe Text)

-- | Name of the counter.
nakName :: Lens' NameAndKind (Maybe Text)

-- | A metric value representing a list of integers.
--   
--   <i>See:</i> <a>integerList</a> smart constructor.
data IntegerList

-- | Creates a value of <a>IntegerList</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>ilElements</a></li>
--   </ul>
integerList :: IntegerList

-- | Elements of the list.
ilElements :: Lens' IntegerList [SplitInt64]

-- | WorkItem represents basic information about a WorkItem to be executed
--   in the cloud.
--   
--   <i>See:</i> <a>workItem</a> smart constructor.
data WorkItem

-- | Creates a value of <a>WorkItem</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>wiJobId</a></li>
--   <li><a>wiReportStatusInterval</a></li>
--   <li><a>wiShellTask</a></li>
--   <li><a>wiStreamingSetupTask</a></li>
--   <li><a>wiInitialReportIndex</a></li>
--   <li><a>wiMapTask</a></li>
--   <li><a>wiPackages</a></li>
--   <li><a>wiStreamingComputationTask</a></li>
--   <li><a>wiSourceOperationTask</a></li>
--   <li><a>wiId</a></li>
--   <li><a>wiProjectId</a></li>
--   <li><a>wiLeaseExpireTime</a></li>
--   <li><a>wiConfiguration</a></li>
--   <li><a>wiStreamingConfigTask</a></li>
--   <li><a>wiSeqMapTask</a></li>
--   </ul>
workItem :: WorkItem

-- | Identifies the workflow job this WorkItem belongs to.
wiJobId :: Lens' WorkItem (Maybe Text)

-- | Recommended reporting interval.
wiReportStatusInterval :: Lens' WorkItem (Maybe Text)

-- | Additional information for ShellTask WorkItems.
wiShellTask :: Lens' WorkItem (Maybe ShellTask)

-- | Additional information for StreamingSetupTask WorkItems.
wiStreamingSetupTask :: Lens' WorkItem (Maybe StreamingSetupTask)

-- | The initial index to use when reporting the status of the WorkItem.
wiInitialReportIndex :: Lens' WorkItem (Maybe Int64)

-- | Additional information for MapTask WorkItems.
wiMapTask :: Lens' WorkItem (Maybe MapTask)

-- | Any required packages that need to be fetched in order to execute this
--   WorkItem.
wiPackages :: Lens' WorkItem [Package]

-- | Additional information for StreamingComputationTask WorkItems.
wiStreamingComputationTask :: Lens' WorkItem (Maybe StreamingComputationTask)

-- | Additional information for source operation WorkItems.
wiSourceOperationTask :: Lens' WorkItem (Maybe SourceOperationRequest)

-- | Identifies this WorkItem.
wiId :: Lens' WorkItem (Maybe Int64)

-- | Identifies the cloud project this WorkItem belongs to.
wiProjectId :: Lens' WorkItem (Maybe Text)

-- | Time when the lease on this Work will expire.
wiLeaseExpireTime :: Lens' WorkItem (Maybe Text)

-- | Work item-specific configuration as an opaque blob.
wiConfiguration :: Lens' WorkItem (Maybe Text)

-- | Additional information for StreamingConfigTask WorkItems.
wiStreamingConfigTask :: Lens' WorkItem (Maybe StreamingConfigTask)

-- | Additional information for SeqMapTask WorkItems.
wiSeqMapTask :: Lens' WorkItem (Maybe SeqMapTask)

-- | WorkerHealthReport contains information about the health of a worker.
--   The VM should be identified by the labels attached to the
--   WorkerMessage that this health ping belongs to.
--   
--   <i>See:</i> <a>workerHealthReport</a> smart constructor.
data WorkerHealthReport

-- | Creates a value of <a>WorkerHealthReport</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>whrVMIsHealthy</a></li>
--   <li><a>whrReportInterval</a></li>
--   <li><a>whrPods</a></li>
--   <li><a>whrVMStartupTime</a></li>
--   </ul>
workerHealthReport :: WorkerHealthReport

-- | Whether the VM is healthy.
whrVMIsHealthy :: Lens' WorkerHealthReport (Maybe Bool)

-- | The interval at which the worker is sending health reports. The
--   default value of 0 should be interpreted as the field is not being
--   explicitly set by the worker.
whrReportInterval :: Lens' WorkerHealthReport (Maybe Text)

-- | The pods running on the worker. See:
--   http://kubernetes.io/v1.1/docs/api-reference/v1/definitions.html#_v1_pod
--   This field is used by the worker to send the status of the indvidual
--   containers running on each worker.
whrPods :: Lens' WorkerHealthReport [WorkerHealthReportPodsItem]

-- | The time the VM was booted.
whrVMStartupTime :: Lens' WorkerHealthReport (Maybe Text)

-- | Hints for splitting a Source into bundles (parts for parallel
--   processing) using SourceSplitRequest.
--   
--   <i>See:</i> <a>sourceSplitOptions</a> smart constructor.
data SourceSplitOptions

-- | Creates a value of <a>SourceSplitOptions</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>ssoDesiredShardSizeBytes</a></li>
--   <li><a>ssoDesiredBundleSizeBytes</a></li>
--   </ul>
sourceSplitOptions :: SourceSplitOptions

-- | DEPRECATED in favor of desired_bundle_size_bytes.
ssoDesiredShardSizeBytes :: Lens' SourceSplitOptions (Maybe Int64)

-- | The source should be split into a set of bundles where the estimated
--   size of each is approximately this many bytes.
ssoDesiredBundleSizeBytes :: Lens' SourceSplitOptions (Maybe Int64)

-- | Metadata to set on the Google Compute Engine VMs.
--   
--   <i>See:</i> <a>workerPoolMetadata</a> smart constructor.
data WorkerPoolMetadata

-- | Creates a value of <a>WorkerPoolMetadata</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>wpmAddtional</a></li>
--   </ul>
workerPoolMetadata :: HashMap Text Text -> WorkerPoolMetadata
wpmAddtional :: Lens' WorkerPoolMetadata (HashMap Text Text)

-- | Settings for WorkerPool autoscaling.
--   
--   <i>See:</i> <a>autoscalingSettings</a> smart constructor.
data AutoscalingSettings

-- | Creates a value of <a>AutoscalingSettings</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>asMaxNumWorkers</a></li>
--   <li><a>asAlgorithm</a></li>
--   </ul>
autoscalingSettings :: AutoscalingSettings

-- | The maximum number of workers to cap scaling at.
asMaxNumWorkers :: Lens' AutoscalingSettings (Maybe Int32)

-- | The algorithm to use for autoscaling.
asAlgorithm :: Lens' AutoscalingSettings (Maybe Text)

-- | Contains information about how a particular
--   google.dataflow.v1beta3.Step will be executed.
--   
--   <i>See:</i> <a>jobExecutionStageInfo</a> smart constructor.
data JobExecutionStageInfo

-- | Creates a value of <a>JobExecutionStageInfo</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>jesiStepName</a></li>
--   </ul>
jobExecutionStageInfo :: JobExecutionStageInfo

-- | The steps associated with the execution stage. Note that stages may
--   have several steps, and that a given step might be run by more than
--   one stage.
jesiStepName :: Lens' JobExecutionStageInfo [Text]

-- | An output of an instruction.
--   
--   <i>See:</i> <a>instructionOutput</a> smart constructor.
data InstructionOutput

-- | Creates a value of <a>InstructionOutput</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>ioOnlyCountValueBytes</a></li>
--   <li><a>ioCodec</a></li>
--   <li><a>ioName</a></li>
--   <li><a>ioSystemName</a></li>
--   <li><a>ioOriginalName</a></li>
--   <li><a>ioOnlyCountKeyBytes</a></li>
--   </ul>
instructionOutput :: InstructionOutput

-- | For system-generated byte and mean byte metrics, certain instructions
--   should only report the value size.
ioOnlyCountValueBytes :: Lens' InstructionOutput (Maybe Bool)

-- | The codec to use to encode data being written via this output.
ioCodec :: Lens' InstructionOutput (Maybe InstructionOutputCodec)

-- | The user-provided name of this output.
ioName :: Lens' InstructionOutput (Maybe Text)

-- | System-defined name of this output. Unique across the workflow.
ioSystemName :: Lens' InstructionOutput (Maybe Text)

-- | System-defined name for this output in the original workflow graph.
--   Outputs that do not contribute to an original instruction do not set
--   this.
ioOriginalName :: Lens' InstructionOutput (Maybe Text)

-- | For system-generated byte and mean byte metrics, certain instructions
--   should only report the key size.
ioOnlyCountKeyBytes :: Lens' InstructionOutput (Maybe Bool)

-- | Request to report the status of WorkItems.
--   
--   <i>See:</i> <a>reportWorkItemStatusRequest</a> smart constructor.
data ReportWorkItemStatusRequest

-- | Creates a value of <a>ReportWorkItemStatusRequest</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>rwisrCurrentWorkerTime</a></li>
--   <li><a>rwisrLocation</a></li>
--   <li><a>rwisrWorkItemStatuses</a></li>
--   <li><a>rwisrWorkerId</a></li>
--   </ul>
reportWorkItemStatusRequest :: ReportWorkItemStatusRequest

-- | The current timestamp at the worker.
rwisrCurrentWorkerTime :: Lens' ReportWorkItemStatusRequest (Maybe Text)

-- | The location which contains the WorkItem's job.
rwisrLocation :: Lens' ReportWorkItemStatusRequest (Maybe Text)

-- | The order is unimportant, except that the order of the
--   WorkItemServiceState messages in the ReportWorkItemStatusResponse
--   corresponds to the order of WorkItemStatus messages here.
rwisrWorkItemStatuses :: Lens' ReportWorkItemStatusRequest [WorkItemStatus]

-- | The ID of the worker reporting the WorkItem status. If this does not
--   match the ID of the worker which the Dataflow service believes
--   currently has the lease on the WorkItem, the report will be dropped
--   (with an error response).
rwisrWorkerId :: Lens' ReportWorkItemStatusRequest (Maybe Text)

-- | A structure describing which components and their versions of the
--   service are required in order to run the job.
--   
--   <i>See:</i> <a>environmentVersion</a> smart constructor.
data EnvironmentVersion

-- | Creates a value of <a>EnvironmentVersion</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>evAddtional</a></li>
--   </ul>
environmentVersion :: HashMap Text JSONValue -> EnvironmentVersion

-- | Properties of the object.
evAddtional :: Lens' EnvironmentVersion (HashMap Text JSONValue)

-- | A sink that records can be encoded and written to.
--   
--   <i>See:</i> <a>sink</a> smart constructor.
data Sink

-- | Creates a value of <a>Sink</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>sCodec</a></li>
--   <li><a>sSpec</a></li>
--   </ul>
sink :: Sink

-- | The codec to use to encode data written to the sink.
sCodec :: Lens' Sink (Maybe SinkCodec)

-- | The sink to write to, plus its parameters.
sSpec :: Lens' Sink (Maybe SinkSpec)

-- | A metric value representing a list of strings.
--   
--   <i>See:</i> <a>stringList</a> smart constructor.
data StringList

-- | Creates a value of <a>StringList</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>slElements</a></li>
--   </ul>
stringList :: StringList

-- | Elements of the list.
slElements :: Lens' StringList [Text]

-- | WorkerHealthReportResponse contains information returned to the worker
--   in response to a health ping.
--   
--   <i>See:</i> <a>workerHealthReportResponse</a> smart constructor.
data WorkerHealthReportResponse

-- | Creates a value of <a>WorkerHealthReportResponse</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>whrrReportInterval</a></li>
--   </ul>
workerHealthReportResponse :: WorkerHealthReportResponse

-- | A positive value indicates the worker should change its reporting
--   interval to the specified value. The default value of zero means no
--   change in report rate is requested by the server.
whrrReportInterval :: Lens' WorkerHealthReportResponse (Maybe Text)

-- | Response to a send capture request. nothing
--   
--   <i>See:</i> <a>sendDebugCaptureResponse</a> smart constructor.
data SendDebugCaptureResponse

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

-- | User-defined labels for this job. The labels map can contain no more
--   than 64 entries. Entries of the labels map are UTF8 strings that
--   comply with the following restrictions: * Keys must conform to regexp:
--   \p{Ll}\p{Lo}{0,62} * Values must conform to regexp:
--   [\p{Ll}\p{Lo}\p{N}_-]{0,63} * Both keys and values are additionally
--   constrained to be &lt;= 128 bytes in size.
--   
--   <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)

-- | Identifies a metric, by describing the source which generated the
--   metric.
--   
--   <i>See:</i> <a>metricStructuredName</a> smart constructor.
data MetricStructuredName

-- | Creates a value of <a>MetricStructuredName</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>msnOrigin</a></li>
--   <li><a>msnContext</a></li>
--   <li><a>msnName</a></li>
--   </ul>
metricStructuredName :: MetricStructuredName

-- | Origin (namespace) of metric name. May be blank for user-define
--   metrics; will be "dataflow" for metrics defined by the Dataflow
--   service or SDK.
msnOrigin :: Lens' MetricStructuredName (Maybe Text)

-- | Zero or more labeled fields which identify the part of the job this
--   metric is associated with, such as the name of a step or collection.
--   For example, built-in counters associated with steps will have
--   context['step'] = . Counters associated with PCollections in the SDK
--   will have context['pcollection'] = .
msnContext :: Lens' MetricStructuredName (Maybe MetricStructuredNameContext)

-- | Worker-defined metric name.
msnName :: Lens' MetricStructuredName (Maybe Text)

-- | Identifies a counter within a per-job namespace. Counters whose
--   structured names are the same get merged into a single value for the
--   job.
--   
--   <i>See:</i> <a>counterStructuredName</a> smart constructor.
data CounterStructuredName

-- | Creates a value of <a>CounterStructuredName</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>csnStandardOrigin</a></li>
--   <li><a>csnComponentStepName</a></li>
--   <li><a>csnOtherOrigin</a></li>
--   <li><a>csnPortion</a></li>
--   <li><a>csnOriginalStepName</a></li>
--   <li><a>csnName</a></li>
--   <li><a>csnExecutionStepName</a></li>
--   <li><a>csnWorkerId</a></li>
--   </ul>
counterStructuredName :: CounterStructuredName

-- | One of the standard Origins defined above.
csnStandardOrigin :: Lens' CounterStructuredName (Maybe Text)

-- | Name of the optimized step being executed by the workers.
csnComponentStepName :: Lens' CounterStructuredName (Maybe Text)

-- | A string containing the origin of the counter.
csnOtherOrigin :: Lens' CounterStructuredName (Maybe Text)

-- | Portion of this counter, either key or value.
csnPortion :: Lens' CounterStructuredName (Maybe Text)

-- | System generated name of the original step in the user's graph, before
--   optimization.
csnOriginalStepName :: Lens' CounterStructuredName (Maybe Text)

-- | Counter name. Not necessarily globally-unique, but unique within the
--   context of the other fields. Required.
csnName :: Lens' CounterStructuredName (Maybe Text)

-- | Name of the stage. An execution step contains multiple component
--   steps.
csnExecutionStepName :: Lens' CounterStructuredName (Maybe Text)

-- | ID of a particular worker.
csnWorkerId :: Lens' CounterStructuredName (Maybe Text)

-- | An instruction that writes records. Takes one input, produces no
--   outputs.
--   
--   <i>See:</i> <a>writeInstruction</a> smart constructor.
data WriteInstruction

-- | Creates a value of <a>WriteInstruction</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>wiSink</a></li>
--   <li><a>wiInput</a></li>
--   </ul>
writeInstruction :: WriteInstruction

-- | The sink to write to.
wiSink :: Lens' WriteInstruction (Maybe Sink)

-- | The input.
wiInput :: Lens' WriteInstruction (Maybe InstructionInput)

-- | A description of the process that generated the request.
--   
--   <i>See:</i> <a>environmentUserAgent</a> smart constructor.
data EnvironmentUserAgent

-- | Creates a value of <a>EnvironmentUserAgent</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>euaAddtional</a></li>
--   </ul>
environmentUserAgent :: HashMap Text JSONValue -> EnvironmentUserAgent

-- | Properties of the object.
euaAddtional :: Lens' EnvironmentUserAgent (HashMap Text JSONValue)

-- | Describes the data disk used by a workflow job.
--   
--   <i>See:</i> <a>disk</a> smart constructor.
data Disk

-- | Creates a value of <a>Disk</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>dSizeGb</a></li>
--   <li><a>dDiskType</a></li>
--   <li><a>dMountPoint</a></li>
--   </ul>
disk :: Disk

-- | Size of disk in GB. If zero or unspecified, the service will attempt
--   to choose a reasonable default.
dSizeGb :: Lens' Disk (Maybe Int32)

-- | Disk storage type, as defined by Google Compute Engine. This must be a
--   disk type appropriate to the project and zone in which the workers
--   will run. If unknown or unspecified, the service will attempt to
--   choose a reasonable default. For example, the standard persistent disk
--   type is a resource name typically ending in "pd-standard". If SSD
--   persistent disks are available, the resource name typically ends with
--   "pd-ssd". The actual valid values are defined the Google Compute
--   Engine API, not by the Cloud Dataflow API; consult the Google Compute
--   Engine documentation for more information about determining the set of
--   available disk types for a particular project and zone. Google Compute
--   Engine Disk types are local to a particular project in a particular
--   zone, and so the resource name will typically look something like
--   this:
--   compute.googleapis.com/projects/project-id/zones/zone/diskTypes/pd-standard
dDiskType :: Lens' Disk (Maybe Text)

-- | Directory in a VM where disk is mounted.
dMountPoint :: Lens' Disk (Maybe Text)

-- | Describes the state of a metric.
--   
--   <i>See:</i> <a>metricUpdate</a> smart constructor.
data MetricUpdate

-- | Creates a value of <a>MetricUpdate</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>muMeanSum</a></li>
--   <li><a>muInternal</a></li>
--   <li><a>muSet</a></li>
--   <li><a>muCumulative</a></li>
--   <li><a>muKind</a></li>
--   <li><a>muUpdateTime</a></li>
--   <li><a>muMeanCount</a></li>
--   <li><a>muName</a></li>
--   <li><a>muScalar</a></li>
--   </ul>
metricUpdate :: MetricUpdate

-- | Worker-computed aggregate value for the "Mean" aggregation kind. This
--   holds the sum of the aggregated values and is used in combination with
--   mean_count below to obtain the actual mean aggregate value. The only
--   possible value types are Long and Double.
muMeanSum :: Lens' MetricUpdate (Maybe JSONValue)

-- | Worker-computed aggregate value for internal use by the Dataflow
--   service.
muInternal :: Lens' MetricUpdate (Maybe JSONValue)

-- | Worker-computed aggregate value for the "Set" aggregation kind. The
--   only possible value type is a list of Values whose type can be Long,
--   Double, or String, according to the metric's type. All Values in the
--   list must be of the same type.
muSet :: Lens' MetricUpdate (Maybe JSONValue)

-- | True if this metric is reported as the total cumulative aggregate
--   value accumulated since the worker started working on this WorkItem.
--   By default this is false, indicating that this metric is reported as a
--   delta that is not associated with any WorkItem.
muCumulative :: Lens' MetricUpdate (Maybe Bool)

-- | Metric aggregation kind. The possible metric aggregation kinds are
--   "Sum", "Max", "Min", "Mean", "Set", "And", and "Or". The specified
--   aggregation kind is case-insensitive. If omitted, this is not an
--   aggregated value but instead a single metric sample value.
muKind :: Lens' MetricUpdate (Maybe Text)

-- | Timestamp associated with the metric value. Optional when workers are
--   reporting work progress; it will be filled in responses from the
--   metrics API.
muUpdateTime :: Lens' MetricUpdate (Maybe Text)

-- | Worker-computed aggregate value for the "Mean" aggregation kind. This
--   holds the count of the aggregated values and is used in combination
--   with mean_sum above to obtain the actual mean aggregate value. The
--   only possible value type is Long.
muMeanCount :: Lens' MetricUpdate (Maybe JSONValue)

-- | Name of the metric.
muName :: Lens' MetricUpdate (Maybe MetricStructuredName)

-- | Worker-computed aggregate value for aggregation kinds "Sum", "Max",
--   "Min", "And", and "Or". The possible value types are Long, Double, and
--   Boolean.
muScalar :: Lens' MetricUpdate (Maybe JSONValue)

-- | The result of a SourceGetMetadataOperation.
--   
--   <i>See:</i> <a>sourceGetMetadataResponse</a> smart constructor.
data SourceGetMetadataResponse

-- | Creates a value of <a>SourceGetMetadataResponse</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>sgmrMetadata</a></li>
--   </ul>
sourceGetMetadataResponse :: SourceGetMetadataResponse

-- | The computed metadata.
sgmrMetadata :: Lens' SourceGetMetadataResponse (Maybe SourceMetadata)

-- | Describes the environment in which a Dataflow Job runs.
--   
--   <i>See:</i> <a>environment</a> smart constructor.
data Environment

-- | Creates a value of <a>Environment</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>eDataSet</a></li>
--   <li><a>eExperiments</a></li>
--   <li><a>eWorkerPools</a></li>
--   <li><a>eClusterManagerAPIService</a></li>
--   <li><a>eVersion</a></li>
--   <li><a>eInternalExperiments</a></li>
--   <li><a>eTempStoragePrefix</a></li>
--   <li><a>eServiceAccountEmail</a></li>
--   <li><a>eUserAgent</a></li>
--   <li><a>eSdkPipelineOptions</a></li>
--   </ul>
environment :: Environment

-- | The dataset for the current project where various workflow related
--   tables are stored. The supported resource type is: Google BigQuery:
--   bigquery.googleapis.com/{dataset}
eDataSet :: Lens' Environment (Maybe Text)

-- | The list of experiments to enable.
eExperiments :: Lens' Environment [Text]

-- | The worker pools. At least one "harness" worker pool must be specified
--   in order for the job to have workers.
eWorkerPools :: Lens' Environment [WorkerPool]

-- | The type of cluster manager API to use. If unknown or unspecified, the
--   service will attempt to choose a reasonable default. This should be in
--   the form of the API service name, e.g. "compute.googleapis.com".
eClusterManagerAPIService :: Lens' Environment (Maybe Text)

-- | A structure describing which components and their versions of the
--   service are required in order to run the job.
eVersion :: Lens' Environment (Maybe EnvironmentVersion)

-- | Experimental settings.
eInternalExperiments :: Lens' Environment (Maybe EnvironmentInternalExperiments)

-- | The prefix of the resources the system should use for temporary
--   storage. The system will append the suffix "/temp-{JOBNAME} to this
--   resource prefix, where {JOBNAME} is the value of the job_name field.
--   The resulting bucket and object prefix is used as the prefix of the
--   resources used to store temporary data needed during the job
--   execution. NOTE: This will override the value in taskrunner_settings.
--   The supported resource type is: Google Cloud Storage:
--   storage.googleapis.com/{bucket}/{object}
--   bucket.storage.googleapis.com/{object}
eTempStoragePrefix :: Lens' Environment (Maybe Text)

-- | Identity to run virtual machines as. Defaults to the default account.
eServiceAccountEmail :: Lens' Environment (Maybe Text)

-- | A description of the process that generated the request.
eUserAgent :: Lens' Environment (Maybe EnvironmentUserAgent)

-- | The Cloud Dataflow SDK pipeline options specified by the user. These
--   options are passed through the service and are used to recreate the
--   SDK pipeline options on the worker in a language agnostic and platform
--   independent way.
eSdkPipelineOptions :: Lens' Environment (Maybe EnvironmentSdkPipelineOptions)

-- | A position that encapsulates an inner position and an index for the
--   inner position. A ConcatPosition can be used by a reader of a source
--   that encapsulates a set of other sources.
--   
--   <i>See:</i> <a>concatPosition</a> smart constructor.
data ConcatPosition

-- | Creates a value of <a>ConcatPosition</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>cpIndex</a></li>
--   <li><a>cpPosition</a></li>
--   </ul>
concatPosition :: ConcatPosition

-- | Index of the inner source.
cpIndex :: Lens' ConcatPosition (Maybe Int32)

-- | Position within the inner source.
cpPosition :: Lens' ConcatPosition (Maybe Position)

-- | Zero or more labeled fields which identify the part of the job this
--   metric is associated with, such as the name of a step or collection.
--   For example, built-in counters associated with steps will have
--   context['step'] = . Counters associated with PCollections in the SDK
--   will have context['pcollection'] = .
--   
--   <i>See:</i> <a>metricStructuredNameContext</a> smart constructor.
data MetricStructuredNameContext

-- | Creates a value of <a>MetricStructuredNameContext</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>msncAddtional</a></li>
--   </ul>
metricStructuredNameContext :: HashMap Text Text -> MetricStructuredNameContext
msncAddtional :: Lens' MetricStructuredNameContext (HashMap Text Text)

-- | An update to a Counter sent from a worker.
--   
--   <i>See:</i> <a>counterUpdate</a> smart constructor.
data CounterUpdate

-- | Creates a value of <a>CounterUpdate</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>cuNameAndKind</a></li>
--   <li><a>cuIntegerList</a></li>
--   <li><a>cuFloatingPoint</a></li>
--   <li><a>cuInternal</a></li>
--   <li><a>cuStringList</a></li>
--   <li><a>cuShortId</a></li>
--   <li><a>cuDistribution</a></li>
--   <li><a>cuCumulative</a></li>
--   <li><a>cuStructuredNameAndMetadata</a></li>
--   <li><a>cuFloatingPointMean</a></li>
--   <li><a>cuIntegerMean</a></li>
--   <li><a>cuBoolean</a></li>
--   <li><a>cuFloatingPointList</a></li>
--   <li><a>cuInteger</a></li>
--   </ul>
counterUpdate :: CounterUpdate

-- | Counter name and aggregation type.
cuNameAndKind :: Lens' CounterUpdate (Maybe NameAndKind)

-- | List of integers, for Set.
cuIntegerList :: Lens' CounterUpdate (Maybe IntegerList)

-- | Floating point value for Sum, Max, Min.
cuFloatingPoint :: Lens' CounterUpdate (Maybe Double)

-- | Value for internally-defined counters used by the Dataflow service.
cuInternal :: Lens' CounterUpdate (Maybe JSONValue)

-- | List of strings, for Set.
cuStringList :: Lens' CounterUpdate (Maybe StringList)

-- | The service-generated short identifier for this counter. The short_id
--   -&gt; (name, metadata) mapping is constant for the lifetime of a job.
cuShortId :: Lens' CounterUpdate (Maybe Int64)

-- | Distribution data
cuDistribution :: Lens' CounterUpdate (Maybe DistributionUpdate)

-- | True if this counter is reported as the total cumulative aggregate
--   value accumulated since the worker started working on this WorkItem.
--   By default this is false, indicating that this counter is reported as
--   a delta.
cuCumulative :: Lens' CounterUpdate (Maybe Bool)

-- | Counter structured name and metadata.
cuStructuredNameAndMetadata :: Lens' CounterUpdate (Maybe CounterStructuredNameAndMetadata)

-- | Floating point mean aggregation value for Mean.
cuFloatingPointMean :: Lens' CounterUpdate (Maybe FloatingPointMean)

-- | Integer mean aggregation value for Mean.
cuIntegerMean :: Lens' CounterUpdate (Maybe IntegerMean)

-- | Boolean value for And, Or.
cuBoolean :: Lens' CounterUpdate (Maybe Bool)

-- | List of floating point numbers, for Set.
cuFloatingPointList :: Lens' CounterUpdate (Maybe FloatingPointList)

-- | Integer value for Sum, Max, Min.
cuInteger :: Lens' CounterUpdate (Maybe SplitInt64)

-- | Identifies the location of a streaming computation stage, for
--   stage-to-stage communication.
--   
--   <i>See:</i> <a>streamingStageLocation</a> smart constructor.
data StreamingStageLocation

-- | Creates a value of <a>StreamingStageLocation</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>sslStreamId</a></li>
--   </ul>
streamingStageLocation :: StreamingStageLocation

-- | Identifies the particular stream within the streaming Dataflow job.
sslStreamId :: Lens' StreamingStageLocation (Maybe Text)

-- | Specification of one of the bundles produced as a result of splitting
--   a Source (e.g. when executing a SourceSplitRequest, or when splitting
--   an active task using WorkItemStatus.dynamic_source_split), relative to
--   the source being split.
--   
--   <i>See:</i> <a>derivedSource</a> smart constructor.
data DerivedSource

-- | Creates a value of <a>DerivedSource</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>dsDerivationMode</a></li>
--   <li><a>dsSource</a></li>
--   </ul>
derivedSource :: DerivedSource

-- | What source to base the produced source on (if any).
dsDerivationMode :: Lens' DerivedSource (Maybe Text)

-- | Specification of the source.
dsSource :: Lens' DerivedSource (Maybe Source)

-- | JobMetrics contains a collection of metrics descibing the detailed
--   progress of a Dataflow job. Metrics correspond to user-defined and
--   system-defined metrics in the job. This resource captures only the
--   most recent values of each metric; time-series data can be queried for
--   them (under the same metric names) from Cloud Monitoring.
--   
--   <i>See:</i> <a>jobMetrics</a> smart constructor.
data JobMetrics

-- | Creates a value of <a>JobMetrics</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>jmMetrics</a></li>
--   <li><a>jmMetricTime</a></li>
--   </ul>
jobMetrics :: JobMetrics

-- | All metrics for this job.
jmMetrics :: Lens' JobMetrics [MetricUpdate]

-- | Timestamp as of which metric values are current.
jmMetricTime :: Lens' JobMetrics (Maybe Text)

-- | Request to send encoded debug information.
--   
--   <i>See:</i> <a>sendDebugCaptureRequest</a> smart constructor.
data SendDebugCaptureRequest

-- | Creates a value of <a>SendDebugCaptureRequest</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>sdcrData</a></li>
--   <li><a>sdcrComponentId</a></li>
--   <li><a>sdcrWorkerId</a></li>
--   </ul>
sendDebugCaptureRequest :: SendDebugCaptureRequest

-- | The encoded debug information.
sdcrData :: Lens' SendDebugCaptureRequest (Maybe Text)

-- | The internal component id for which debug information is sent.
sdcrComponentId :: Lens' SendDebugCaptureRequest (Maybe Text)

-- | The worker id, i.e., VM hostname.
sdcrWorkerId :: Lens' SendDebugCaptureRequest (Maybe Text)

-- | Conveys a worker's progress through the work described by a WorkItem.
--   
--   <i>See:</i> <a>workItemStatus</a> smart constructor.
data WorkItemStatus

-- | Creates a value of <a>WorkItemStatus</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>wisReportedProgress</a></li>
--   <li><a>wisProgress</a></li>
--   <li><a>wisSourceOperationResponse</a></li>
--   <li><a>wisStopPosition</a></li>
--   <li><a>wisDynamicSourceSplit</a></li>
--   <li><a>wisCompleted</a></li>
--   <li><a>wisSourceFork</a></li>
--   <li><a>wisReportIndex</a></li>
--   <li><a>wisRequestedLeaseDuration</a></li>
--   <li><a>wisErrors</a></li>
--   <li><a>wisCounterUpdates</a></li>
--   <li><a>wisMetricUpdates</a></li>
--   <li><a>wisWorkItemId</a></li>
--   </ul>
workItemStatus :: WorkItemStatus

-- | The worker's progress through this WorkItem.
wisReportedProgress :: Lens' WorkItemStatus (Maybe ApproximateReportedProgress)

-- | DEPRECATED in favor of reported_progress.
wisProgress :: Lens' WorkItemStatus (Maybe ApproximateProgress)

-- | If the work item represented a SourceOperationRequest, and the work is
--   completed, contains the result of the operation.
wisSourceOperationResponse :: Lens' WorkItemStatus (Maybe SourceOperationResponse)

-- | A worker may split an active map task in two parts, "primary" and
--   "residual", continuing to process the primary part and returning the
--   residual part into the pool of available work. This event is called a
--   "dynamic split" and is critical to the dynamic work rebalancing
--   feature. The two obtained sub-tasks are called "parts" of the split.
--   The parts, if concatenated, must represent the same input as would be
--   read by the current task if the split did not happen. The exact way in
--   which the original task is decomposed into the two parts is specified
--   either as a position demarcating them (stop_position), or explicitly
--   as two DerivedSources, if this task consumes a user-defined source
--   type (dynamic_source_split). The "current" task is adjusted as a
--   result of the split: after a task with range [A, B) sends a
--   stop_position update at C, its range is considered to be [A, C), e.g.:
--   * Progress should be interpreted relative to the new range, e.g. "75%
--   completed" means "75% of [A, C) completed" * The worker should
--   interpret proposed_stop_position relative to the new range, e.g.
--   "split at 68%" should be interpreted as "split at 68% of [A, C)". * If
--   the worker chooses to split again using stop_position, only
--   stop_positions in [A, C) will be accepted. * Etc. dynamic_source_split
--   has similar semantics: e.g., if a task with source S splits using
--   dynamic_source_split into {P, R} (where P and R must be together
--   equivalent to S), then subsequent progress and proposed_stop_position
--   should be interpreted relative to P, and in a potential subsequent
--   dynamic_source_split into {P', R'}, P' and R' must be together
--   equivalent to P, etc.
wisStopPosition :: Lens' WorkItemStatus (Maybe Position)

-- | See documentation of stop_position.
wisDynamicSourceSplit :: Lens' WorkItemStatus (Maybe DynamicSourceSplit)

-- | True if the WorkItem was completed (successfully or unsuccessfully).
wisCompleted :: Lens' WorkItemStatus (Maybe Bool)

-- | DEPRECATED in favor of dynamic_source_split.
wisSourceFork :: Lens' WorkItemStatus (Maybe SourceFork)

-- | The report index. When a WorkItem is leased, the lease will contain an
--   initial report index. When a WorkItem's status is reported to the
--   system, the report should be sent with that report index, and the
--   response will contain the index the worker should use for the next
--   report. Reports received with unexpected index values will be rejected
--   by the service. In order to preserve idempotency, the worker should
--   not alter the contents of a report, even if the worker must submit the
--   same report multiple times before getting back a response. The worker
--   should not submit a subsequent report until the response for the
--   previous report had been received from the service.
wisReportIndex :: Lens' WorkItemStatus (Maybe Int64)

-- | Amount of time the worker requests for its lease.
wisRequestedLeaseDuration :: Lens' WorkItemStatus (Maybe Text)

-- | Specifies errors which occurred during processing. If errors are
--   provided, and completed = true, then the WorkItem is considered to
--   have failed.
wisErrors :: Lens' WorkItemStatus [Status]

-- | Worker output counters for this WorkItem.
wisCounterUpdates :: Lens' WorkItemStatus [CounterUpdate]

-- | DEPRECATED in favor of counter_updates.
wisMetricUpdates :: Lens' WorkItemStatus [MetricUpdate]

-- | Identifies the WorkItem.
wisWorkItemId :: Lens' WorkItemStatus (Maybe Text)

-- | Labels are used to group WorkerMessages. For example, a worker_message
--   about a particular container might have the labels: { "JOB_ID":
--   "2015-04-22", "WORKER_ID": "wordcount-vm-2015…" "CONTAINER_TYPE":
--   "worker", "CONTAINER_ID": "ac1234def"} Label tags typically correspond
--   to Label enum values. However, for ease of development other strings
--   can be used as tags. LABEL_UNSPECIFIED should not be used here.
--   
--   <i>See:</i> <a>workerMessageLabels</a> smart constructor.
data WorkerMessageLabels

-- | Creates a value of <a>WorkerMessageLabels</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>wmlAddtional</a></li>
--   </ul>
workerMessageLabels :: HashMap Text Text -> WorkerMessageLabels
wmlAddtional :: Lens' WorkerMessageLabels (HashMap Text Text)

-- | An instruction that copies its inputs (zero or more) to its (single)
--   output.
--   
--   <i>See:</i> <a>flattenInstruction</a> smart constructor.
data FlattenInstruction

-- | Creates a value of <a>FlattenInstruction</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>fiInputs</a></li>
--   </ul>
flattenInstruction :: FlattenInstruction

-- | Describes the inputs to the flatten instruction.
fiInputs :: Lens' FlattenInstruction [InstructionInput]

-- | A message code is used to report status and error messages to the
--   service. The message codes are intended to be machine readable. The
--   service will take care of translating these into user understandable
--   messages if necessary. Example use cases: 1. Worker processes
--   reporting successful startup. 2. Worker processes reporting specific
--   errors (e.g. package staging failure).
--   
--   <i>See:</i> <a>workerMessageCode</a> smart constructor.
data WorkerMessageCode

-- | Creates a value of <a>WorkerMessageCode</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>wmcParameters</a></li>
--   <li><a>wmcCode</a></li>
--   </ul>
workerMessageCode :: WorkerMessageCode

-- | Parameters contains specific information about the code. This is a
--   struct to allow parameters of different types. Examples: 1. For a
--   "HARNESS_STARTED" message parameters might provide the name of the
--   worker and additional data like timing information. 2. For a
--   "GCS_DOWNLOAD_ERROR" parameters might contain fields listing the GCS
--   objects being downloaded and fields containing errors. In general
--   complex data structures should be avoided. If a worker needs to send a
--   specific and complicated data structure then please consider defining
--   a new proto and adding it to the data oneof in WorkerMessageResponse.
--   Conventions: Parameters should only be used for information that isn't
--   typically passed as a label. hostname and other worker identifiers
--   should almost always be passed as labels since they will be included
--   on most messages.
wmcParameters :: Lens' WorkerMessageCode (Maybe WorkerMessageCodeParameters)

-- | The code is a string intended for consumption by a machine that
--   identifies the type of message being sent. Examples: 1.
--   "HARNESS_STARTED" might be used to indicate the worker harness has
--   started. 2. "GCS_DOWNLOAD_ERROR" might be used to indicate an error
--   downloading a GCS file as part of the boot process of one of the
--   worker containers. This is a string and not an enum to make it easy to
--   add new codes without waiting for an API change.
wmcCode :: Lens' WorkerMessageCode (Maybe Text)

-- | The map of transform name prefixes of the job to be replaced to the
--   corresponding name prefixes of the new job.
--   
--   <i>See:</i> <a>jobTransformNameMApping</a> smart constructor.
data JobTransformNameMApping

-- | Creates a value of <a>JobTransformNameMApping</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>jtnmaAddtional</a></li>
--   </ul>
jobTransformNameMApping :: HashMap Text Text -> JobTransformNameMApping
jtnmaAddtional :: Lens' JobTransformNameMApping (HashMap Text Text)

-- | The source to read from, plus its parameters.
--   
--   <i>See:</i> <a>sourceSpec</a> smart constructor.
data SourceSpec

-- | Creates a value of <a>SourceSpec</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>ssAddtional</a></li>
--   </ul>
sourceSpec :: HashMap Text JSONValue -> SourceSpec

-- | Properties of the object.
ssAddtional :: Lens' SourceSpec (HashMap Text JSONValue)

-- | Metadata about a Source useful for automatically optimizing and tuning
--   the pipeline, etc.
--   
--   <i>See:</i> <a>sourceMetadata</a> smart constructor.
data SourceMetadata

-- | Creates a value of <a>SourceMetadata</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>smEstimatedSizeBytes</a></li>
--   <li><a>smProducesSortedKeys</a></li>
--   <li><a>smInfinite</a></li>
--   </ul>
sourceMetadata :: SourceMetadata

-- | An estimate of the total size (in bytes) of the data that would be
--   read from this source. This estimate is in terms of external storage
--   size, before any decompression or other processing done by the reader.
smEstimatedSizeBytes :: Lens' SourceMetadata (Maybe Int64)

-- | Whether this source is known to produce key/value pairs with the
--   (encoded) keys in lexicographically sorted order.
smProducesSortedKeys :: Lens' SourceMetadata (Maybe Bool)

-- | Specifies that the size of this source is known to be infinite (this
--   is a streaming source).
smInfinite :: Lens' SourceMetadata (Maybe Bool)

-- | Experimental settings.
--   
--   <i>See:</i> <a>environmentInternalExperiments</a> smart constructor.
data EnvironmentInternalExperiments

-- | Creates a value of <a>EnvironmentInternalExperiments</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>eieAddtional</a></li>
--   </ul>
environmentInternalExperiments :: HashMap Text JSONValue -> EnvironmentInternalExperiments

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

-- | Taskrunner configuration settings.
--   
--   <i>See:</i> <a>taskRunnerSettings</a> smart constructor.
data TaskRunnerSettings

-- | Creates a value of <a>TaskRunnerSettings</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>trsContinueOnException</a></li>
--   <li><a>trsHarnessCommand</a></li>
--   <li><a>trsWorkflowFileName</a></li>
--   <li><a>trsTaskGroup</a></li>
--   <li><a>trsAlsologtostderr</a></li>
--   <li><a>trsDataflowAPIVersion</a></li>
--   <li><a>trsLogDir</a></li>
--   <li><a>trsCommandlinesFileName</a></li>
--   <li><a>trsVMId</a></li>
--   <li><a>trsBaseURL</a></li>
--   <li><a>trsOAuthScopes</a></li>
--   <li><a>trsTaskUser</a></li>
--   <li><a>trsStreamingWorkerMainClass</a></li>
--   <li><a>trsBaseTaskDir</a></li>
--   <li><a>trsLogUploadLocation</a></li>
--   <li><a>trsTempStoragePrefix</a></li>
--   <li><a>trsLogToSerialconsole</a></li>
--   <li><a>trsParallelWorkerSettings</a></li>
--   <li><a>trsLanguageHint</a></li>
--   </ul>
taskRunnerSettings :: TaskRunnerSettings

-- | Whether to continue taskrunner if an exception is hit.
trsContinueOnException :: Lens' TaskRunnerSettings (Maybe Bool)

-- | The command to launch the worker harness.
trsHarnessCommand :: Lens' TaskRunnerSettings (Maybe Text)

-- | The file to store the workflow in.
trsWorkflowFileName :: Lens' TaskRunnerSettings (Maybe Text)

-- | The UNIX group ID on the worker VM to use for tasks launched by
--   taskrunner; e.g. "wheel".
trsTaskGroup :: Lens' TaskRunnerSettings (Maybe Text)

-- | Whether to also send taskrunner log info to stderr.
trsAlsologtostderr :: Lens' TaskRunnerSettings (Maybe Bool)

-- | The API version of endpoint, e.g. "v1b3"
trsDataflowAPIVersion :: Lens' TaskRunnerSettings (Maybe Text)

-- | The directory on the VM to store logs.
trsLogDir :: Lens' TaskRunnerSettings (Maybe Text)

-- | The file to store preprocessing commands in.
trsCommandlinesFileName :: Lens' TaskRunnerSettings (Maybe Text)

-- | The ID string of the VM.
trsVMId :: Lens' TaskRunnerSettings (Maybe Text)

-- | The base URL for the taskrunner to use when accessing Google Cloud
--   APIs. When workers access Google Cloud APIs, they logically do so via
--   relative URLs. If this field is specified, it supplies the base URL to
--   use for resolving these relative URLs. The normative algorithm used is
--   defined by RFC 1808, "Relative Uniform Resource Locators". If not
--   specified, the default value is "http://www.googleapis.com/"
trsBaseURL :: Lens' TaskRunnerSettings (Maybe Text)

-- | The OAuth2 scopes to be requested by the taskrunner in order to access
--   the Cloud Dataflow API.
trsOAuthScopes :: Lens' TaskRunnerSettings [Text]

-- | The UNIX user ID on the worker VM to use for tasks launched by
--   taskrunner; e.g. "root".
trsTaskUser :: Lens' TaskRunnerSettings (Maybe Text)

-- | The streaming worker main class name.
trsStreamingWorkerMainClass :: Lens' TaskRunnerSettings (Maybe Text)

-- | The location on the worker for task-specific subdirectories.
trsBaseTaskDir :: Lens' TaskRunnerSettings (Maybe Text)

-- | Indicates where to put logs. If this is not specified, the logs will
--   not be uploaded. The supported resource type is: Google Cloud Storage:
--   storage.googleapis.com/{bucket}/{object}
--   bucket.storage.googleapis.com/{object}
trsLogUploadLocation :: Lens' TaskRunnerSettings (Maybe Text)

-- | The prefix of the resources the taskrunner should use for temporary
--   storage. The supported resource type is: Google Cloud Storage:
--   storage.googleapis.com/{bucket}/{object}
--   bucket.storage.googleapis.com/{object}
trsTempStoragePrefix :: Lens' TaskRunnerSettings (Maybe Text)

-- | Whether to send taskrunner log info to Google Compute Engine VM serial
--   console.
trsLogToSerialconsole :: Lens' TaskRunnerSettings (Maybe Bool)

-- | The settings to pass to the parallel worker harness.
trsParallelWorkerSettings :: Lens' TaskRunnerSettings (Maybe WorkerSettings)

-- | The suggested backend language.
trsLanguageHint :: Lens' TaskRunnerSettings (Maybe Text)

-- | Configuration information for a single streaming computation.
--   
--   <i>See:</i> <a>streamingComputationConfig</a> smart constructor.
data StreamingComputationConfig

-- | Creates a value of <a>StreamingComputationConfig</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>sccInstructions</a></li>
--   <li><a>sccSystemName</a></li>
--   <li><a>sccComputationId</a></li>
--   <li><a>sccStageName</a></li>
--   </ul>
streamingComputationConfig :: StreamingComputationConfig

-- | Instructions that comprise the computation.
sccInstructions :: Lens' StreamingComputationConfig [ParallelInstruction]

-- | System defined name for this computation.
sccSystemName :: Lens' StreamingComputationConfig (Maybe Text)

-- | Unique identifier for this computation.
sccComputationId :: Lens' StreamingComputationConfig (Maybe Text)

-- | Stage name of this computation.
sccStageName :: Lens' StreamingComputationConfig (Maybe Text)

-- | The Cloud Dataflow SDK pipeline options specified by the user. These
--   options are passed through the service and are used to recreate the
--   SDK pipeline options on the worker in a language agnostic and platform
--   independent way.
--   
--   <i>See:</i> <a>environmentSdkPipelineOptions</a> smart constructor.
data EnvironmentSdkPipelineOptions

-- | Creates a value of <a>EnvironmentSdkPipelineOptions</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>espoAddtional</a></li>
--   </ul>
environmentSdkPipelineOptions :: HashMap Text JSONValue -> EnvironmentSdkPipelineOptions

-- | Properties of the object.
espoAddtional :: Lens' EnvironmentSdkPipelineOptions (HashMap Text JSONValue)

-- | A representation of a floating point mean metric contribution.
--   
--   <i>See:</i> <a>floatingPointMean</a> smart constructor.
data FloatingPointMean

-- | Creates a value of <a>FloatingPointMean</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>fpmCount</a></li>
--   <li><a>fpmSum</a></li>
--   </ul>
floatingPointMean :: FloatingPointMean

-- | The number of values being aggregated.
fpmCount :: Lens' FloatingPointMean (Maybe SplitInt64)

-- | The sum of all values being aggregated.
fpmSum :: Lens' FloatingPointMean (Maybe Double)

-- | Request to lease WorkItems.
--   
--   <i>See:</i> <a>leaseWorkItemRequest</a> smart constructor.
data LeaseWorkItemRequest

-- | Creates a value of <a>LeaseWorkItemRequest</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>lwirWorkItemTypes</a></li>
--   <li><a>lwirCurrentWorkerTime</a></li>
--   <li><a>lwirLocation</a></li>
--   <li><a>lwirWorkerCapabilities</a></li>
--   <li><a>lwirRequestedLeaseDuration</a></li>
--   <li><a>lwirWorkerId</a></li>
--   </ul>
leaseWorkItemRequest :: LeaseWorkItemRequest

-- | Filter for WorkItem type.
lwirWorkItemTypes :: Lens' LeaseWorkItemRequest [Text]

-- | The current timestamp at the worker.
lwirCurrentWorkerTime :: Lens' LeaseWorkItemRequest (Maybe Text)

-- | The location which contains the WorkItem's job.
lwirLocation :: Lens' LeaseWorkItemRequest (Maybe Text)

-- | Worker capabilities. WorkItems might be limited to workers with
--   specific capabilities.
lwirWorkerCapabilities :: Lens' LeaseWorkItemRequest [Text]

-- | The initial lease period.
lwirRequestedLeaseDuration :: Lens' LeaseWorkItemRequest (Maybe Text)

-- | Identifies the worker leasing work -- typically the ID of the virtual
--   machine running the worker.
lwirWorkerId :: Lens' LeaseWorkItemRequest (Maybe Text)

-- | The result of a SourceOperationRequest, specified in
--   ReportWorkItemStatusRequest.source_operation when the work item is
--   completed.
--   
--   <i>See:</i> <a>sourceOperationResponse</a> smart constructor.
data SourceOperationResponse

-- | Creates a value of <a>SourceOperationResponse</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>sorSplit</a></li>
--   <li><a>sorGetMetadata</a></li>
--   </ul>
sourceOperationResponse :: SourceOperationResponse

-- | A response to a request to split a source.
sorSplit :: Lens' SourceOperationResponse (Maybe SourceSplitResponse)

-- | A response to a request to get metadata about a source.
sorGetMetadata :: Lens' SourceOperationResponse (Maybe SourceGetMetadataResponse)

-- | Maps user stage names to stable computation names.
--   
--   <i>See:</i> <a>topologyConfigUserStageToComputationNameMap</a> smart
--   constructor.
data TopologyConfigUserStageToComputationNameMap

-- | Creates a value of <a>TopologyConfigUserStageToComputationNameMap</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>tcustcnmAddtional</a></li>
--   </ul>
topologyConfigUserStageToComputationNameMap :: HashMap Text Text -> TopologyConfigUserStageToComputationNameMap
tcustcnmAddtional :: Lens' TopologyConfigUserStageToComputationNameMap (HashMap Text Text)

-- | A task which consists of a shell command for the worker to execute.
--   
--   <i>See:</i> <a>shellTask</a> smart constructor.
data ShellTask

-- | Creates a value of <a>ShellTask</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>stCommand</a></li>
--   <li><a>stExitCode</a></li>
--   </ul>
shellTask :: ShellTask

-- | The shell command to run.
stCommand :: Lens' ShellTask (Maybe Text)

-- | Exit code for the task.
stExitCode :: Lens' ShellTask (Maybe Int32)
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)

-- | Represents the level of parallelism in a WorkItem's input, reported by
--   the worker.
--   
--   <i>See:</i> <a>reportedParallelism</a> smart constructor.
data ReportedParallelism

-- | Creates a value of <a>ReportedParallelism</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>rpValue</a></li>
--   <li><a>rpIsInfinite</a></li>
--   </ul>
reportedParallelism :: ReportedParallelism

-- | Specifies the level of parallelism in case it is finite.
rpValue :: Lens' ReportedParallelism (Maybe Double)

-- | Specifies whether the parallelism is infinite. If true, "value" is
--   ignored. Infinite parallelism means the service will assume that the
--   work item can always be split into more non-empty work items by
--   dynamic splitting. This is a work-around for lack of support for
--   infinity by the current JSON-based Java RPC stack.
rpIsInfinite :: Lens' ReportedParallelism (Maybe Bool)

-- | Named properties associated with the step. Each kind of predefined
--   step has its own required set of properties.
--   
--   <i>See:</i> <a>stepProperties</a> smart constructor.
data StepProperties

-- | Creates a value of <a>StepProperties</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>spAddtional</a></li>
--   </ul>
stepProperties :: HashMap Text JSONValue -> StepProperties

-- | Properties of the object.
spAddtional :: Lens' StepProperties (HashMap Text JSONValue)

-- | Global topology of the streaming Dataflow job, including all
--   computations and their sharded locations.
--   
--   <i>See:</i> <a>topologyConfig</a> smart constructor.
data TopologyConfig

-- | Creates a value of <a>TopologyConfig</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>tcDataDiskAssignments</a></li>
--   <li><a>tcPersistentStateVersion</a></li>
--   <li><a>tcForwardingKeyBits</a></li>
--   <li><a>tcUserStageToComputationNameMap</a></li>
--   <li><a>tcComputations</a></li>
--   </ul>
topologyConfig :: TopologyConfig

-- | The disks assigned to a streaming Dataflow job.
tcDataDiskAssignments :: Lens' TopologyConfig [DataDiskAssignment]

-- | Version number for persistent state.
tcPersistentStateVersion :: Lens' TopologyConfig (Maybe Int32)

-- | The size (in bits) of keys that will be assigned to source messages.
tcForwardingKeyBits :: Lens' TopologyConfig (Maybe Int32)

-- | Maps user stage names to stable computation names.
tcUserStageToComputationNameMap :: Lens' TopologyConfig (Maybe TopologyConfigUserStageToComputationNameMap)

-- | The computations associated with a streaming Dataflow job.
tcComputations :: Lens' TopologyConfig [ComputationTopology]

-- | A suggestion by the service to the worker to dynamically split the
--   WorkItem.
--   
--   <i>See:</i> <a>approximateSplitRequest</a> smart constructor.
data ApproximateSplitRequest

-- | Creates a value of <a>ApproximateSplitRequest</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>asrFractionConsumed</a></li>
--   <li><a>asrPosition</a></li>
--   </ul>
approximateSplitRequest :: ApproximateSplitRequest

-- | A fraction at which to split the work item, from 0.0 (beginning of the
--   input) to 1.0 (end of the input).
asrFractionConsumed :: Lens' ApproximateSplitRequest (Maybe Double)

-- | A Position at which to split the work item.
asrPosition :: Lens' ApproximateSplitRequest (Maybe Position)

-- | A representation of an int64, n, that is immune to precision loss when
--   encoded in JSON.
--   
--   <i>See:</i> <a>splitInt64</a> smart constructor.
data SplitInt64

-- | Creates a value of <a>SplitInt64</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>siHighBits</a></li>
--   <li><a>siLowBits</a></li>
--   </ul>
splitInt64 :: SplitInt64

-- | The high order bits, including the sign: n &gt;&gt; 32.
siHighBits :: Lens' SplitInt64 (Maybe Int32)

-- | The low order bits: n &amp; 0xffffffff.
siLowBits :: Lens' SplitInt64 (Maybe Word32)

-- | Provides data to pass through to the worker harness.
--   
--   <i>See:</i> <a>workerSettings</a> smart constructor.
data WorkerSettings

-- | Creates a value of <a>WorkerSettings</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>wsServicePath</a></li>
--   <li><a>wsBaseURL</a></li>
--   <li><a>wsShuffleServicePath</a></li>
--   <li><a>wsTempStoragePrefix</a></li>
--   <li><a>wsReportingEnabled</a></li>
--   <li><a>wsWorkerId</a></li>
--   </ul>
workerSettings :: WorkerSettings

-- | The Cloud Dataflow service path relative to the root URL, for example,
--   "dataflow/v1b3/projects".
wsServicePath :: Lens' WorkerSettings (Maybe Text)

-- | The base URL for accessing Google Cloud APIs. When workers access
--   Google Cloud APIs, they logically do so via relative URLs. If this
--   field is specified, it supplies the base URL to use for resolving
--   these relative URLs. The normative algorithm used is defined by RFC
--   1808, "Relative Uniform Resource Locators". If not specified, the
--   default value is "http://www.googleapis.com/"
wsBaseURL :: Lens' WorkerSettings (Maybe Text)

-- | The Shuffle service path relative to the root URL, for example,
--   "shuffle/v1beta1".
wsShuffleServicePath :: Lens' WorkerSettings (Maybe Text)

-- | The prefix of the resources the system should use for temporary
--   storage. The supported resource type is: Google Cloud Storage:
--   storage.googleapis.com/{bucket}/{object}
--   bucket.storage.googleapis.com/{object}
wsTempStoragePrefix :: Lens' WorkerSettings (Maybe Text)

-- | Whether to send work progress updates to the service.
wsReportingEnabled :: Lens' WorkerSettings (Maybe Bool)

-- | The ID of the worker running this pipeline.
wsWorkerId :: Lens' WorkerSettings (Maybe Text)

-- | Response to a get debug configuration request.
--   
--   <i>See:</i> <a>getDebugConfigResponse</a> smart constructor.
data GetDebugConfigResponse

-- | Creates a value of <a>GetDebugConfigResponse</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>gdcrConfig</a></li>
--   </ul>
getDebugConfigResponse :: GetDebugConfigResponse

-- | The encoded debug configuration for the requested component.
gdcrConfig :: Lens' GetDebugConfigResponse (Maybe Text)

-- | Other data returned by the service, specific to the particular worker
--   harness.
--   
--   <i>See:</i> <a>workItemServiceStateHarnessData</a> smart constructor.
data WorkItemServiceStateHarnessData

-- | Creates a value of <a>WorkItemServiceStateHarnessData</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>wisshdAddtional</a></li>
--   </ul>
workItemServiceStateHarnessData :: HashMap Text JSONValue -> WorkItemServiceStateHarnessData

-- | Properties of the object.
wisshdAddtional :: Lens' WorkItemServiceStateHarnessData (HashMap Text JSONValue)

-- | Data disk assignment for a given VM instance.
--   
--   <i>See:</i> <a>dataDiskAssignment</a> smart constructor.
data DataDiskAssignment

-- | Creates a value of <a>DataDiskAssignment</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>ddaVMInstance</a></li>
--   <li><a>ddaDataDisks</a></li>
--   </ul>
dataDiskAssignment :: DataDiskAssignment

-- | VM instance name the data disks mounted to, for example
--   "myproject-1014-104817-4c2-harness-0".
ddaVMInstance :: Lens' DataDiskAssignment (Maybe Text)

-- | Mounted data disks. The order is important a data disk's 0-based index
--   in this list defines which persistent directory the disk is mounted
--   to, for example the list of {
--   "myproject-1014-104817-4c2-harness-0-disk-0" }, {
--   "myproject-1014-104817-4c2-harness-0-disk-1" }.
ddaDataDisks :: Lens' DataDiskAssignment [Text]

-- | Worker metrics exported from workers. This contains resource
--   utilization metrics accumulated from a variety of sources. For more
--   information, see go/df-resource-signals. Note that this proto closely
--   follows the structure of its DFE siblings in its contents.
--   
--   <i>See:</i> <a>resourceUtilizationReport</a> smart constructor.
data ResourceUtilizationReport

-- | Creates a value of <a>ResourceUtilizationReport</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>rurMetrics</a></li>
--   </ul>
resourceUtilizationReport :: ResourceUtilizationReport

-- | Each Struct must parallel DFE worker metrics protos (eg., cpu_time
--   metric will have nested values “timestamp_ms, total_ms, rate”).
rurMetrics :: Lens' ResourceUtilizationReport [ResourceUtilizationReportMetricsItem]

-- | Indicates which location failed to respond to a request for data.
--   
--   <i>See:</i> <a>failedLocation</a> smart constructor.
data FailedLocation

-- | Creates a value of <a>FailedLocation</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>flName</a></li>
--   </ul>
failedLocation :: FailedLocation

-- | The name of the failed location.
flName :: Lens' FailedLocation (Maybe Text)

-- | A worker_message response allows the server to pass information to the
--   sender.
--   
--   <i>See:</i> <a>workerMessageResponse</a> smart constructor.
data WorkerMessageResponse

-- | Creates a value of <a>WorkerMessageResponse</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>wmrWorkerHealthReportResponse</a></li>
--   <li><a>wmrWorkerMetricsResponse</a></li>
--   </ul>
workerMessageResponse :: WorkerMessageResponse

-- | The service's response to a worker's health report.
wmrWorkerHealthReportResponse :: Lens' WorkerMessageResponse (Maybe WorkerHealthReportResponse)

-- | Service's response to reporting worker metrics (currently empty).
wmrWorkerMetricsResponse :: Lens' WorkerMessageResponse (Maybe ResourceUtilizationReportResponse)

-- | The runtime parameters to pass to the job.
--   
--   <i>See:</i> <a>createJobFromTemplateRequestParameters</a> smart
--   constructor.
data CreateJobFromTemplateRequestParameters

-- | Creates a value of <a>CreateJobFromTemplateRequestParameters</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>cjftrpAddtional</a></li>
--   </ul>
createJobFromTemplateRequestParameters :: HashMap Text Text -> CreateJobFromTemplateRequestParameters
cjftrpAddtional :: Lens' CreateJobFromTemplateRequestParameters (HashMap Text Text)

-- | The Dataflow service's idea of the current state of a WorkItem being
--   processed by a worker.
--   
--   <i>See:</i> <a>workItemServiceState</a> smart constructor.
data WorkItemServiceState

-- | Creates a value of <a>WorkItemServiceState</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>wissNextReportIndex</a></li>
--   <li><a>wissReportStatusInterval</a></li>
--   <li><a>wissHarnessData</a></li>
--   <li><a>wissSuggestedStopPoint</a></li>
--   <li><a>wissSuggestedStopPosition</a></li>
--   <li><a>wissLeaseExpireTime</a></li>
--   <li><a>wissSplitRequest</a></li>
--   <li><a>wissMetricShortId</a></li>
--   </ul>
workItemServiceState :: WorkItemServiceState

-- | The index value to use for the next report sent by the worker. Note:
--   If the report call fails for whatever reason, the worker should reuse
--   this index for subsequent report attempts.
wissNextReportIndex :: Lens' WorkItemServiceState (Maybe Int64)

-- | New recommended reporting interval.
wissReportStatusInterval :: Lens' WorkItemServiceState (Maybe Text)

-- | Other data returned by the service, specific to the particular worker
--   harness.
wissHarnessData :: Lens' WorkItemServiceState (Maybe WorkItemServiceStateHarnessData)

-- | DEPRECATED in favor of split_request.
wissSuggestedStopPoint :: Lens' WorkItemServiceState (Maybe ApproximateProgress)

-- | Obsolete, always empty.
wissSuggestedStopPosition :: Lens' WorkItemServiceState (Maybe Position)

-- | Time at which the current lease will expire.
wissLeaseExpireTime :: Lens' WorkItemServiceState (Maybe Text)

-- | The progress point in the WorkItem where the Dataflow service suggests
--   that the worker truncate the task.
wissSplitRequest :: Lens' WorkItemServiceState (Maybe ApproximateSplitRequest)

-- | The short ids that workers should use in subsequent metric updates.
--   Workers should strive to use short ids whenever possible, but it is ok
--   to request the short_id again if a worker lost track of it (e.g. if
--   the worker is recovering from a crash). NOTE: it is possible that the
--   response may have short ids for a subset of the metrics.
wissMetricShortId :: Lens' WorkItemServiceState [MetricShortId]

-- | A task which initializes part of a streaming Dataflow job.
--   
--   <i>See:</i> <a>streamingSetupTask</a> smart constructor.
data StreamingSetupTask

-- | Creates a value of <a>StreamingSetupTask</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>sstStreamingComputationTopology</a></li>
--   <li><a>sstReceiveWorkPort</a></li>
--   <li><a>sstWorkerHarnessPort</a></li>
--   <li><a>sstDrain</a></li>
--   </ul>
streamingSetupTask :: StreamingSetupTask

-- | The global topology of the streaming Dataflow job.
sstStreamingComputationTopology :: Lens' StreamingSetupTask (Maybe TopologyConfig)

-- | The TCP port on which the worker should listen for messages from other
--   streaming computation workers.
sstReceiveWorkPort :: Lens' StreamingSetupTask (Maybe Int32)

-- | The TCP port used by the worker to communicate with the Dataflow
--   worker harness.
sstWorkerHarnessPort :: Lens' StreamingSetupTask (Maybe Int32)

-- | The user has requested drain.
sstDrain :: Lens' StreamingSetupTask (Maybe Bool)

-- | The codec to use for interpreting an element in the input PTable.
--   
--   <i>See:</i> <a>partialGroupByKeyInstructionInputElementCodec</a> smart
--   constructor.
data PartialGroupByKeyInstructionInputElementCodec

-- | Creates a value of
--   <a>PartialGroupByKeyInstructionInputElementCodec</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>pgbkiiecAddtional</a></li>
--   </ul>
partialGroupByKeyInstructionInputElementCodec :: HashMap Text JSONValue -> PartialGroupByKeyInstructionInputElementCodec

-- | Properties of the object.
pgbkiiecAddtional :: Lens' PartialGroupByKeyInstructionInputElementCodec (HashMap Text JSONValue)

-- | MapTask consists of an ordered set of instructions, each of which
--   describes one particular low-level operation for the worker to perform
--   in order to accomplish the MapTask's WorkItem. Each instruction must
--   appear in the list before any instructions which depends on its
--   output.
--   
--   <i>See:</i> <a>mapTask</a> smart constructor.
data MapTask

-- | Creates a value of <a>MapTask</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>mtInstructions</a></li>
--   <li><a>mtSystemName</a></li>
--   <li><a>mtStageName</a></li>
--   </ul>
mapTask :: MapTask

-- | The instructions in the MapTask.
mtInstructions :: Lens' MapTask [ParallelInstruction]

-- | System-defined name of this MapTask. Unique across the workflow.
mtSystemName :: Lens' MapTask (Maybe Text)

-- | System-defined name of the stage containing this MapTask. Unique
--   across the workflow.
mtStageName :: Lens' MapTask (Maybe Text)

-- | Describes mounted data disk.
--   
--   <i>See:</i> <a>mountedDataDisk</a> smart constructor.
data MountedDataDisk

-- | Creates a value of <a>MountedDataDisk</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>mddDataDisk</a></li>
--   </ul>
mountedDataDisk :: MountedDataDisk

-- | The name of the data disk. This name is local to the Google Cloud
--   Platform project and uniquely identifies the disk within that project,
--   for example "myproject-1014-104817-4c2-harness-0-disk-1".
mddDataDisk :: Lens' MountedDataDisk (Maybe Text)

-- | The codec to use to encode data written to the sink.
--   
--   <i>See:</i> <a>sinkCodec</a> smart constructor.
data SinkCodec

-- | Creates a value of <a>SinkCodec</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>scAddtional</a></li>
--   </ul>
sinkCodec :: HashMap Text JSONValue -> SinkCodec

-- | Properties of the object.
scAddtional :: Lens' SinkCodec (HashMap Text JSONValue)

-- | A representation of an integer mean metric contribution.
--   
--   <i>See:</i> <a>integerMean</a> smart constructor.
data IntegerMean

-- | Creates a value of <a>IntegerMean</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>imCount</a></li>
--   <li><a>imSum</a></li>
--   </ul>
integerMean :: IntegerMean

-- | The number of values being aggregated.
imCount :: Lens' IntegerMean (Maybe SplitInt64)

-- | The sum of all values being aggregated.
imSum :: Lens' IntegerMean (Maybe SplitInt64)
data WorkerHealthReportPodsItem

-- | Creates a value of <a>WorkerHealthReportPodsItem</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>whrpiAddtional</a></li>
--   </ul>
workerHealthReportPodsItem :: HashMap Text JSONValue -> WorkerHealthReportPodsItem

-- | Properties of the object.
whrpiAddtional :: Lens' WorkerHealthReportPodsItem (HashMap Text JSONValue)

-- | The user function to invoke.
--   
--   <i>See:</i> <a>parDoInstructionUserFn</a> smart constructor.
data ParDoInstructionUserFn

-- | Creates a value of <a>ParDoInstructionUserFn</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>pdiufAddtional</a></li>
--   </ul>
parDoInstructionUserFn :: HashMap Text JSONValue -> ParDoInstructionUserFn

-- | Properties of the object.
pdiufAddtional :: Lens' ParDoInstructionUserFn (HashMap Text JSONValue)

-- | The codec to use to encode data being written via this output.
--   
--   <i>See:</i> <a>instructionOutputCodec</a> smart constructor.
data InstructionOutputCodec

-- | Creates a value of <a>InstructionOutputCodec</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>iocAddtional</a></li>
--   </ul>
instructionOutputCodec :: HashMap Text JSONValue -> InstructionOutputCodec

-- | Properties of the object.
iocAddtional :: Lens' InstructionOutputCodec (HashMap Text JSONValue)

-- | Describes a stream of data, either as input to be processed or as
--   output of a streaming Dataflow job.
--   
--   <i>See:</i> <a>streamLocation</a> smart constructor.
data StreamLocation

-- | Creates a value of <a>StreamLocation</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>slStreamingStageLocation</a></li>
--   <li><a>slSideInputLocation</a></li>
--   <li><a>slCustomSourceLocation</a></li>
--   <li><a>slPubsubLocation</a></li>
--   </ul>
streamLocation :: StreamLocation

-- | The stream is part of another computation within the current streaming
--   Dataflow job.
slStreamingStageLocation :: Lens' StreamLocation (Maybe StreamingStageLocation)

-- | The stream is a streaming side input.
slSideInputLocation :: Lens' StreamLocation (Maybe StreamingSideInputLocation)

-- | The stream is a custom source.
slCustomSourceLocation :: Lens' StreamLocation (Maybe CustomSourceLocation)

-- | The stream is a pubsub stream.
slPubsubLocation :: Lens' StreamLocation (Maybe PubsubLocation)

-- | Extra arguments for this worker pool.
--   
--   <i>See:</i> <a>workerPoolPoolArgs</a> smart constructor.
data WorkerPoolPoolArgs

-- | Creates a value of <a>WorkerPoolPoolArgs</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>wppaAddtional</a></li>
--   </ul>
workerPoolPoolArgs :: HashMap Text JSONValue -> WorkerPoolPoolArgs

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

-- | The environment values to set at runtime.
--   
--   <i>See:</i> <a>runtimeEnvironment</a> smart constructor.
data RuntimeEnvironment

-- | Creates a value of <a>RuntimeEnvironment</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>reZone</a></li>
--   <li><a>reBypassTempDirValidation</a></li>
--   <li><a>reServiceAccountEmail</a></li>
--   <li><a>reMaxWorkers</a></li>
--   <li><a>reTempLocation</a></li>
--   </ul>
runtimeEnvironment :: RuntimeEnvironment

-- | The Compute Engine <a>availability zone</a> for launching worker
--   instances to run your pipeline.
reZone :: Lens' RuntimeEnvironment (Maybe Text)

-- | Whether to bypass the safety checks for the job's temporary directory.
--   Use with caution.
reBypassTempDirValidation :: Lens' RuntimeEnvironment (Maybe Bool)

-- | The email address of the service account to run the job as.
reServiceAccountEmail :: Lens' RuntimeEnvironment (Maybe Text)

-- | The maximum number of Google Compute Engine instances to be made
--   available to your pipeline during execution, from 1 to 1000.
reMaxWorkers :: Lens' RuntimeEnvironment (Maybe Int32)

-- | The Cloud Storage path to use for temporary files. Must be a valid
--   Cloud Storage URL, beginning with `gs://`.
reTempLocation :: Lens' RuntimeEnvironment (Maybe Text)

-- | CounterMetadata includes all static non-name non-value counter
--   attributes.
--   
--   <i>See:</i> <a>counterMetadata</a> smart constructor.
data CounterMetadata

-- | Creates a value of <a>CounterMetadata</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>cmKind</a></li>
--   <li><a>cmDescription</a></li>
--   <li><a>cmStandardUnits</a></li>
--   <li><a>cmOtherUnits</a></li>
--   </ul>
counterMetadata :: CounterMetadata

-- | Counter aggregation kind.
cmKind :: Lens' CounterMetadata (Maybe Text)

-- | Human-readable description of the counter semantics.
cmDescription :: Lens' CounterMetadata (Maybe Text)

-- | System defined Units, see above enum.
cmStandardUnits :: Lens' CounterMetadata (Maybe Text)

-- | A string referring to the unit type.
cmOtherUnits :: Lens' CounterMetadata (Maybe Text)

-- | The response to the worker messages.
--   
--   <i>See:</i> <a>sendWorkerMessagesResponse</a> smart constructor.
data SendWorkerMessagesResponse

-- | Creates a value of <a>SendWorkerMessagesResponse</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>swmrWorkerMessageResponses</a></li>
--   </ul>
sendWorkerMessagesResponse :: SendWorkerMessagesResponse

-- | The servers response to the worker messages.
swmrWorkerMessageResponses :: Lens' SendWorkerMessagesResponse [WorkerMessageResponse]

-- | Identifies the location of a streaming side input.
--   
--   <i>See:</i> <a>streamingSideInputLocation</a> smart constructor.
data StreamingSideInputLocation

-- | Creates a value of <a>StreamingSideInputLocation</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>ssilTag</a></li>
--   <li><a>ssilStateFamily</a></li>
--   </ul>
streamingSideInputLocation :: StreamingSideInputLocation

-- | Identifies the particular side input within the streaming Dataflow
--   job.
ssilTag :: Lens' StreamingSideInputLocation (Maybe Text)

-- | Identifies the state family where this side input is stored.
ssilStateFamily :: Lens' StreamingSideInputLocation (Maybe Text)

-- | Request to get updated debug configuration for component.
--   
--   <i>See:</i> <a>getDebugConfigRequest</a> smart constructor.
data GetDebugConfigRequest

-- | Creates a value of <a>GetDebugConfigRequest</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>gdcrComponentId</a></li>
--   <li><a>gdcrWorkerId</a></li>
--   </ul>
getDebugConfigRequest :: GetDebugConfigRequest

-- | The internal component id for which debug configuration is requested.
gdcrComponentId :: Lens' GetDebugConfigRequest (Maybe Text)

-- | The worker id, i.e., VM hostname.
gdcrWorkerId :: Lens' GetDebugConfigRequest (Maybe Text)

-- | A single message which encapsulates structured name and metadata for a
--   given counter.
--   
--   <i>See:</i> <a>counterStructuredNameAndMetadata</a> smart constructor.
data CounterStructuredNameAndMetadata

-- | Creates a value of <a>CounterStructuredNameAndMetadata</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>csnamName</a></li>
--   <li><a>csnamMetadata</a></li>
--   </ul>
counterStructuredNameAndMetadata :: CounterStructuredNameAndMetadata

-- | Structured name of the counter.
csnamName :: Lens' CounterStructuredNameAndMetadata (Maybe CounterStructuredName)

-- | Metadata associated with a counter
csnamMetadata :: Lens' CounterStructuredNameAndMetadata (Maybe CounterMetadata)

-- | A task which describes what action should be performed for the
--   specified streaming computation ranges.
--   
--   <i>See:</i> <a>streamingComputationTask</a> smart constructor.
data StreamingComputationTask

-- | Creates a value of <a>StreamingComputationTask</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>sctTaskType</a></li>
--   <li><a>sctDataDisks</a></li>
--   <li><a>sctComputationRanges</a></li>
--   </ul>
streamingComputationTask :: StreamingComputationTask

-- | A type of streaming computation task.
sctTaskType :: Lens' StreamingComputationTask (Maybe Text)

-- | Describes the set of data disks this task should apply to.
sctDataDisks :: Lens' StreamingComputationTask [MountedDataDisk]

-- | Contains ranges of a streaming computation this task should apply to.
sctComputationRanges :: Lens' StreamingComputationTask [StreamingComputationRanges]

-- | A particular message pertaining to a Dataflow job.
--   
--   <i>See:</i> <a>jobMessage</a> smart constructor.
data JobMessage

-- | Creates a value of <a>JobMessage</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>jmTime</a></li>
--   <li><a>jmMessageText</a></li>
--   <li><a>jmMessageImportance</a></li>
--   <li><a>jmId</a></li>
--   </ul>
jobMessage :: JobMessage

-- | The timestamp of the message.
jmTime :: Lens' JobMessage (Maybe Text)

-- | The text of the message.
jmMessageText :: Lens' JobMessage (Maybe Text)

-- | Importance level of the message.
jmMessageImportance :: Lens' JobMessage (Maybe Text)

-- | Identifies the message. This is automatically generated by the
--   service; the caller should treat it as an opaque string.
jmId :: Lens' JobMessage (Maybe Text)

-- | Information about an output of a SeqMapTask.
--   
--   <i>See:</i> <a>seqMapTaskOutputInfo</a> smart constructor.
data SeqMapTaskOutputInfo

-- | Creates a value of <a>SeqMapTaskOutputInfo</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>smtoiSink</a></li>
--   <li><a>smtoiTag</a></li>
--   </ul>
seqMapTaskOutputInfo :: SeqMapTaskOutputInfo

-- | The sink to write the output value to.
smtoiSink :: Lens' SeqMapTaskOutputInfo (Maybe Sink)

-- | The id of the TupleTag the user code will tag the output value by.
smtoiTag :: Lens' SeqMapTaskOutputInfo (Maybe Text)

-- | A request to compute the SourceMetadata of a Source.
--   
--   <i>See:</i> <a>sourceGetMetadataRequest</a> smart constructor.
data SourceGetMetadataRequest

-- | Creates a value of <a>SourceGetMetadataRequest</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>sgmrSource</a></li>
--   </ul>
sourceGetMetadataRequest :: SourceGetMetadataRequest

-- | Specification of the source whose metadata should be computed.
sgmrSource :: Lens' SourceGetMetadataRequest (Maybe Source)

-- | The user function to invoke.
--   
--   <i>See:</i> <a>seqMapTaskUserFn</a> smart constructor.
data SeqMapTaskUserFn

-- | Creates a value of <a>SeqMapTaskUserFn</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>smtufAddtional</a></li>
--   </ul>
seqMapTaskUserFn :: HashMap Text JSONValue -> SeqMapTaskUserFn

-- | Properties of the object.
smtufAddtional :: Lens' SeqMapTaskUserFn (HashMap Text JSONValue)

-- | The value combining function to invoke.
--   
--   <i>See:</i> <a>partialGroupByKeyInstructionValueCombiningFn</a> smart
--   constructor.
data PartialGroupByKeyInstructionValueCombiningFn

-- | Creates a value of <a>PartialGroupByKeyInstructionValueCombiningFn</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>pgbkivcfAddtional</a></li>
--   </ul>
partialGroupByKeyInstructionValueCombiningFn :: HashMap Text JSONValue -> PartialGroupByKeyInstructionValueCombiningFn

-- | Properties of the object.
pgbkivcfAddtional :: Lens' PartialGroupByKeyInstructionValueCombiningFn (HashMap Text JSONValue)

-- | Defines a job to be run by the Cloud Dataflow service.
--   
--   <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>jRequestedState</a></li>
--   <li><a>jLocation</a></li>
--   <li><a>jEnvironment</a></li>
--   <li><a>jClientRequestId</a></li>
--   <li><a>jCurrentState</a></li>
--   <li><a>jReplacedByJobId</a></li>
--   <li><a>jTempFiles</a></li>
--   <li><a>jSteps</a></li>
--   <li><a>jExecutionInfo</a></li>
--   <li><a>jName</a></li>
--   <li><a>jTransformNameMApping</a></li>
--   <li><a>jId</a></li>
--   <li><a>jLabels</a></li>
--   <li><a>jProjectId</a></li>
--   <li><a>jType</a></li>
--   <li><a>jCurrentStateTime</a></li>
--   <li><a>jReplaceJobId</a></li>
--   <li><a>jCreateTime</a></li>
--   </ul>
job :: Job

-- | The job's requested state. `UpdateJob` may be used to switch between
--   the `JOB_STATE_STOPPED` and `JOB_STATE_RUNNING` states, by setting
--   requested_state. `UpdateJob` may also be used to directly set a job's
--   requested state to `JOB_STATE_CANCELLED` or `JOB_STATE_DONE`,
--   irrevocably terminating the job if it has not already reached a
--   terminal state.
jRequestedState :: Lens' Job (Maybe Text)

-- | The location that contains this job.
jLocation :: Lens' Job (Maybe Text)

-- | The environment for the job.
jEnvironment :: Lens' Job (Maybe Environment)

-- | The client's unique identifier of the job, re-used across retried
--   attempts. If this field is set, the service will ensure its
--   uniqueness. The request to create a job will fail if the service has
--   knowledge of a previously submitted job with the same client's ID and
--   job name. The caller may use this field to ensure idempotence of job
--   creation across retried attempts to create a job. By default, the
--   field is empty and, in that case, the service ignores it.
jClientRequestId :: Lens' Job (Maybe Text)

-- | The current state of the job. Jobs are created in the
--   `JOB_STATE_STOPPED` state unless otherwise specified. A job in the
--   `JOB_STATE_RUNNING` state may asynchronously enter a terminal state.
--   After a job has reached a terminal state, no further state updates may
--   be made. This field may be mutated by the Cloud Dataflow service;
--   callers cannot mutate it.
jCurrentState :: Lens' Job (Maybe Text)

-- | If another job is an update of this job (and thus, this job is in
--   `JOB_STATE_UPDATED`), this field contains the ID of that job.
jReplacedByJobId :: Lens' Job (Maybe Text)

-- | A set of files the system should be aware of that are used for
--   temporary storage. These temporary files will be removed on job
--   completion. No duplicates are allowed. No file patterns are supported.
--   The supported files are: Google Cloud Storage:
--   storage.googleapis.com/{bucket}/{object}
--   bucket.storage.googleapis.com/{object}
jTempFiles :: Lens' Job [Text]

-- | The top-level steps that constitute the entire job.
jSteps :: Lens' Job [Step]

-- | Information about how the Cloud Dataflow service will run the job.
jExecutionInfo :: Lens' Job (Maybe JobExecutionInfo)

-- | The user-specified Cloud Dataflow job name. Only one Job with a given
--   name may exist in a project at any given time. If a caller attempts to
--   create a Job with the same name as an already-existing Job, the
--   attempt returns the existing Job. The name must match the regular
--   expression `[a-z]([-a-z0-9]{0,38}[a-z0-9])?`
jName :: Lens' Job (Maybe Text)

-- | The map of transform name prefixes of the job to be replaced to the
--   corresponding name prefixes of the new job.
jTransformNameMApping :: Lens' Job (Maybe JobTransformNameMApping)

-- | The unique ID of this job. This field is set by the Cloud Dataflow
--   service when the Job is created, and is immutable for the life of the
--   job.
jId :: Lens' Job (Maybe Text)

-- | User-defined labels for this job. The labels map can contain no more
--   than 64 entries. Entries of the labels map are UTF8 strings that
--   comply with the following restrictions: * Keys must conform to regexp:
--   \p{Ll}\p{Lo}{0,62} * Values must conform to regexp:
--   [\p{Ll}\p{Lo}\p{N}_-]{0,63} * Both keys and values are additionally
--   constrained to be &lt;= 128 bytes in size.
jLabels :: Lens' Job (Maybe JobLabels)

-- | The ID of the Cloud Platform project that the job belongs to.
jProjectId :: Lens' Job (Maybe Text)

-- | The type of Cloud Dataflow job.
jType :: Lens' Job (Maybe Text)

-- | The timestamp associated with the current state.
jCurrentStateTime :: Lens' Job (Maybe Text)

-- | If this job is an update of an existing job, this field is the job ID
--   of the job it replaced. When sending a `CreateJobRequest`, you can
--   update a job by specifying it here. The job named here is stopped, and
--   its intermediate state is transferred to this job.
jReplaceJobId :: Lens' Job (Maybe Text)

-- | The timestamp when the job was initially created. Immutable and set by
--   the Cloud Dataflow service.
jCreateTime :: Lens' Job (Maybe Text)

-- | An instruction that reads records. Takes no inputs, produces one
--   output.
--   
--   <i>See:</i> <a>readInstruction</a> smart constructor.
data ReadInstruction

-- | Creates a value of <a>ReadInstruction</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>riSource</a></li>
--   </ul>
readInstruction :: ReadInstruction

-- | The source to read from.
riSource :: Lens' ReadInstruction (Maybe Source)

-- | A progress measurement of a WorkItem by a worker.
--   
--   <i>See:</i> <a>approximateReportedProgress</a> smart constructor.
data ApproximateReportedProgress

-- | Creates a value of <a>ApproximateReportedProgress</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>arpFractionConsumed</a></li>
--   <li><a>arpConsumedParallelism</a></li>
--   <li><a>arpRemainingParallelism</a></li>
--   <li><a>arpPosition</a></li>
--   </ul>
approximateReportedProgress :: ApproximateReportedProgress

-- | Completion as fraction of the input consumed, from 0.0 (beginning,
--   nothing consumed), to 1.0 (end of the input, entire input consumed).
arpFractionConsumed :: Lens' ApproximateReportedProgress (Maybe Double)

-- | Total amount of parallelism in the portion of input of this task that
--   has already been consumed and is no longer active. In the first two
--   examples above (see remaining_parallelism), the value should be 29 or
--   2 respectively. The sum of remaining_parallelism and
--   consumed_parallelism should equal the total amount of parallelism in
--   this work item. If specified, must be finite.
arpConsumedParallelism :: Lens' ApproximateReportedProgress (Maybe ReportedParallelism)

-- | Total amount of parallelism in the input of this task that remains,
--   (i.e. can be delegated to this task and any new tasks via dynamic
--   splitting). Always at least 1 for non-finished work items and 0 for
--   finished. "Amount of parallelism" refers to how many non-empty parts
--   of the input can be read in parallel. This does not necessarily equal
--   number of records. An input that can be read in parallel down to the
--   individual records is called "perfectly splittable". An example of
--   non-perfectly parallelizable input is a block-compressed file format
--   where a block of records has to be read as a whole, but different
--   blocks can be read in parallel. Examples: * If we are processing
--   record #30 (starting at 1) out of 50 in a perfectly splittable
--   50-record input, this value should be 21 (20 remaining + 1 current). *
--   If we are reading through block 3 in a block-compressed file
--   consisting of 5 blocks, this value should be 3 (since blocks 4 and 5
--   can be processed in parallel by new tasks via dynamic splitting and
--   the current task remains processing block 3). * If we are reading
--   through the last block in a block-compressed file, or reading or
--   processing the last record in a perfectly splittable input, this value
--   should be 1, because apart from the current task, no additional
--   remainder can be split off.
arpRemainingParallelism :: Lens' ApproximateReportedProgress (Maybe ReportedParallelism)

-- | A Position within the work to represent a progress.
arpPosition :: Lens' ApproximateReportedProgress (Maybe Position)

-- | The sink to write to, plus its parameters.
--   
--   <i>See:</i> <a>sinkSpec</a> smart constructor.
data SinkSpec

-- | Creates a value of <a>SinkSpec</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>sAddtional</a></li>
--   </ul>
sinkSpec :: HashMap Text JSONValue -> SinkSpec

-- | Properties of the object.
sAddtional :: Lens' SinkSpec (HashMap Text JSONValue)

-- | Describes one particular pool of Cloud Dataflow workers to be
--   instantiated by the Cloud Dataflow service in order to perform the
--   computations required by a job. Note that a workflow job may use
--   multiple pools, in order to match the various computational
--   requirements of the various stages of the job.
--   
--   <i>See:</i> <a>workerPool</a> smart constructor.
data WorkerPool

-- | Creates a value of <a>WorkerPool</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>wpAutoscalingSettings</a></li>
--   <li><a>wpNumThreadsPerWorker</a></li>
--   <li><a>wpDiskSizeGb</a></li>
--   <li><a>wpKind</a></li>
--   <li><a>wpTaskrunnerSettings</a></li>
--   <li><a>wpNumWorkers</a></li>
--   <li><a>wpNetwork</a></li>
--   <li><a>wpZone</a></li>
--   <li><a>wpIPConfiguration</a></li>
--   <li><a>wpPackages</a></li>
--   <li><a>wpOnHostMaintenance</a></li>
--   <li><a>wpDiskSourceImage</a></li>
--   <li><a>wpSubnetwork</a></li>
--   <li><a>wpMachineType</a></li>
--   <li><a>wpMetadata</a></li>
--   <li><a>wpDiskType</a></li>
--   <li><a>wpTeardownPolicy</a></li>
--   <li><a>wpDefaultPackageSet</a></li>
--   <li><a>wpPoolArgs</a></li>
--   <li><a>wpWorkerHarnessContainerImage</a></li>
--   <li><a>wpDataDisks</a></li>
--   </ul>
workerPool :: WorkerPool

-- | Settings for autoscaling of this WorkerPool.
wpAutoscalingSettings :: Lens' WorkerPool (Maybe AutoscalingSettings)

-- | The number of threads per worker harness. If empty or unspecified, the
--   service will choose a number of threads (according to the number of
--   cores on the selected machine type for batch, or 1 by convention for
--   streaming).
wpNumThreadsPerWorker :: Lens' WorkerPool (Maybe Int32)

-- | Size of root disk for VMs, in GB. If zero or unspecified, the service
--   will attempt to choose a reasonable default.
wpDiskSizeGb :: Lens' WorkerPool (Maybe Int32)

-- | The kind of the worker pool; currently only `harness` and `shuffle`
--   are supported.
wpKind :: Lens' WorkerPool (Maybe Text)

-- | Settings passed through to Google Compute Engine workers when using
--   the standard Dataflow task runner. Users should ignore this field.
wpTaskrunnerSettings :: Lens' WorkerPool (Maybe TaskRunnerSettings)

-- | Number of Google Compute Engine workers in this pool needed to execute
--   the job. If zero or unspecified, the service will attempt to choose a
--   reasonable default.
wpNumWorkers :: Lens' WorkerPool (Maybe Int32)

-- | Network to which VMs will be assigned. If empty or unspecified, the
--   service will use the network "default".
wpNetwork :: Lens' WorkerPool (Maybe Text)

-- | Zone to run the worker pools in. If empty or unspecified, the service
--   will attempt to choose a reasonable default.
wpZone :: Lens' WorkerPool (Maybe Text)

-- | Configuration for VM IPs.
wpIPConfiguration :: Lens' WorkerPool (Maybe Text)

-- | Packages to be installed on workers.
wpPackages :: Lens' WorkerPool [Package]

-- | The action to take on host maintenance, as defined by the Google
--   Compute Engine API.
wpOnHostMaintenance :: Lens' WorkerPool (Maybe Text)

-- | Fully qualified source image for disks.
wpDiskSourceImage :: Lens' WorkerPool (Maybe Text)

-- | Subnetwork to which VMs will be assigned, if desired. Expected to be
--   of the form "regions/REGION/subnetworks/SUBNETWORK".
wpSubnetwork :: Lens' WorkerPool (Maybe Text)

-- | Machine type (e.g. "n1-standard-1"). If empty or unspecified, the
--   service will attempt to choose a reasonable default.
wpMachineType :: Lens' WorkerPool (Maybe Text)

-- | Metadata to set on the Google Compute Engine VMs.
wpMetadata :: Lens' WorkerPool (Maybe WorkerPoolMetadata)

-- | Type of root disk for VMs. If empty or unspecified, the service will
--   attempt to choose a reasonable default.
wpDiskType :: Lens' WorkerPool (Maybe Text)

-- | Sets the policy for determining when to turndown worker pool. Allowed
--   values are: `TEARDOWN_ALWAYS`, `TEARDOWN_ON_SUCCESS`, and
--   `TEARDOWN_NEVER`. `TEARDOWN_ALWAYS` means workers are always torn down
--   regardless of whether the job succeeds. `TEARDOWN_ON_SUCCESS` means
--   workers are torn down if the job succeeds. `TEARDOWN_NEVER` means the
--   workers are never torn down. If the workers are not torn down by the
--   service, they will continue to run and use Google Compute Engine VM
--   resources in the user's project until they are explicitly terminated
--   by the user. Because of this, Google recommends using the
--   `TEARDOWN_ALWAYS` policy except for small, manually supervised test
--   jobs. If unknown or unspecified, the service will attempt to choose a
--   reasonable default.
wpTeardownPolicy :: Lens' WorkerPool (Maybe Text)

-- | The default package set to install. This allows the service to select
--   a default set of packages which are useful to worker harnesses written
--   in a particular language.
wpDefaultPackageSet :: Lens' WorkerPool (Maybe Text)

-- | Extra arguments for this worker pool.
wpPoolArgs :: Lens' WorkerPool (Maybe WorkerPoolPoolArgs)

-- | Required. Docker container image that executes the Cloud Dataflow
--   worker harness, residing in Google Container Registry.
wpWorkerHarnessContainerImage :: Lens' WorkerPool (Maybe Text)

-- | Data disks that are used by a VM in this workflow.
wpDataDisks :: Lens' WorkerPool [Disk]

-- | Defines a particular step within a Cloud Dataflow job. A job consists
--   of multiple steps, each of which performs some specific operation as
--   part of the overall job. Data is typically passed from one step to
--   another as part of the job. Here's an example of a sequence of steps
--   which together implement a Map-Reduce job: * Read a collection of data
--   from some source, parsing the collection's elements. * Validate the
--   elements. * Apply a user-defined function to map each element to some
--   value and extract an element-specific key value. * Group elements with
--   the same key into a single element with that key, transforming a
--   multiply-keyed collection into a uniquely-keyed collection. * Write
--   the elements out to some data sink. Note that the Cloud Dataflow
--   service may be used to run many different types of jobs, not just
--   Map-Reduce.
--   
--   <i>See:</i> <a>step</a> smart constructor.
data Step

-- | Creates a value of <a>Step</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>sKind</a></li>
--   <li><a>sName</a></li>
--   <li><a>sProperties</a></li>
--   </ul>
step :: Step

-- | The kind of step in the Cloud Dataflow job.
sKind :: Lens' Step (Maybe Text)

-- | The name that identifies the step. This must be unique for each step
--   with respect to all other steps in the Cloud Dataflow job.
sName :: Lens' Step (Maybe Text)

-- | Named properties associated with the step. Each kind of predefined
--   step has its own required set of properties.
sProperties :: Lens' Step (Maybe StepProperties)

-- | The packages that must be installed in order for a worker to run the
--   steps of the Cloud Dataflow job that will be assigned to its worker
--   pool. This is the mechanism by which the Cloud Dataflow SDK causes
--   code to be loaded onto the workers. For example, the Cloud Dataflow
--   Java SDK might use this to install jars containing the user's code and
--   all of the various dependencies (libraries, data files, etc.) required
--   in order for that code to run.
--   
--   <i>See:</i> <a>package</a> smart constructor.
data Package

-- | Creates a value of <a>Package</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>pLocation</a></li>
--   <li><a>pName</a></li>
--   </ul>
package :: Package

-- | The resource to read the package from. The supported resource type is:
--   Google Cloud Storage: storage.googleapis.com/{bucket}
--   bucket.storage.googleapis.com/
pLocation :: Lens' Package (Maybe Text)

-- | The name of the package.
pName :: Lens' Package (Maybe Text)

-- | Parameters contains specific information about the code. This is a
--   struct to allow parameters of different types. Examples: 1. For a
--   "HARNESS_STARTED" message parameters might provide the name of the
--   worker and additional data like timing information. 2. For a
--   "GCS_DOWNLOAD_ERROR" parameters might contain fields listing the GCS
--   objects being downloaded and fields containing errors. In general
--   complex data structures should be avoided. If a worker needs to send a
--   specific and complicated data structure then please consider defining
--   a new proto and adding it to the data oneof in WorkerMessageResponse.
--   Conventions: Parameters should only be used for information that isn't
--   typically passed as a label. hostname and other worker identifiers
--   should almost always be passed as labels since they will be included
--   on most messages.
--   
--   <i>See:</i> <a>workerMessageCodeParameters</a> smart constructor.
data WorkerMessageCodeParameters

-- | Creates a value of <a>WorkerMessageCodeParameters</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>wmcpAddtional</a></li>
--   </ul>
workerMessageCodeParameters :: HashMap Text JSONValue -> WorkerMessageCodeParameters

-- | Properties of the object.
wmcpAddtional :: Lens' WorkerMessageCodeParameters (HashMap Text JSONValue)

-- | When a task splits using WorkItemStatus.dynamic_source_split, this
--   message describes the two parts of the split relative to the
--   description of the current task's input.
--   
--   <i>See:</i> <a>dynamicSourceSplit</a> smart constructor.
data DynamicSourceSplit

-- | Creates a value of <a>DynamicSourceSplit</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>dssResidual</a></li>
--   <li><a>dssPrimary</a></li>
--   </ul>
dynamicSourceSplit :: DynamicSourceSplit

-- | Residual part (returned to the pool of work). Specified relative to
--   the previously-current source.
dssResidual :: Lens' DynamicSourceSplit (Maybe DerivedSource)

-- | Primary part (continued to be processed by worker). Specified relative
--   to the previously-current source. Becomes current.
dssPrimary :: Lens' DynamicSourceSplit (Maybe DerivedSource)

-- | Response from a request to report the status of WorkItems.
--   
--   <i>See:</i> <a>reportWorkItemStatusResponse</a> smart constructor.
data ReportWorkItemStatusResponse

-- | Creates a value of <a>ReportWorkItemStatusResponse</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>rwisrWorkItemServiceStates</a></li>
--   </ul>
reportWorkItemStatusResponse :: ReportWorkItemStatusResponse

-- | A set of messages indicating the service-side state for each WorkItem
--   whose status was reported, in the same order as the WorkItemStatus
--   messages in the ReportWorkItemStatusRequest which resulting in this
--   response.
rwisrWorkItemServiceStates :: Lens' ReportWorkItemStatusResponse [WorkItemServiceState]

-- | DEPRECATED in favor of DynamicSourceSplit.
--   
--   <i>See:</i> <a>sourceFork</a> smart constructor.
data SourceFork

-- | Creates a value of <a>SourceFork</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>sfResidual</a></li>
--   <li><a>sfPrimarySource</a></li>
--   <li><a>sfPrimary</a></li>
--   <li><a>sfResidualSource</a></li>
--   </ul>
sourceFork :: SourceFork

-- | DEPRECATED
sfResidual :: Lens' SourceFork (Maybe SourceSplitShard)

-- | DEPRECATED
sfPrimarySource :: Lens' SourceFork (Maybe DerivedSource)

-- | DEPRECATED
sfPrimary :: Lens' SourceFork (Maybe SourceSplitShard)

-- | DEPRECATED
sfResidualSource :: Lens' SourceFork (Maybe DerivedSource)

-- | Service-side response to WorkerMessage reporting resource utilization.
--   
--   <i>See:</i> <a>resourceUtilizationReportResponse</a> smart
--   constructor.
data ResourceUtilizationReportResponse

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

-- | Describes full or partial data disk assignment information of the
--   computation ranges.
--   
--   <i>See:</i> <a>streamingComputationRanges</a> smart constructor.
data StreamingComputationRanges

-- | Creates a value of <a>StreamingComputationRanges</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>scrRangeAssignments</a></li>
--   <li><a>scrComputationId</a></li>
--   </ul>
streamingComputationRanges :: StreamingComputationRanges

-- | Data disk assignments for ranges from this computation.
scrRangeAssignments :: Lens' StreamingComputationRanges [KeyRangeDataDiskAssignment]

-- | The ID of the computation.
scrComputationId :: Lens' StreamingComputationRanges (Maybe Text)

-- | Response to a request to list Cloud Dataflow jobs. This may be a
--   partial response, depending on the page size in the ListJobsRequest.
--   
--   <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>ljrFailedLocation</a></li>
--   <li><a>ljrJobs</a></li>
--   </ul>
listJobsResponse :: ListJobsResponse

-- | Set if there may be more results than fit in this response.
ljrNextPageToken :: Lens' ListJobsResponse (Maybe Text)

-- | Zero or more messages describing locations that failed to respond.
ljrFailedLocation :: Lens' ListJobsResponse [FailedLocation]

-- | A subset of the requested job information.
ljrJobs :: Lens' ListJobsResponse [Job]

-- | A source that records can be read and decoded from.
--   
--   <i>See:</i> <a>source</a> smart constructor.
data Source

-- | Creates a value of <a>Source</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>souDoesNotNeedSplitting</a></li>
--   <li><a>souBaseSpecs</a></li>
--   <li><a>souCodec</a></li>
--   <li><a>souSpec</a></li>
--   <li><a>souMetadata</a></li>
--   </ul>
source :: Source

-- | Setting this value to true hints to the framework that the source
--   doesn't need splitting, and using SourceSplitRequest on it would yield
--   SOURCE_SPLIT_OUTCOME_USE_CURRENT. E.g. a file splitter may set this to
--   true when splitting a single file into a set of byte ranges of
--   appropriate size, and set this to false when splitting a filepattern
--   into individual files. However, for efficiency, a file splitter may
--   decide to produce file subranges directly from the filepattern to
--   avoid a splitting round-trip. See SourceSplitRequest for an overview
--   of the splitting process. This field is meaningful only in the Source
--   objects populated by the user (e.g. when filling in a DerivedSource).
--   Source objects supplied by the framework to the user don't have this
--   field populated.
souDoesNotNeedSplitting :: Lens' Source (Maybe Bool)

-- | While splitting, sources may specify the produced bundles as
--   differences against another source, in order to save backend-side
--   memory and allow bigger jobs. For details, see SourceSplitRequest. To
--   support this use case, the full set of parameters of the source is
--   logically obtained by taking the latest explicitly specified value of
--   each parameter in the order: base_specs (later items win), spec
--   (overrides anything in base_specs).
souBaseSpecs :: Lens' Source [SourceBaseSpecsItem]

-- | The codec to use to decode data read from the source.
souCodec :: Lens' Source (Maybe SourceCodec)

-- | The source to read from, plus its parameters.
souSpec :: Lens' Source (Maybe SourceSpec)

-- | Optionally, metadata for this source can be supplied right away,
--   avoiding a SourceGetMetadataOperation roundtrip (see
--   SourceOperationRequest). This field is meaningful only in the Source
--   objects populated by the user (e.g. when filling in a DerivedSource).
--   Source objects supplied by the framework to the user don't have this
--   field populated.
souMetadata :: Lens' Source (Maybe SourceMetadata)

-- | Obsolete in favor of ApproximateReportedProgress and
--   ApproximateSplitRequest.
--   
--   <i>See:</i> <a>approximateProgress</a> smart constructor.
data ApproximateProgress

-- | Creates a value of <a>ApproximateProgress</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>apRemainingTime</a></li>
--   <li><a>apPercentComplete</a></li>
--   <li><a>apPosition</a></li>
--   </ul>
approximateProgress :: ApproximateProgress

-- | Obsolete.
apRemainingTime :: Lens' ApproximateProgress (Maybe Text)

-- | Obsolete.
apPercentComplete :: Lens' ApproximateProgress (Maybe Double)

-- | Obsolete.
apPosition :: Lens' ApproximateProgress (Maybe Position)

-- | WorkerMessage provides information to the backend about a worker.
--   
--   <i>See:</i> <a>workerMessage</a> smart constructor.
data WorkerMessage

-- | Creates a value of <a>WorkerMessage</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>wmWorkerHealthReport</a></li>
--   <li><a>wmTime</a></li>
--   <li><a>wmWorkerMessageCode</a></li>
--   <li><a>wmWorkerMetrics</a></li>
--   <li><a>wmLabels</a></li>
--   </ul>
workerMessage :: WorkerMessage

-- | The health of a worker.
wmWorkerHealthReport :: Lens' WorkerMessage (Maybe WorkerHealthReport)

-- | The timestamp of the worker_message.
wmTime :: Lens' WorkerMessage (Maybe Text)

-- | A worker message code.
wmWorkerMessageCode :: Lens' WorkerMessage (Maybe WorkerMessageCode)

-- | Resource metrics reported by workers.
wmWorkerMetrics :: Lens' WorkerMessage (Maybe ResourceUtilizationReport)

-- | Labels are used to group WorkerMessages. For example, a worker_message
--   about a particular container might have the labels: { "JOB_ID":
--   "2015-04-22", "WORKER_ID": "wordcount-vm-2015…" "CONTAINER_TYPE":
--   "worker", "CONTAINER_ID": "ac1234def"} Label tags typically correspond
--   to Label enum values. However, for ease of development other strings
--   can be used as tags. LABEL_UNSPECIFIED should not be used here.
wmLabels :: Lens' WorkerMessage (Maybe WorkerMessageLabels)

-- | Location information for a specific key-range of a sharded
--   computation. Currently we only support UTF-8 character splits to
--   simplify encoding into JSON.
--   
--   <i>See:</i> <a>keyRangeLocation</a> smart constructor.
data KeyRangeLocation

-- | Creates a value of <a>KeyRangeLocation</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>krlPersistentDirectory</a></li>
--   <li><a>krlDataDisk</a></li>
--   <li><a>krlStart</a></li>
--   <li><a>krlDeliveryEndpoint</a></li>
--   <li><a>krlEnd</a></li>
--   </ul>
keyRangeLocation :: KeyRangeLocation

-- | The location of the persistent state for this range, as a persistent
--   directory in the worker local filesystem.
krlPersistentDirectory :: Lens' KeyRangeLocation (Maybe Text)

-- | The name of the data disk where data for this range is stored. This
--   name is local to the Google Cloud Platform project and uniquely
--   identifies the disk within that project, for example
--   "myproject-1014-104817-4c2-harness-0-disk-1".
krlDataDisk :: Lens' KeyRangeLocation (Maybe Text)

-- | The start (inclusive) of the key range.
krlStart :: Lens' KeyRangeLocation (Maybe Text)

-- | The physical location of this range assignment to be used for
--   streaming computation cross-worker message delivery.
krlDeliveryEndpoint :: Lens' KeyRangeLocation (Maybe Text)

-- | The end (exclusive) of the key range.
krlEnd :: Lens' KeyRangeLocation (Maybe Text)

-- | Information about an output of a multi-output DoFn.
--   
--   <i>See:</i> <a>multiOutputInfo</a> smart constructor.
data MultiOutputInfo

-- | Creates a value of <a>MultiOutputInfo</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>moiTag</a></li>
--   </ul>
multiOutputInfo :: MultiOutputInfo

-- | The id of the tag the user code will emit to this output by; this
--   should correspond to the tag of some SideInputInfo.
moiTag :: Lens' MultiOutputInfo (Maybe Text)

-- | An instruction that does a partial group-by-key. One input and one
--   output.
--   
--   <i>See:</i> <a>partialGroupByKeyInstruction</a> smart constructor.
data PartialGroupByKeyInstruction

-- | Creates a value of <a>PartialGroupByKeyInstruction</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>pgbkiValueCombiningFn</a></li>
--   <li><a>pgbkiSideInputs</a></li>
--   <li><a>pgbkiInput</a></li>
--   <li><a>pgbkiOriginalCombineValuesStepName</a></li>
--   <li><a>pgbkiInputElementCodec</a></li>
--   <li><a>pgbkiOriginalCombineValuesInputStoreName</a></li>
--   </ul>
partialGroupByKeyInstruction :: PartialGroupByKeyInstruction

-- | The value combining function to invoke.
pgbkiValueCombiningFn :: Lens' PartialGroupByKeyInstruction (Maybe PartialGroupByKeyInstructionValueCombiningFn)

-- | Zero or more side inputs.
pgbkiSideInputs :: Lens' PartialGroupByKeyInstruction [SideInputInfo]

-- | Describes the input to the partial group-by-key instruction.
pgbkiInput :: Lens' PartialGroupByKeyInstruction (Maybe InstructionInput)

-- | If this instruction includes a combining function, this is the name of
--   the CombineValues instruction lifted into this instruction.
pgbkiOriginalCombineValuesStepName :: Lens' PartialGroupByKeyInstruction (Maybe Text)

-- | The codec to use for interpreting an element in the input PTable.
pgbkiInputElementCodec :: Lens' PartialGroupByKeyInstruction (Maybe PartialGroupByKeyInstructionInputElementCodec)

-- | If this instruction includes a combining function this is the name of
--   the intermediate store between the GBK and the CombineValues.
pgbkiOriginalCombineValuesInputStoreName :: Lens' PartialGroupByKeyInstruction (Maybe Text)

-- | An instruction that does a ParDo operation. Takes one main input and
--   zero or more side inputs, and produces zero or more outputs. Runs user
--   code.
--   
--   <i>See:</i> <a>parDoInstruction</a> smart constructor.
data ParDoInstruction

-- | Creates a value of <a>ParDoInstruction</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>pdiNumOutputs</a></li>
--   <li><a>pdiMultiOutputInfos</a></li>
--   <li><a>pdiSideInputs</a></li>
--   <li><a>pdiInput</a></li>
--   <li><a>pdiUserFn</a></li>
--   </ul>
parDoInstruction :: ParDoInstruction

-- | The number of outputs.
pdiNumOutputs :: Lens' ParDoInstruction (Maybe Int32)

-- | Information about each of the outputs, if user_fn is a MultiDoFn.
pdiMultiOutputInfos :: Lens' ParDoInstruction [MultiOutputInfo]

-- | Zero or more side inputs.
pdiSideInputs :: Lens' ParDoInstruction [SideInputInfo]

-- | The input.
pdiInput :: Lens' ParDoInstruction (Maybe InstructionInput)

-- | The user function to invoke.
pdiUserFn :: Lens' ParDoInstruction (Maybe ParDoInstructionUserFn)

-- | Identifies the location of a custom souce.
--   
--   <i>See:</i> <a>customSourceLocation</a> smart constructor.
data CustomSourceLocation

-- | Creates a value of <a>CustomSourceLocation</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>cslStateful</a></li>
--   </ul>
customSourceLocation :: CustomSourceLocation

-- | Whether this source is stateful.
cslStateful :: Lens' CustomSourceLocation (Maybe Bool)

-- | A metric value representing a distribution.
--   
--   <i>See:</i> <a>distributionUpdate</a> smart constructor.
data DistributionUpdate

-- | Creates a value of <a>DistributionUpdate</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>duMax</a></li>
--   <li><a>duCount</a></li>
--   <li><a>duMin</a></li>
--   <li><a>duSumOfSquares</a></li>
--   <li><a>duSum</a></li>
--   </ul>
distributionUpdate :: DistributionUpdate

-- | The maximum value present in the distribution.
duMax :: Lens' DistributionUpdate (Maybe SplitInt64)

-- | The count of the number of elements present in the distribution.
duCount :: Lens' DistributionUpdate (Maybe SplitInt64)

-- | The minimum value present in the distribution.
duMin :: Lens' DistributionUpdate (Maybe SplitInt64)

-- | Use a double since the sum of squares is likely to overflow int64.
duSumOfSquares :: Lens' DistributionUpdate (Maybe Double)

-- | Use an int64 since we'd prefer the added precision. If overflow is a
--   common problem we can detect it and use an additional int64 or a
--   double.
duSum :: Lens' DistributionUpdate (Maybe SplitInt64)
data SourceBaseSpecsItem

-- | Creates a value of <a>SourceBaseSpecsItem</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>sbsiAddtional</a></li>
--   </ul>
sourceBaseSpecsItem :: HashMap Text JSONValue -> SourceBaseSpecsItem

-- | Properties of the object.
sbsiAddtional :: Lens' SourceBaseSpecsItem (HashMap Text JSONValue)

-- | Describes a particular operation comprising a MapTask.
--   
--   <i>See:</i> <a>parallelInstruction</a> smart constructor.
data ParallelInstruction

-- | Creates a value of <a>ParallelInstruction</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>piRead</a></li>
--   <li><a>piWrite</a></li>
--   <li><a>piParDo</a></li>
--   <li><a>piPartialGroupByKey</a></li>
--   <li><a>piOutputs</a></li>
--   <li><a>piName</a></li>
--   <li><a>piSystemName</a></li>
--   <li><a>piFlatten</a></li>
--   <li><a>piOriginalName</a></li>
--   </ul>
parallelInstruction :: ParallelInstruction

-- | Additional information for Read instructions.
piRead :: Lens' ParallelInstruction (Maybe ReadInstruction)

-- | Additional information for Write instructions.
piWrite :: Lens' ParallelInstruction (Maybe WriteInstruction)

-- | Additional information for ParDo instructions.
piParDo :: Lens' ParallelInstruction (Maybe ParDoInstruction)

-- | Additional information for PartialGroupByKey instructions.
piPartialGroupByKey :: Lens' ParallelInstruction (Maybe PartialGroupByKeyInstruction)

-- | Describes the outputs of the instruction.
piOutputs :: Lens' ParallelInstruction [InstructionOutput]

-- | User-provided name of this operation.
piName :: Lens' ParallelInstruction (Maybe Text)

-- | System-defined name of this operation. Unique across the workflow.
piSystemName :: Lens' ParallelInstruction (Maybe Text)

-- | Additional information for Flatten instructions.
piFlatten :: Lens' ParallelInstruction (Maybe FlattenInstruction)

-- | System-defined name for the operation in the original workflow graph.
piOriginalName :: Lens' ParallelInstruction (Maybe Text)

-- | How to interpret the source element(s) as a side input value.
--   
--   <i>See:</i> <a>sideInputInfoKind</a> smart constructor.
data SideInputInfoKind

-- | Creates a value of <a>SideInputInfoKind</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>siikAddtional</a></li>
--   </ul>
sideInputInfoKind :: HashMap Text JSONValue -> SideInputInfoKind

-- | Properties of the object.
siikAddtional :: Lens' SideInputInfoKind (HashMap Text JSONValue)

-- | A task that carries configuration information for streaming
--   computations.
--   
--   <i>See:</i> <a>streamingConfigTask</a> smart constructor.
data StreamingConfigTask

-- | Creates a value of <a>StreamingConfigTask</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>sctUserStepToStateFamilyNameMap</a></li>
--   <li><a>sctStreamingComputationConfigs</a></li>
--   </ul>
streamingConfigTask :: StreamingConfigTask

-- | Map from user step names to state families.
sctUserStepToStateFamilyNameMap :: Lens' StreamingConfigTask (Maybe StreamingConfigTaskUserStepToStateFamilyNameMap)

-- | Set of computation configuration information.
sctStreamingComputationConfigs :: Lens' StreamingConfigTask [StreamingComputationConfig]

-- | The metric short id is returned to the user alongside an offset into
--   ReportWorkItemStatusRequest
--   
--   <i>See:</i> <a>metricShortId</a> smart constructor.
data MetricShortId

-- | Creates a value of <a>MetricShortId</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>msiShortId</a></li>
--   <li><a>msiMetricIndex</a></li>
--   </ul>
metricShortId :: MetricShortId

-- | The service-generated short identifier for the metric.
msiShortId :: Lens' MetricShortId (Maybe Int64)

-- | The index of the corresponding metric in the
--   ReportWorkItemStatusRequest. Required.
msiMetricIndex :: Lens' MetricShortId (Maybe Int32)

-- | A request for sending worker messages to the service.
--   
--   <i>See:</i> <a>sendWorkerMessagesRequest</a> smart constructor.
data SendWorkerMessagesRequest

-- | Creates a value of <a>SendWorkerMessagesRequest</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>swmrWorkerMessages</a></li>
--   </ul>
sendWorkerMessagesRequest :: SendWorkerMessagesRequest

-- | The WorkerMessages to send.
swmrWorkerMessages :: Lens' SendWorkerMessagesRequest [WorkerMessage]

-- | DEPRECATED in favor of DerivedSource.
--   
--   <i>See:</i> <a>sourceSplitShard</a> smart constructor.
data SourceSplitShard

-- | Creates a value of <a>SourceSplitShard</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>sssDerivationMode</a></li>
--   <li><a>sssSource</a></li>
--   </ul>
sourceSplitShard :: SourceSplitShard

-- | DEPRECATED
sssDerivationMode :: Lens' SourceSplitShard (Maybe Text)

-- | DEPRECATED
sssSource :: Lens' SourceSplitShard (Maybe Source)

-- | Information about a side input of a DoFn or an input of a SeqDoFn.
--   
--   <i>See:</i> <a>sideInputInfo</a> smart constructor.
data SideInputInfo

-- | Creates a value of <a>SideInputInfo</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>siiTag</a></li>
--   <li><a>siiKind</a></li>
--   <li><a>siiSources</a></li>
--   </ul>
sideInputInfo :: SideInputInfo

-- | The id of the tag the user code will access this side input by; this
--   should correspond to the tag of some MultiOutputInfo.
siiTag :: Lens' SideInputInfo (Maybe Text)

-- | How to interpret the source element(s) as a side input value.
siiKind :: Lens' SideInputInfo (Maybe SideInputInfoKind)

-- | The source(s) to read element(s) from to get the value of this side
--   input. If more than one source, then the elements are taken from the
--   sources, in the specified order if order matters. At least one source
--   is required.
siiSources :: Lens' SideInputInfo [Source]

-- | Additional information about how a Cloud Dataflow job will be executed
--   that isn't contained in the submitted job.
--   
--   <i>See:</i> <a>jobExecutionInfo</a> smart constructor.
data JobExecutionInfo

-- | Creates a value of <a>JobExecutionInfo</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>jeiStages</a></li>
--   </ul>
jobExecutionInfo :: JobExecutionInfo

-- | A mapping from each stage to the information about that stage.
jeiStages :: Lens' JobExecutionInfo (Maybe JobExecutionInfoStages)

-- | The codec to use to decode data read from the source.
--   
--   <i>See:</i> <a>sourceCodec</a> smart constructor.
data SourceCodec

-- | Creates a value of <a>SourceCodec</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>souAddtional</a></li>
--   </ul>
sourceCodec :: HashMap Text JSONValue -> SourceCodec

-- | Properties of the object.
souAddtional :: Lens' SourceCodec (HashMap Text JSONValue)

-- | State family configuration.
--   
--   <i>See:</i> <a>stateFamilyConfig</a> smart constructor.
data StateFamilyConfig

-- | Creates a value of <a>StateFamilyConfig</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>sfcIsRead</a></li>
--   <li><a>sfcStateFamily</a></li>
--   </ul>
stateFamilyConfig :: StateFamilyConfig

-- | If true, this family corresponds to a read operation.
sfcIsRead :: Lens' StateFamilyConfig (Maybe Bool)

-- | The state family value.
sfcStateFamily :: Lens' StateFamilyConfig (Maybe Text)

-- | Data disk assignment information for a specific key-range of a sharded
--   computation. Currently we only support UTF-8 character splits to
--   simplify encoding into JSON.
--   
--   <i>See:</i> <a>keyRangeDataDiskAssignment</a> smart constructor.
data KeyRangeDataDiskAssignment

-- | Creates a value of <a>KeyRangeDataDiskAssignment</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>krddaDataDisk</a></li>
--   <li><a>krddaStart</a></li>
--   <li><a>krddaEnd</a></li>
--   </ul>
keyRangeDataDiskAssignment :: KeyRangeDataDiskAssignment

-- | The name of the data disk where data for this range is stored. This
--   name is local to the Google Cloud Platform project and uniquely
--   identifies the disk within that project, for example
--   "myproject-1014-104817-4c2-harness-0-disk-1".
krddaDataDisk :: Lens' KeyRangeDataDiskAssignment (Maybe Text)

-- | The start (inclusive) of the key range.
krddaStart :: Lens' KeyRangeDataDiskAssignment (Maybe Text)

-- | The end (exclusive) of the key range.
krddaEnd :: Lens' KeyRangeDataDiskAssignment (Maybe Text)

-- | Represents the operation to split a high-level Source specification
--   into bundles (parts for parallel processing). At a high level,
--   splitting of a source into bundles happens as follows:
--   SourceSplitRequest is applied to the source. If it returns
--   SOURCE_SPLIT_OUTCOME_USE_CURRENT, no further splitting happens and the
--   source is used "as is". Otherwise, splitting is applied recursively to
--   each produced DerivedSource. As an optimization, for any Source, if
--   its does_not_need_splitting is true, the framework assumes that
--   splitting this source would return SOURCE_SPLIT_OUTCOME_USE_CURRENT,
--   and doesn't initiate a SourceSplitRequest. This applies both to the
--   initial source being split and to bundles produced from it.
--   
--   <i>See:</i> <a>sourceSplitRequest</a> smart constructor.
data SourceSplitRequest

-- | Creates a value of <a>SourceSplitRequest</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>ssrSource</a></li>
--   <li><a>ssrOptions</a></li>
--   </ul>
sourceSplitRequest :: SourceSplitRequest

-- | Specification of the source to be split.
ssrSource :: Lens' SourceSplitRequest (Maybe Source)

-- | Hints for tuning the splitting process.
ssrOptions :: Lens' SourceSplitRequest (Maybe SourceSplitOptions)

-- | Response to a request to list job messages.
--   
--   <i>See:</i> <a>listJobMessagesResponse</a> smart constructor.
data ListJobMessagesResponse

-- | Creates a value of <a>ListJobMessagesResponse</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>ljmrJobMessages</a></li>
--   <li><a>ljmrNextPageToken</a></li>
--   </ul>
listJobMessagesResponse :: ListJobMessagesResponse

-- | Messages in ascending timestamp order.
ljmrJobMessages :: Lens' ListJobMessagesResponse [JobMessage]

-- | The token to obtain the next page of results if there are more.
ljmrNextPageToken :: Lens' ListJobMessagesResponse (Maybe Text)

-- | Identifies a pubsub location to use for transferring data into or out
--   of a streaming Dataflow job.
--   
--   <i>See:</i> <a>pubsubLocation</a> smart constructor.
data PubsubLocation

-- | Creates a value of <a>PubsubLocation</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>plTrackingSubscription</a></li>
--   <li><a>plDropLateData</a></li>
--   <li><a>plTimestampLabel</a></li>
--   <li><a>plIdLabel</a></li>
--   <li><a>plTopic</a></li>
--   <li><a>plWithAttributes</a></li>
--   <li><a>plSubscription</a></li>
--   </ul>
pubsubLocation :: PubsubLocation

-- | If set, specifies the pubsub subscription that will be used for
--   tracking custom time timestamps for watermark estimation.
plTrackingSubscription :: Lens' PubsubLocation (Maybe Text)

-- | Indicates whether the pipeline allows late-arriving data.
plDropLateData :: Lens' PubsubLocation (Maybe Bool)

-- | If set, contains a pubsub label from which to extract record
--   timestamps. If left empty, record timestamps will be generated upon
--   arrival.
plTimestampLabel :: Lens' PubsubLocation (Maybe Text)

-- | If set, contains a pubsub label from which to extract record ids. If
--   left empty, record deduplication will be strictly best effort.
plIdLabel :: Lens' PubsubLocation (Maybe Text)

-- | A pubsub topic, in the form of "pubsub.googleapis.com/topics/ /"
plTopic :: Lens' PubsubLocation (Maybe Text)

-- | If true, then the client has requested to get pubsub attributes.
plWithAttributes :: Lens' PubsubLocation (Maybe Bool)

-- | A pubsub subscription, in the form of
--   "pubsub.googleapis.com/subscriptions/ /"
plSubscription :: Lens' PubsubLocation (Maybe Text)

-- | A metric value representing a list of floating point numbers.
--   
--   <i>See:</i> <a>floatingPointList</a> smart constructor.
data FloatingPointList

-- | Creates a value of <a>FloatingPointList</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>fplElements</a></li>
--   </ul>
floatingPointList :: FloatingPointList

-- | Elements of the list.
fplElements :: Lens' FloatingPointList [Double]

-- | An input of an instruction, as a reference to an output of a producer
--   instruction.
--   
--   <i>See:</i> <a>instructionInput</a> smart constructor.
data InstructionInput

-- | Creates a value of <a>InstructionInput</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>iiProducerInstructionIndex</a></li>
--   <li><a>iiOutputNum</a></li>
--   </ul>
instructionInput :: InstructionInput

-- | The index (origin zero) of the parallel instruction that produces the
--   output to be consumed by this input. This index is relative to the
--   list of instructions in this input's instruction's containing MapTask.
iiProducerInstructionIndex :: Lens' InstructionInput (Maybe Int32)

-- | The output index (origin zero) within the producer.
iiOutputNum :: Lens' InstructionInput (Maybe Int32)

-- | Describes a particular function to invoke.
--   
--   <i>See:</i> <a>seqMapTask</a> smart constructor.
data SeqMapTask

-- | Creates a value of <a>SeqMapTask</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>smtInputs</a></li>
--   <li><a>smtName</a></li>
--   <li><a>smtOutputInfos</a></li>
--   <li><a>smtSystemName</a></li>
--   <li><a>smtStageName</a></li>
--   <li><a>smtUserFn</a></li>
--   </ul>
seqMapTask :: SeqMapTask

-- | Information about each of the inputs.
smtInputs :: Lens' SeqMapTask [SideInputInfo]

-- | The user-provided name of the SeqDo operation.
smtName :: Lens' SeqMapTask (Maybe Text)

-- | Information about each of the outputs.
smtOutputInfos :: Lens' SeqMapTask [SeqMapTaskOutputInfo]

-- | System-defined name of the SeqDo operation. Unique across the
--   workflow.
smtSystemName :: Lens' SeqMapTask (Maybe Text)

-- | System-defined name of the stage containing the SeqDo operation.
--   Unique across the workflow.
smtStageName :: Lens' SeqMapTask (Maybe Text)

-- | The user function to invoke.
smtUserFn :: Lens' SeqMapTask (Maybe SeqMapTaskUserFn)

-- | Map from user step names to state families.
--   
--   <i>See:</i> <a>streamingConfigTaskUserStepToStateFamilyNameMap</a>
--   smart constructor.
data StreamingConfigTaskUserStepToStateFamilyNameMap

-- | Creates a value of
--   <a>StreamingConfigTaskUserStepToStateFamilyNameMap</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>sctustsfnmAddtional</a></li>
--   </ul>
streamingConfigTaskUserStepToStateFamilyNameMap :: HashMap Text Text -> StreamingConfigTaskUserStepToStateFamilyNameMap
sctustsfnmAddtional :: Lens' StreamingConfigTaskUserStepToStateFamilyNameMap (HashMap Text Text)

-- | A work item that represents the different operations that can be
--   performed on a user-defined Source specification.
--   
--   <i>See:</i> <a>sourceOperationRequest</a> smart constructor.
data SourceOperationRequest

-- | Creates a value of <a>SourceOperationRequest</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>sSplit</a></li>
--   <li><a>sGetMetadata</a></li>
--   </ul>
sourceOperationRequest :: SourceOperationRequest

-- | Information about a request to split a source.
sSplit :: Lens' SourceOperationRequest (Maybe SourceSplitRequest)

-- | Information about a request to get metadata about a source.
sGetMetadata :: Lens' SourceOperationRequest (Maybe SourceGetMetadataRequest)

-- | Response to a request to lease WorkItems.
--   
--   <i>See:</i> <a>leaseWorkItemResponse</a> smart constructor.
data LeaseWorkItemResponse

-- | Creates a value of <a>LeaseWorkItemResponse</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>lwirWorkItems</a></li>
--   </ul>
leaseWorkItemResponse :: LeaseWorkItemResponse

-- | A list of the leased WorkItems.
lwirWorkItems :: Lens' LeaseWorkItemResponse [WorkItem]

-- | Position defines a position within a collection of data. The value can
--   be either the end position, a key (used with ordered collections), a
--   byte offset, or a record index.
--   
--   <i>See:</i> <a>position</a> smart constructor.
data Position

-- | Creates a value of <a>Position</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>pByteOffSet</a></li>
--   <li><a>pConcatPosition</a></li>
--   <li><a>pRecordIndex</a></li>
--   <li><a>pShufflePosition</a></li>
--   <li><a>pKey</a></li>
--   <li><a>pEnd</a></li>
--   </ul>
position :: Position

-- | Position is a byte offset.
pByteOffSet :: Lens' Position (Maybe Int64)

-- | CloudPosition is a concat position.
pConcatPosition :: Lens' Position (Maybe ConcatPosition)

-- | Position is a record index.
pRecordIndex :: Lens' Position (Maybe Int64)

-- | CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
--   sharding).
pShufflePosition :: Lens' Position (Maybe Text)

-- | Position is a string key, ordered lexicographically.
pKey :: Lens' Position (Maybe Text)

-- | Position is past all other positions. Also useful for the end position
--   of an unbounded range.
pEnd :: Lens' Position (Maybe Bool)


-- | Creates a Cloud Dataflow job.
--   
--   <i>See:</i> <a>Google Dataflow API Reference</a> for
--   <tt>dataflow.projects.jobs.create</tt>.
module Network.Google.Resource.Dataflow.Projects.Jobs.Create

-- | A resource alias for <tt>dataflow.projects.jobs.create</tt> method
--   which the <a>ProjectsJobsCreate</a> request conforms to.
type ProjectsJobsCreateResource = "v1b3" :> ("projects" :> (Capture "projectId" Text :> ("jobs" :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "location" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "view" Text :> (QueryParam "replaceJobId" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Job :> Post '[JSON] Job)))))))))))))))

-- | Creates a value of <a>ProjectsJobsCreate</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>pjcXgafv</a></li>
--   <li><a>pjcUploadProtocol</a></li>
--   <li><a>pjcLocation</a></li>
--   <li><a>pjcPp</a></li>
--   <li><a>pjcAccessToken</a></li>
--   <li><a>pjcUploadType</a></li>
--   <li><a>pjcPayload</a></li>
--   <li><a>pjcBearerToken</a></li>
--   <li><a>pjcView</a></li>
--   <li><a>pjcProjectId</a></li>
--   <li><a>pjcReplaceJobId</a></li>
--   <li><a>pjcCallback</a></li>
--   </ul>
projectsJobsCreate :: Job -> Text -> ProjectsJobsCreate

-- | Creates a Cloud Dataflow job.
--   
--   <i>See:</i> <a>projectsJobsCreate</a> smart constructor.
data ProjectsJobsCreate

-- | V1 error format.
pjcXgafv :: Lens' ProjectsJobsCreate (Maybe Text)

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

-- | The location that contains this job.
pjcLocation :: Lens' ProjectsJobsCreate (Maybe Text)

-- | Pretty-print response.
pjcPp :: Lens' ProjectsJobsCreate Bool

-- | OAuth access token.
pjcAccessToken :: Lens' ProjectsJobsCreate (Maybe Text)

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

-- | Multipart request metadata.
pjcPayload :: Lens' ProjectsJobsCreate Job

-- | OAuth bearer token.
pjcBearerToken :: Lens' ProjectsJobsCreate (Maybe Text)

-- | The level of information requested in response.
pjcView :: Lens' ProjectsJobsCreate (Maybe Text)

-- | The ID of the Cloud Platform project that the job belongs to.
pjcProjectId :: Lens' ProjectsJobsCreate Text

-- | Deprecated. This field is now in the Job message.
pjcReplaceJobId :: Lens' ProjectsJobsCreate (Maybe Text)

-- | JSONP
pjcCallback :: Lens' ProjectsJobsCreate (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Dataflow.Projects.Jobs.Create.ProjectsJobsCreate
instance Data.Data.Data Network.Google.Resource.Dataflow.Projects.Jobs.Create.ProjectsJobsCreate
instance GHC.Show.Show Network.Google.Resource.Dataflow.Projects.Jobs.Create.ProjectsJobsCreate
instance GHC.Classes.Eq Network.Google.Resource.Dataflow.Projects.Jobs.Create.ProjectsJobsCreate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Dataflow.Projects.Jobs.Create.ProjectsJobsCreate


-- | Get encoded debug configuration for component. Not cacheable.
--   
--   <i>See:</i> <a>Google Dataflow API Reference</a> for
--   <tt>dataflow.projects.jobs.debug.getConfig</tt>.
module Network.Google.Resource.Dataflow.Projects.Jobs.Debug.GetConfig

-- | A resource alias for <tt>dataflow.projects.jobs.debug.getConfig</tt>
--   method which the <a>ProjectsJobsDebugGetConfig</a> request conforms
--   to.
type ProjectsJobsDebugGetConfigResource = "v1b3" :> ("projects" :> (Capture "projectId" Text :> ("jobs" :> (Capture "jobId" Text :> ("debug" :> ("getConfig" :> (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] GetDebugConfigRequest :> Post '[JSON] GetDebugConfigResponse)))))))))))))))

-- | Creates a value of <a>ProjectsJobsDebugGetConfig</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>pjdgcXgafv</a></li>
--   <li><a>pjdgcJobId</a></li>
--   <li><a>pjdgcUploadProtocol</a></li>
--   <li><a>pjdgcPp</a></li>
--   <li><a>pjdgcAccessToken</a></li>
--   <li><a>pjdgcUploadType</a></li>
--   <li><a>pjdgcPayload</a></li>
--   <li><a>pjdgcBearerToken</a></li>
--   <li><a>pjdgcProjectId</a></li>
--   <li><a>pjdgcCallback</a></li>
--   </ul>
projectsJobsDebugGetConfig :: Text -> GetDebugConfigRequest -> Text -> ProjectsJobsDebugGetConfig

-- | Get encoded debug configuration for component. Not cacheable.
--   
--   <i>See:</i> <a>projectsJobsDebugGetConfig</a> smart constructor.
data ProjectsJobsDebugGetConfig

-- | V1 error format.
pjdgcXgafv :: Lens' ProjectsJobsDebugGetConfig (Maybe Text)

-- | The job id.
pjdgcJobId :: Lens' ProjectsJobsDebugGetConfig Text

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

-- | Pretty-print response.
pjdgcPp :: Lens' ProjectsJobsDebugGetConfig Bool

-- | OAuth access token.
pjdgcAccessToken :: Lens' ProjectsJobsDebugGetConfig (Maybe Text)

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

-- | Multipart request metadata.
pjdgcPayload :: Lens' ProjectsJobsDebugGetConfig GetDebugConfigRequest

-- | OAuth bearer token.
pjdgcBearerToken :: Lens' ProjectsJobsDebugGetConfig (Maybe Text)

-- | The project id.
pjdgcProjectId :: Lens' ProjectsJobsDebugGetConfig Text

-- | JSONP
pjdgcCallback :: Lens' ProjectsJobsDebugGetConfig (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Dataflow.Projects.Jobs.Debug.GetConfig.ProjectsJobsDebugGetConfig
instance Data.Data.Data Network.Google.Resource.Dataflow.Projects.Jobs.Debug.GetConfig.ProjectsJobsDebugGetConfig
instance GHC.Show.Show Network.Google.Resource.Dataflow.Projects.Jobs.Debug.GetConfig.ProjectsJobsDebugGetConfig
instance GHC.Classes.Eq Network.Google.Resource.Dataflow.Projects.Jobs.Debug.GetConfig.ProjectsJobsDebugGetConfig
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Dataflow.Projects.Jobs.Debug.GetConfig.ProjectsJobsDebugGetConfig


-- | Send encoded debug capture data for component.
--   
--   <i>See:</i> <a>Google Dataflow API Reference</a> for
--   <tt>dataflow.projects.jobs.debug.sendCapture</tt>.
module Network.Google.Resource.Dataflow.Projects.Jobs.Debug.SendCapture

-- | A resource alias for <tt>dataflow.projects.jobs.debug.sendCapture</tt>
--   method which the <a>ProjectsJobsDebugSendCapture</a> request conforms
--   to.
type ProjectsJobsDebugSendCaptureResource = "v1b3" :> ("projects" :> (Capture "projectId" Text :> ("jobs" :> (Capture "jobId" Text :> ("debug" :> ("sendCapture" :> (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] SendDebugCaptureRequest :> Post '[JSON] SendDebugCaptureResponse)))))))))))))))

-- | Creates a value of <a>ProjectsJobsDebugSendCapture</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>pjdscXgafv</a></li>
--   <li><a>pjdscJobId</a></li>
--   <li><a>pjdscUploadProtocol</a></li>
--   <li><a>pjdscPp</a></li>
--   <li><a>pjdscAccessToken</a></li>
--   <li><a>pjdscUploadType</a></li>
--   <li><a>pjdscPayload</a></li>
--   <li><a>pjdscBearerToken</a></li>
--   <li><a>pjdscProjectId</a></li>
--   <li><a>pjdscCallback</a></li>
--   </ul>
projectsJobsDebugSendCapture :: Text -> SendDebugCaptureRequest -> Text -> ProjectsJobsDebugSendCapture

-- | Send encoded debug capture data for component.
--   
--   <i>See:</i> <a>projectsJobsDebugSendCapture</a> smart constructor.
data ProjectsJobsDebugSendCapture

-- | V1 error format.
pjdscXgafv :: Lens' ProjectsJobsDebugSendCapture (Maybe Text)

-- | The job id.
pjdscJobId :: Lens' ProjectsJobsDebugSendCapture Text

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

-- | Pretty-print response.
pjdscPp :: Lens' ProjectsJobsDebugSendCapture Bool

-- | OAuth access token.
pjdscAccessToken :: Lens' ProjectsJobsDebugSendCapture (Maybe Text)

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

-- | Multipart request metadata.
pjdscPayload :: Lens' ProjectsJobsDebugSendCapture SendDebugCaptureRequest

-- | OAuth bearer token.
pjdscBearerToken :: Lens' ProjectsJobsDebugSendCapture (Maybe Text)

-- | The project id.
pjdscProjectId :: Lens' ProjectsJobsDebugSendCapture Text

-- | JSONP
pjdscCallback :: Lens' ProjectsJobsDebugSendCapture (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Dataflow.Projects.Jobs.Debug.SendCapture.ProjectsJobsDebugSendCapture
instance Data.Data.Data Network.Google.Resource.Dataflow.Projects.Jobs.Debug.SendCapture.ProjectsJobsDebugSendCapture
instance GHC.Show.Show Network.Google.Resource.Dataflow.Projects.Jobs.Debug.SendCapture.ProjectsJobsDebugSendCapture
instance GHC.Classes.Eq Network.Google.Resource.Dataflow.Projects.Jobs.Debug.SendCapture.ProjectsJobsDebugSendCapture
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Dataflow.Projects.Jobs.Debug.SendCapture.ProjectsJobsDebugSendCapture


-- | Gets the state of the specified Cloud Dataflow job.
--   
--   <i>See:</i> <a>Google Dataflow API Reference</a> for
--   <tt>dataflow.projects.jobs.get</tt>.
module Network.Google.Resource.Dataflow.Projects.Jobs.Get

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

-- | Creates a value of <a>ProjectsJobsGet</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>pjgXgafv</a></li>
--   <li><a>pjgJobId</a></li>
--   <li><a>pjgUploadProtocol</a></li>
--   <li><a>pjgLocation</a></li>
--   <li><a>pjgPp</a></li>
--   <li><a>pjgAccessToken</a></li>
--   <li><a>pjgUploadType</a></li>
--   <li><a>pjgBearerToken</a></li>
--   <li><a>pjgView</a></li>
--   <li><a>pjgProjectId</a></li>
--   <li><a>pjgCallback</a></li>
--   </ul>
projectsJobsGet :: Text -> Text -> ProjectsJobsGet

-- | Gets the state of the specified Cloud Dataflow job.
--   
--   <i>See:</i> <a>projectsJobsGet</a> smart constructor.
data ProjectsJobsGet

-- | V1 error format.
pjgXgafv :: Lens' ProjectsJobsGet (Maybe Text)

-- | The job ID.
pjgJobId :: Lens' ProjectsJobsGet Text

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

-- | The location that contains this job.
pjgLocation :: Lens' ProjectsJobsGet (Maybe Text)

-- | Pretty-print response.
pjgPp :: Lens' ProjectsJobsGet Bool

-- | OAuth access token.
pjgAccessToken :: Lens' ProjectsJobsGet (Maybe Text)

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

-- | OAuth bearer token.
pjgBearerToken :: Lens' ProjectsJobsGet (Maybe Text)

-- | The level of information requested in response.
pjgView :: Lens' ProjectsJobsGet (Maybe Text)

-- | The ID of the Cloud Platform project that the job belongs to.
pjgProjectId :: Lens' ProjectsJobsGet Text

-- | JSONP
pjgCallback :: Lens' ProjectsJobsGet (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Dataflow.Projects.Jobs.Get.ProjectsJobsGet
instance Data.Data.Data Network.Google.Resource.Dataflow.Projects.Jobs.Get.ProjectsJobsGet
instance GHC.Show.Show Network.Google.Resource.Dataflow.Projects.Jobs.Get.ProjectsJobsGet
instance GHC.Classes.Eq Network.Google.Resource.Dataflow.Projects.Jobs.Get.ProjectsJobsGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Dataflow.Projects.Jobs.Get.ProjectsJobsGet


-- | Request the job status.
--   
--   <i>See:</i> <a>Google Dataflow API Reference</a> for
--   <tt>dataflow.projects.jobs.getMetrics</tt>.
module Network.Google.Resource.Dataflow.Projects.Jobs.GetMetrics

-- | A resource alias for <tt>dataflow.projects.jobs.getMetrics</tt> method
--   which the <a>ProjectsJobsGetMetrics</a> request conforms to.
type ProjectsJobsGetMetricsResource = "v1b3" :> ("projects" :> (Capture "projectId" Text :> ("jobs" :> (Capture "jobId" Text :> ("metrics" :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "location" Text :> (QueryParam "startTime" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] JobMetrics)))))))))))))))

-- | Creates a value of <a>ProjectsJobsGetMetrics</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>pjgmXgafv</a></li>
--   <li><a>pjgmJobId</a></li>
--   <li><a>pjgmUploadProtocol</a></li>
--   <li><a>pjgmLocation</a></li>
--   <li><a>pjgmStartTime</a></li>
--   <li><a>pjgmPp</a></li>
--   <li><a>pjgmAccessToken</a></li>
--   <li><a>pjgmUploadType</a></li>
--   <li><a>pjgmBearerToken</a></li>
--   <li><a>pjgmProjectId</a></li>
--   <li><a>pjgmCallback</a></li>
--   </ul>
projectsJobsGetMetrics :: Text -> Text -> ProjectsJobsGetMetrics

-- | Request the job status.
--   
--   <i>See:</i> <a>projectsJobsGetMetrics</a> smart constructor.
data ProjectsJobsGetMetrics

-- | V1 error format.
pjgmXgafv :: Lens' ProjectsJobsGetMetrics (Maybe Text)

-- | The job to get messages for.
pjgmJobId :: Lens' ProjectsJobsGetMetrics Text

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

-- | The location which contains the job specified by job_id.
pjgmLocation :: Lens' ProjectsJobsGetMetrics (Maybe Text)

-- | Return only metric data that has changed since this time. Default is
--   to return all information about all metrics for the job.
pjgmStartTime :: Lens' ProjectsJobsGetMetrics (Maybe Text)

-- | Pretty-print response.
pjgmPp :: Lens' ProjectsJobsGetMetrics Bool

-- | OAuth access token.
pjgmAccessToken :: Lens' ProjectsJobsGetMetrics (Maybe Text)

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

-- | OAuth bearer token.
pjgmBearerToken :: Lens' ProjectsJobsGetMetrics (Maybe Text)

-- | A project id.
pjgmProjectId :: Lens' ProjectsJobsGetMetrics Text

-- | JSONP
pjgmCallback :: Lens' ProjectsJobsGetMetrics (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Dataflow.Projects.Jobs.GetMetrics.ProjectsJobsGetMetrics
instance Data.Data.Data Network.Google.Resource.Dataflow.Projects.Jobs.GetMetrics.ProjectsJobsGetMetrics
instance GHC.Show.Show Network.Google.Resource.Dataflow.Projects.Jobs.GetMetrics.ProjectsJobsGetMetrics
instance GHC.Classes.Eq Network.Google.Resource.Dataflow.Projects.Jobs.GetMetrics.ProjectsJobsGetMetrics
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Dataflow.Projects.Jobs.GetMetrics.ProjectsJobsGetMetrics


-- | List the jobs of a project.
--   
--   <i>See:</i> <a>Google Dataflow API Reference</a> for
--   <tt>dataflow.projects.jobs.list</tt>.
module Network.Google.Resource.Dataflow.Projects.Jobs.List

-- | A resource alias for <tt>dataflow.projects.jobs.list</tt> method which
--   the <a>ProjectsJobsList</a> request conforms to.
type ProjectsJobsListResource = "v1b3" :> ("projects" :> (Capture "projectId" Text :> ("jobs" :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "location" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "view" 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>ProjectsJobsList</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>pjlXgafv</a></li>
--   <li><a>pjlUploadProtocol</a></li>
--   <li><a>pjlLocation</a></li>
--   <li><a>pjlPp</a></li>
--   <li><a>pjlAccessToken</a></li>
--   <li><a>pjlUploadType</a></li>
--   <li><a>pjlBearerToken</a></li>
--   <li><a>pjlView</a></li>
--   <li><a>pjlFilter</a></li>
--   <li><a>pjlPageToken</a></li>
--   <li><a>pjlProjectId</a></li>
--   <li><a>pjlPageSize</a></li>
--   <li><a>pjlCallback</a></li>
--   </ul>
projectsJobsList :: Text -> ProjectsJobsList

-- | List the jobs of a project.
--   
--   <i>See:</i> <a>projectsJobsList</a> smart constructor.
data ProjectsJobsList

-- | V1 error format.
pjlXgafv :: Lens' ProjectsJobsList (Maybe Text)

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

-- | The location that contains this job.
pjlLocation :: Lens' ProjectsJobsList (Maybe Text)

-- | Pretty-print response.
pjlPp :: Lens' ProjectsJobsList Bool

-- | OAuth access token.
pjlAccessToken :: Lens' ProjectsJobsList (Maybe Text)

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

-- | OAuth bearer token.
pjlBearerToken :: Lens' ProjectsJobsList (Maybe Text)

-- | Level of information requested in response. Default is
--   `JOB_VIEW_SUMMARY`.
pjlView :: Lens' ProjectsJobsList (Maybe Text)

-- | The kind of filter to use.
pjlFilter :: Lens' ProjectsJobsList (Maybe Text)

-- | Set this to the 'next_page_token' field of a previous response to
--   request additional results in a long list.
pjlPageToken :: Lens' ProjectsJobsList (Maybe Text)

-- | The project which owns the jobs.
pjlProjectId :: Lens' ProjectsJobsList Text

-- | If there are many jobs, limit response to at most this many. The
--   actual number of jobs returned will be the lesser of max_responses and
--   an unspecified server-defined limit.
pjlPageSize :: Lens' ProjectsJobsList (Maybe Int32)

-- | JSONP
pjlCallback :: Lens' ProjectsJobsList (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Dataflow.Projects.Jobs.List.ProjectsJobsList
instance Data.Data.Data Network.Google.Resource.Dataflow.Projects.Jobs.List.ProjectsJobsList
instance GHC.Show.Show Network.Google.Resource.Dataflow.Projects.Jobs.List.ProjectsJobsList
instance GHC.Classes.Eq Network.Google.Resource.Dataflow.Projects.Jobs.List.ProjectsJobsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Dataflow.Projects.Jobs.List.ProjectsJobsList


-- | Request the job status.
--   
--   <i>See:</i> <a>Google Dataflow API Reference</a> for
--   <tt>dataflow.projects.jobs.messages.list</tt>.
module Network.Google.Resource.Dataflow.Projects.Jobs.Messages.List

-- | A resource alias for <tt>dataflow.projects.jobs.messages.list</tt>
--   method which the <a>ProjectsJobsMessagesList</a> request conforms to.
type ProjectsJobsMessagesListResource = "v1b3" :> ("projects" :> (Capture "projectId" Text :> ("jobs" :> (Capture "jobId" Text :> ("messages" :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "location" Text :> (QueryParam "startTime" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "endTime" Text :> (QueryParam "minimumImportance" Text :> (QueryParam "pageToken" Text :> (QueryParam "pageSize" (Textual Int32) :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ListJobMessagesResponse)))))))))))))))))))

-- | Creates a value of <a>ProjectsJobsMessagesList</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>pjmlXgafv</a></li>
--   <li><a>pjmlJobId</a></li>
--   <li><a>pjmlUploadProtocol</a></li>
--   <li><a>pjmlLocation</a></li>
--   <li><a>pjmlStartTime</a></li>
--   <li><a>pjmlPp</a></li>
--   <li><a>pjmlAccessToken</a></li>
--   <li><a>pjmlUploadType</a></li>
--   <li><a>pjmlBearerToken</a></li>
--   <li><a>pjmlEndTime</a></li>
--   <li><a>pjmlMinimumImportance</a></li>
--   <li><a>pjmlPageToken</a></li>
--   <li><a>pjmlProjectId</a></li>
--   <li><a>pjmlPageSize</a></li>
--   <li><a>pjmlCallback</a></li>
--   </ul>
projectsJobsMessagesList :: Text -> Text -> ProjectsJobsMessagesList

-- | Request the job status.
--   
--   <i>See:</i> <a>projectsJobsMessagesList</a> smart constructor.
data ProjectsJobsMessagesList

-- | V1 error format.
pjmlXgafv :: Lens' ProjectsJobsMessagesList (Maybe Text)

-- | The job to get messages about.
pjmlJobId :: Lens' ProjectsJobsMessagesList Text

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

-- | The location which contains the job specified by job_id.
pjmlLocation :: Lens' ProjectsJobsMessagesList (Maybe Text)

-- | If specified, return only messages with timestamps &gt;= start_time.
--   The default is the job creation time (i.e. beginning of messages).
pjmlStartTime :: Lens' ProjectsJobsMessagesList (Maybe Text)

-- | Pretty-print response.
pjmlPp :: Lens' ProjectsJobsMessagesList Bool

-- | OAuth access token.
pjmlAccessToken :: Lens' ProjectsJobsMessagesList (Maybe Text)

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

-- | OAuth bearer token.
pjmlBearerToken :: Lens' ProjectsJobsMessagesList (Maybe Text)

-- | Return only messages with timestamps &lt; end_time. The default is now
--   (i.e. return up to the latest messages available).
pjmlEndTime :: Lens' ProjectsJobsMessagesList (Maybe Text)

-- | Filter to only get messages with importance &gt;= level
pjmlMinimumImportance :: Lens' ProjectsJobsMessagesList (Maybe Text)

-- | If supplied, this should be the value of next_page_token returned by
--   an earlier call. This will cause the next page of results to be
--   returned.
pjmlPageToken :: Lens' ProjectsJobsMessagesList (Maybe Text)

-- | A project id.
pjmlProjectId :: Lens' ProjectsJobsMessagesList Text

-- | If specified, determines the maximum number of messages to return. If
--   unspecified, the service may choose an appropriate default, or may
--   return an arbitrarily large number of results.
pjmlPageSize :: Lens' ProjectsJobsMessagesList (Maybe Int32)

-- | JSONP
pjmlCallback :: Lens' ProjectsJobsMessagesList (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Dataflow.Projects.Jobs.Messages.List.ProjectsJobsMessagesList
instance Data.Data.Data Network.Google.Resource.Dataflow.Projects.Jobs.Messages.List.ProjectsJobsMessagesList
instance GHC.Show.Show Network.Google.Resource.Dataflow.Projects.Jobs.Messages.List.ProjectsJobsMessagesList
instance GHC.Classes.Eq Network.Google.Resource.Dataflow.Projects.Jobs.Messages.List.ProjectsJobsMessagesList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Dataflow.Projects.Jobs.Messages.List.ProjectsJobsMessagesList


-- | Updates the state of an existing Cloud Dataflow job.
--   
--   <i>See:</i> <a>Google Dataflow API Reference</a> for
--   <tt>dataflow.projects.jobs.update</tt>.
module Network.Google.Resource.Dataflow.Projects.Jobs.Update

-- | A resource alias for <tt>dataflow.projects.jobs.update</tt> method
--   which the <a>ProjectsJobsUpdate</a> request conforms to.
type ProjectsJobsUpdateResource = "v1b3" :> ("projects" :> (Capture "projectId" Text :> ("jobs" :> (Capture "jobId" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "location" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Job :> Put '[JSON] Job))))))))))))))

-- | Creates a value of <a>ProjectsJobsUpdate</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>pjuXgafv</a></li>
--   <li><a>pjuJobId</a></li>
--   <li><a>pjuUploadProtocol</a></li>
--   <li><a>pjuLocation</a></li>
--   <li><a>pjuPp</a></li>
--   <li><a>pjuAccessToken</a></li>
--   <li><a>pjuUploadType</a></li>
--   <li><a>pjuPayload</a></li>
--   <li><a>pjuBearerToken</a></li>
--   <li><a>pjuProjectId</a></li>
--   <li><a>pjuCallback</a></li>
--   </ul>
projectsJobsUpdate :: Text -> Job -> Text -> ProjectsJobsUpdate

-- | Updates the state of an existing Cloud Dataflow job.
--   
--   <i>See:</i> <a>projectsJobsUpdate</a> smart constructor.
data ProjectsJobsUpdate

-- | V1 error format.
pjuXgafv :: Lens' ProjectsJobsUpdate (Maybe Text)

-- | The job ID.
pjuJobId :: Lens' ProjectsJobsUpdate Text

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

-- | The location that contains this job.
pjuLocation :: Lens' ProjectsJobsUpdate (Maybe Text)

-- | Pretty-print response.
pjuPp :: Lens' ProjectsJobsUpdate Bool

-- | OAuth access token.
pjuAccessToken :: Lens' ProjectsJobsUpdate (Maybe Text)

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

-- | Multipart request metadata.
pjuPayload :: Lens' ProjectsJobsUpdate Job

-- | OAuth bearer token.
pjuBearerToken :: Lens' ProjectsJobsUpdate (Maybe Text)

-- | The ID of the Cloud Platform project that the job belongs to.
pjuProjectId :: Lens' ProjectsJobsUpdate Text

-- | JSONP
pjuCallback :: Lens' ProjectsJobsUpdate (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Dataflow.Projects.Jobs.Update.ProjectsJobsUpdate
instance Data.Data.Data Network.Google.Resource.Dataflow.Projects.Jobs.Update.ProjectsJobsUpdate
instance GHC.Show.Show Network.Google.Resource.Dataflow.Projects.Jobs.Update.ProjectsJobsUpdate
instance GHC.Classes.Eq Network.Google.Resource.Dataflow.Projects.Jobs.Update.ProjectsJobsUpdate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Dataflow.Projects.Jobs.Update.ProjectsJobsUpdate


-- | Leases a dataflow WorkItem to run.
--   
--   <i>See:</i> <a>Google Dataflow API Reference</a> for
--   <tt>dataflow.projects.jobs.workItems.lease</tt>.
module Network.Google.Resource.Dataflow.Projects.Jobs.WorkItems.Lease

-- | A resource alias for <tt>dataflow.projects.jobs.workItems.lease</tt>
--   method which the <a>ProjectsJobsWorkItemsLease</a> request conforms
--   to.
type ProjectsJobsWorkItemsLeaseResource = "v1b3" :> ("projects" :> (Capture "projectId" Text :> ("jobs" :> (Capture "jobId" Text :> ("workItems:lease" :> (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] LeaseWorkItemRequest :> Post '[JSON] LeaseWorkItemResponse))))))))))))))

-- | Creates a value of <a>ProjectsJobsWorkItemsLease</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>pjwilXgafv</a></li>
--   <li><a>pjwilJobId</a></li>
--   <li><a>pjwilUploadProtocol</a></li>
--   <li><a>pjwilPp</a></li>
--   <li><a>pjwilAccessToken</a></li>
--   <li><a>pjwilUploadType</a></li>
--   <li><a>pjwilPayload</a></li>
--   <li><a>pjwilBearerToken</a></li>
--   <li><a>pjwilProjectId</a></li>
--   <li><a>pjwilCallback</a></li>
--   </ul>
projectsJobsWorkItemsLease :: Text -> LeaseWorkItemRequest -> Text -> ProjectsJobsWorkItemsLease

-- | Leases a dataflow WorkItem to run.
--   
--   <i>See:</i> <a>projectsJobsWorkItemsLease</a> smart constructor.
data ProjectsJobsWorkItemsLease

-- | V1 error format.
pjwilXgafv :: Lens' ProjectsJobsWorkItemsLease (Maybe Text)

-- | Identifies the workflow job this worker belongs to.
pjwilJobId :: Lens' ProjectsJobsWorkItemsLease Text

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

-- | Pretty-print response.
pjwilPp :: Lens' ProjectsJobsWorkItemsLease Bool

-- | OAuth access token.
pjwilAccessToken :: Lens' ProjectsJobsWorkItemsLease (Maybe Text)

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

-- | Multipart request metadata.
pjwilPayload :: Lens' ProjectsJobsWorkItemsLease LeaseWorkItemRequest

-- | OAuth bearer token.
pjwilBearerToken :: Lens' ProjectsJobsWorkItemsLease (Maybe Text)

-- | Identifies the project this worker belongs to.
pjwilProjectId :: Lens' ProjectsJobsWorkItemsLease Text

-- | JSONP
pjwilCallback :: Lens' ProjectsJobsWorkItemsLease (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Dataflow.Projects.Jobs.WorkItems.Lease.ProjectsJobsWorkItemsLease
instance Data.Data.Data Network.Google.Resource.Dataflow.Projects.Jobs.WorkItems.Lease.ProjectsJobsWorkItemsLease
instance GHC.Show.Show Network.Google.Resource.Dataflow.Projects.Jobs.WorkItems.Lease.ProjectsJobsWorkItemsLease
instance GHC.Classes.Eq Network.Google.Resource.Dataflow.Projects.Jobs.WorkItems.Lease.ProjectsJobsWorkItemsLease
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Dataflow.Projects.Jobs.WorkItems.Lease.ProjectsJobsWorkItemsLease


-- | Reports the status of dataflow WorkItems leased by a worker.
--   
--   <i>See:</i> <a>Google Dataflow API Reference</a> for
--   <tt>dataflow.projects.jobs.workItems.reportStatus</tt>.
module Network.Google.Resource.Dataflow.Projects.Jobs.WorkItems.ReportStatus

-- | A resource alias for
--   <tt>dataflow.projects.jobs.workItems.reportStatus</tt> method which
--   the <a>ProjectsJobsWorkItemsReportStatus</a> request conforms to.
type ProjectsJobsWorkItemsReportStatusResource = "v1b3" :> ("projects" :> (Capture "projectId" Text :> ("jobs" :> (Capture "jobId" Text :> ("workItems:reportStatus" :> (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] ReportWorkItemStatusRequest :> Post '[JSON] ReportWorkItemStatusResponse))))))))))))))

-- | Creates a value of <a>ProjectsJobsWorkItemsReportStatus</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>pjwirsXgafv</a></li>
--   <li><a>pjwirsJobId</a></li>
--   <li><a>pjwirsUploadProtocol</a></li>
--   <li><a>pjwirsPp</a></li>
--   <li><a>pjwirsAccessToken</a></li>
--   <li><a>pjwirsUploadType</a></li>
--   <li><a>pjwirsPayload</a></li>
--   <li><a>pjwirsBearerToken</a></li>
--   <li><a>pjwirsProjectId</a></li>
--   <li><a>pjwirsCallback</a></li>
--   </ul>
projectsJobsWorkItemsReportStatus :: Text -> ReportWorkItemStatusRequest -> Text -> ProjectsJobsWorkItemsReportStatus

-- | Reports the status of dataflow WorkItems leased by a worker.
--   
--   <i>See:</i> <a>projectsJobsWorkItemsReportStatus</a> smart
--   constructor.
data ProjectsJobsWorkItemsReportStatus

-- | V1 error format.
pjwirsXgafv :: Lens' ProjectsJobsWorkItemsReportStatus (Maybe Text)

-- | The job which the WorkItem is part of.
pjwirsJobId :: Lens' ProjectsJobsWorkItemsReportStatus Text

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

-- | Pretty-print response.
pjwirsPp :: Lens' ProjectsJobsWorkItemsReportStatus Bool

-- | OAuth access token.
pjwirsAccessToken :: Lens' ProjectsJobsWorkItemsReportStatus (Maybe Text)

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

-- | Multipart request metadata.
pjwirsPayload :: Lens' ProjectsJobsWorkItemsReportStatus ReportWorkItemStatusRequest

-- | OAuth bearer token.
pjwirsBearerToken :: Lens' ProjectsJobsWorkItemsReportStatus (Maybe Text)

-- | The project which owns the WorkItem's job.
pjwirsProjectId :: Lens' ProjectsJobsWorkItemsReportStatus Text

-- | JSONP
pjwirsCallback :: Lens' ProjectsJobsWorkItemsReportStatus (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Dataflow.Projects.Jobs.WorkItems.ReportStatus.ProjectsJobsWorkItemsReportStatus
instance Data.Data.Data Network.Google.Resource.Dataflow.Projects.Jobs.WorkItems.ReportStatus.ProjectsJobsWorkItemsReportStatus
instance GHC.Show.Show Network.Google.Resource.Dataflow.Projects.Jobs.WorkItems.ReportStatus.ProjectsJobsWorkItemsReportStatus
instance GHC.Classes.Eq Network.Google.Resource.Dataflow.Projects.Jobs.WorkItems.ReportStatus.ProjectsJobsWorkItemsReportStatus
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Dataflow.Projects.Jobs.WorkItems.ReportStatus.ProjectsJobsWorkItemsReportStatus


-- | Creates a Cloud Dataflow job.
--   
--   <i>See:</i> <a>Google Dataflow API Reference</a> for
--   <tt>dataflow.projects.locations.jobs.create</tt>.
module Network.Google.Resource.Dataflow.Projects.Locations.Jobs.Create

-- | A resource alias for <tt>dataflow.projects.locations.jobs.create</tt>
--   method which the <a>ProjectsLocationsJobsCreate</a> request conforms
--   to.
type ProjectsLocationsJobsCreateResource = "v1b3" :> ("projects" :> (Capture "projectId" Text :> ("locations" :> (Capture "location" Text :> ("jobs" :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "view" Text :> (QueryParam "replaceJobId" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Job :> Post '[JSON] Job))))))))))))))))

-- | Creates a value of <a>ProjectsLocationsJobsCreate</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>pljcXgafv</a></li>
--   <li><a>pljcUploadProtocol</a></li>
--   <li><a>pljcLocation</a></li>
--   <li><a>pljcPp</a></li>
--   <li><a>pljcAccessToken</a></li>
--   <li><a>pljcUploadType</a></li>
--   <li><a>pljcPayload</a></li>
--   <li><a>pljcBearerToken</a></li>
--   <li><a>pljcView</a></li>
--   <li><a>pljcProjectId</a></li>
--   <li><a>pljcReplaceJobId</a></li>
--   <li><a>pljcCallback</a></li>
--   </ul>
projectsLocationsJobsCreate :: Text -> Job -> Text -> ProjectsLocationsJobsCreate

-- | Creates a Cloud Dataflow job.
--   
--   <i>See:</i> <a>projectsLocationsJobsCreate</a> smart constructor.
data ProjectsLocationsJobsCreate

-- | V1 error format.
pljcXgafv :: Lens' ProjectsLocationsJobsCreate (Maybe Text)

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

-- | The location that contains this job.
pljcLocation :: Lens' ProjectsLocationsJobsCreate Text

-- | Pretty-print response.
pljcPp :: Lens' ProjectsLocationsJobsCreate Bool

-- | OAuth access token.
pljcAccessToken :: Lens' ProjectsLocationsJobsCreate (Maybe Text)

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

-- | Multipart request metadata.
pljcPayload :: Lens' ProjectsLocationsJobsCreate Job

-- | OAuth bearer token.
pljcBearerToken :: Lens' ProjectsLocationsJobsCreate (Maybe Text)

-- | The level of information requested in response.
pljcView :: Lens' ProjectsLocationsJobsCreate (Maybe Text)

-- | The ID of the Cloud Platform project that the job belongs to.
pljcProjectId :: Lens' ProjectsLocationsJobsCreate Text

-- | Deprecated. This field is now in the Job message.
pljcReplaceJobId :: Lens' ProjectsLocationsJobsCreate (Maybe Text)

-- | JSONP
pljcCallback :: Lens' ProjectsLocationsJobsCreate (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Dataflow.Projects.Locations.Jobs.Create.ProjectsLocationsJobsCreate
instance Data.Data.Data Network.Google.Resource.Dataflow.Projects.Locations.Jobs.Create.ProjectsLocationsJobsCreate
instance GHC.Show.Show Network.Google.Resource.Dataflow.Projects.Locations.Jobs.Create.ProjectsLocationsJobsCreate
instance GHC.Classes.Eq Network.Google.Resource.Dataflow.Projects.Locations.Jobs.Create.ProjectsLocationsJobsCreate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Dataflow.Projects.Locations.Jobs.Create.ProjectsLocationsJobsCreate


-- | Gets the state of the specified Cloud Dataflow job.
--   
--   <i>See:</i> <a>Google Dataflow API Reference</a> for
--   <tt>dataflow.projects.locations.jobs.get</tt>.
module Network.Google.Resource.Dataflow.Projects.Locations.Jobs.Get

-- | A resource alias for <tt>dataflow.projects.locations.jobs.get</tt>
--   method which the <a>ProjectsLocationsJobsGet</a> request conforms to.
type ProjectsLocationsJobsGetResource = "v1b3" :> ("projects" :> (Capture "projectId" Text :> ("locations" :> (Capture "location" 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 "view" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Job)))))))))))))))

-- | Creates a value of <a>ProjectsLocationsJobsGet</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>pljgXgafv</a></li>
--   <li><a>pljgJobId</a></li>
--   <li><a>pljgUploadProtocol</a></li>
--   <li><a>pljgLocation</a></li>
--   <li><a>pljgPp</a></li>
--   <li><a>pljgAccessToken</a></li>
--   <li><a>pljgUploadType</a></li>
--   <li><a>pljgBearerToken</a></li>
--   <li><a>pljgView</a></li>
--   <li><a>pljgProjectId</a></li>
--   <li><a>pljgCallback</a></li>
--   </ul>
projectsLocationsJobsGet :: Text -> Text -> Text -> ProjectsLocationsJobsGet

-- | Gets the state of the specified Cloud Dataflow job.
--   
--   <i>See:</i> <a>projectsLocationsJobsGet</a> smart constructor.
data ProjectsLocationsJobsGet

-- | V1 error format.
pljgXgafv :: Lens' ProjectsLocationsJobsGet (Maybe Text)

-- | The job ID.
pljgJobId :: Lens' ProjectsLocationsJobsGet Text

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

-- | The location that contains this job.
pljgLocation :: Lens' ProjectsLocationsJobsGet Text

-- | Pretty-print response.
pljgPp :: Lens' ProjectsLocationsJobsGet Bool

-- | OAuth access token.
pljgAccessToken :: Lens' ProjectsLocationsJobsGet (Maybe Text)

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

-- | OAuth bearer token.
pljgBearerToken :: Lens' ProjectsLocationsJobsGet (Maybe Text)

-- | The level of information requested in response.
pljgView :: Lens' ProjectsLocationsJobsGet (Maybe Text)

-- | The ID of the Cloud Platform project that the job belongs to.
pljgProjectId :: Lens' ProjectsLocationsJobsGet Text

-- | JSONP
pljgCallback :: Lens' ProjectsLocationsJobsGet (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Dataflow.Projects.Locations.Jobs.Get.ProjectsLocationsJobsGet
instance Data.Data.Data Network.Google.Resource.Dataflow.Projects.Locations.Jobs.Get.ProjectsLocationsJobsGet
instance GHC.Show.Show Network.Google.Resource.Dataflow.Projects.Locations.Jobs.Get.ProjectsLocationsJobsGet
instance GHC.Classes.Eq Network.Google.Resource.Dataflow.Projects.Locations.Jobs.Get.ProjectsLocationsJobsGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Dataflow.Projects.Locations.Jobs.Get.ProjectsLocationsJobsGet


-- | Request the job status.
--   
--   <i>See:</i> <a>Google Dataflow API Reference</a> for
--   <tt>dataflow.projects.locations.jobs.getMetrics</tt>.
module Network.Google.Resource.Dataflow.Projects.Locations.Jobs.GetMetrics

-- | A resource alias for
--   <tt>dataflow.projects.locations.jobs.getMetrics</tt> method which the
--   <a>ProjectsLocationsJobsGetMetrics</a> request conforms to.
type ProjectsLocationsJobsGetMetricsResource = "v1b3" :> ("projects" :> (Capture "projectId" Text :> ("locations" :> (Capture "location" Text :> ("jobs" :> (Capture "jobId" Text :> ("metrics" :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "startTime" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] JobMetrics))))))))))))))))

-- | Creates a value of <a>ProjectsLocationsJobsGetMetrics</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>pljgmXgafv</a></li>
--   <li><a>pljgmJobId</a></li>
--   <li><a>pljgmUploadProtocol</a></li>
--   <li><a>pljgmLocation</a></li>
--   <li><a>pljgmStartTime</a></li>
--   <li><a>pljgmPp</a></li>
--   <li><a>pljgmAccessToken</a></li>
--   <li><a>pljgmUploadType</a></li>
--   <li><a>pljgmBearerToken</a></li>
--   <li><a>pljgmProjectId</a></li>
--   <li><a>pljgmCallback</a></li>
--   </ul>
projectsLocationsJobsGetMetrics :: Text -> Text -> Text -> ProjectsLocationsJobsGetMetrics

-- | Request the job status.
--   
--   <i>See:</i> <a>projectsLocationsJobsGetMetrics</a> smart constructor.
data ProjectsLocationsJobsGetMetrics

-- | V1 error format.
pljgmXgafv :: Lens' ProjectsLocationsJobsGetMetrics (Maybe Text)

-- | The job to get messages for.
pljgmJobId :: Lens' ProjectsLocationsJobsGetMetrics Text

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

-- | The location which contains the job specified by job_id.
pljgmLocation :: Lens' ProjectsLocationsJobsGetMetrics Text

-- | Return only metric data that has changed since this time. Default is
--   to return all information about all metrics for the job.
pljgmStartTime :: Lens' ProjectsLocationsJobsGetMetrics (Maybe Text)

-- | Pretty-print response.
pljgmPp :: Lens' ProjectsLocationsJobsGetMetrics Bool

-- | OAuth access token.
pljgmAccessToken :: Lens' ProjectsLocationsJobsGetMetrics (Maybe Text)

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

-- | OAuth bearer token.
pljgmBearerToken :: Lens' ProjectsLocationsJobsGetMetrics (Maybe Text)

-- | A project id.
pljgmProjectId :: Lens' ProjectsLocationsJobsGetMetrics Text

-- | JSONP
pljgmCallback :: Lens' ProjectsLocationsJobsGetMetrics (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Dataflow.Projects.Locations.Jobs.GetMetrics.ProjectsLocationsJobsGetMetrics
instance Data.Data.Data Network.Google.Resource.Dataflow.Projects.Locations.Jobs.GetMetrics.ProjectsLocationsJobsGetMetrics
instance GHC.Show.Show Network.Google.Resource.Dataflow.Projects.Locations.Jobs.GetMetrics.ProjectsLocationsJobsGetMetrics
instance GHC.Classes.Eq Network.Google.Resource.Dataflow.Projects.Locations.Jobs.GetMetrics.ProjectsLocationsJobsGetMetrics
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Dataflow.Projects.Locations.Jobs.GetMetrics.ProjectsLocationsJobsGetMetrics


-- | List the jobs of a project.
--   
--   <i>See:</i> <a>Google Dataflow API Reference</a> for
--   <tt>dataflow.projects.locations.jobs.list</tt>.
module Network.Google.Resource.Dataflow.Projects.Locations.Jobs.List

-- | A resource alias for <tt>dataflow.projects.locations.jobs.list</tt>
--   method which the <a>ProjectsLocationsJobsList</a> request conforms to.
type ProjectsLocationsJobsListResource = "v1b3" :> ("projects" :> (Capture "projectId" Text :> ("locations" :> (Capture "location" Text :> ("jobs" :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "view" 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>ProjectsLocationsJobsList</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>pljlXgafv</a></li>
--   <li><a>pljlUploadProtocol</a></li>
--   <li><a>pljlLocation</a></li>
--   <li><a>pljlPp</a></li>
--   <li><a>pljlAccessToken</a></li>
--   <li><a>pljlUploadType</a></li>
--   <li><a>pljlBearerToken</a></li>
--   <li><a>pljlView</a></li>
--   <li><a>pljlFilter</a></li>
--   <li><a>pljlPageToken</a></li>
--   <li><a>pljlProjectId</a></li>
--   <li><a>pljlPageSize</a></li>
--   <li><a>pljlCallback</a></li>
--   </ul>
projectsLocationsJobsList :: Text -> Text -> ProjectsLocationsJobsList

-- | List the jobs of a project.
--   
--   <i>See:</i> <a>projectsLocationsJobsList</a> smart constructor.
data ProjectsLocationsJobsList

-- | V1 error format.
pljlXgafv :: Lens' ProjectsLocationsJobsList (Maybe Text)

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

-- | The location that contains this job.
pljlLocation :: Lens' ProjectsLocationsJobsList Text

-- | Pretty-print response.
pljlPp :: Lens' ProjectsLocationsJobsList Bool

-- | OAuth access token.
pljlAccessToken :: Lens' ProjectsLocationsJobsList (Maybe Text)

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

-- | OAuth bearer token.
pljlBearerToken :: Lens' ProjectsLocationsJobsList (Maybe Text)

-- | Level of information requested in response. Default is
--   `JOB_VIEW_SUMMARY`.
pljlView :: Lens' ProjectsLocationsJobsList (Maybe Text)

-- | The kind of filter to use.
pljlFilter :: Lens' ProjectsLocationsJobsList (Maybe Text)

-- | Set this to the 'next_page_token' field of a previous response to
--   request additional results in a long list.
pljlPageToken :: Lens' ProjectsLocationsJobsList (Maybe Text)

-- | The project which owns the jobs.
pljlProjectId :: Lens' ProjectsLocationsJobsList Text

-- | If there are many jobs, limit response to at most this many. The
--   actual number of jobs returned will be the lesser of max_responses and
--   an unspecified server-defined limit.
pljlPageSize :: Lens' ProjectsLocationsJobsList (Maybe Int32)

-- | JSONP
pljlCallback :: Lens' ProjectsLocationsJobsList (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Dataflow.Projects.Locations.Jobs.List.ProjectsLocationsJobsList
instance Data.Data.Data Network.Google.Resource.Dataflow.Projects.Locations.Jobs.List.ProjectsLocationsJobsList
instance GHC.Show.Show Network.Google.Resource.Dataflow.Projects.Locations.Jobs.List.ProjectsLocationsJobsList
instance GHC.Classes.Eq Network.Google.Resource.Dataflow.Projects.Locations.Jobs.List.ProjectsLocationsJobsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Dataflow.Projects.Locations.Jobs.List.ProjectsLocationsJobsList


-- | Request the job status.
--   
--   <i>See:</i> <a>Google Dataflow API Reference</a> for
--   <tt>dataflow.projects.locations.jobs.messages.list</tt>.
module Network.Google.Resource.Dataflow.Projects.Locations.Jobs.Messages.List

-- | A resource alias for
--   <tt>dataflow.projects.locations.jobs.messages.list</tt> method which
--   the <a>ProjectsLocationsJobsMessagesList</a> request conforms to.
type ProjectsLocationsJobsMessagesListResource = "v1b3" :> ("projects" :> (Capture "projectId" Text :> ("locations" :> (Capture "location" Text :> ("jobs" :> (Capture "jobId" Text :> ("messages" :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "startTime" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "endTime" Text :> (QueryParam "minimumImportance" Text :> (QueryParam "pageToken" Text :> (QueryParam "pageSize" (Textual Int32) :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ListJobMessagesResponse))))))))))))))))))))

-- | Creates a value of <a>ProjectsLocationsJobsMessagesList</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>pljmlXgafv</a></li>
--   <li><a>pljmlJobId</a></li>
--   <li><a>pljmlUploadProtocol</a></li>
--   <li><a>pljmlLocation</a></li>
--   <li><a>pljmlStartTime</a></li>
--   <li><a>pljmlPp</a></li>
--   <li><a>pljmlAccessToken</a></li>
--   <li><a>pljmlUploadType</a></li>
--   <li><a>pljmlBearerToken</a></li>
--   <li><a>pljmlEndTime</a></li>
--   <li><a>pljmlMinimumImportance</a></li>
--   <li><a>pljmlPageToken</a></li>
--   <li><a>pljmlProjectId</a></li>
--   <li><a>pljmlPageSize</a></li>
--   <li><a>pljmlCallback</a></li>
--   </ul>
projectsLocationsJobsMessagesList :: Text -> Text -> Text -> ProjectsLocationsJobsMessagesList

-- | Request the job status.
--   
--   <i>See:</i> <a>projectsLocationsJobsMessagesList</a> smart
--   constructor.
data ProjectsLocationsJobsMessagesList

-- | V1 error format.
pljmlXgafv :: Lens' ProjectsLocationsJobsMessagesList (Maybe Text)

-- | The job to get messages about.
pljmlJobId :: Lens' ProjectsLocationsJobsMessagesList Text

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

-- | The location which contains the job specified by job_id.
pljmlLocation :: Lens' ProjectsLocationsJobsMessagesList Text

-- | If specified, return only messages with timestamps &gt;= start_time.
--   The default is the job creation time (i.e. beginning of messages).
pljmlStartTime :: Lens' ProjectsLocationsJobsMessagesList (Maybe Text)

-- | Pretty-print response.
pljmlPp :: Lens' ProjectsLocationsJobsMessagesList Bool

-- | OAuth access token.
pljmlAccessToken :: Lens' ProjectsLocationsJobsMessagesList (Maybe Text)

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

-- | OAuth bearer token.
pljmlBearerToken :: Lens' ProjectsLocationsJobsMessagesList (Maybe Text)

-- | Return only messages with timestamps &lt; end_time. The default is now
--   (i.e. return up to the latest messages available).
pljmlEndTime :: Lens' ProjectsLocationsJobsMessagesList (Maybe Text)

-- | Filter to only get messages with importance &gt;= level
pljmlMinimumImportance :: Lens' ProjectsLocationsJobsMessagesList (Maybe Text)

-- | If supplied, this should be the value of next_page_token returned by
--   an earlier call. This will cause the next page of results to be
--   returned.
pljmlPageToken :: Lens' ProjectsLocationsJobsMessagesList (Maybe Text)

-- | A project id.
pljmlProjectId :: Lens' ProjectsLocationsJobsMessagesList Text

-- | If specified, determines the maximum number of messages to return. If
--   unspecified, the service may choose an appropriate default, or may
--   return an arbitrarily large number of results.
pljmlPageSize :: Lens' ProjectsLocationsJobsMessagesList (Maybe Int32)

-- | JSONP
pljmlCallback :: Lens' ProjectsLocationsJobsMessagesList (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Dataflow.Projects.Locations.Jobs.Messages.List.ProjectsLocationsJobsMessagesList
instance Data.Data.Data Network.Google.Resource.Dataflow.Projects.Locations.Jobs.Messages.List.ProjectsLocationsJobsMessagesList
instance GHC.Show.Show Network.Google.Resource.Dataflow.Projects.Locations.Jobs.Messages.List.ProjectsLocationsJobsMessagesList
instance GHC.Classes.Eq Network.Google.Resource.Dataflow.Projects.Locations.Jobs.Messages.List.ProjectsLocationsJobsMessagesList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Dataflow.Projects.Locations.Jobs.Messages.List.ProjectsLocationsJobsMessagesList


-- | Updates the state of an existing Cloud Dataflow job.
--   
--   <i>See:</i> <a>Google Dataflow API Reference</a> for
--   <tt>dataflow.projects.locations.jobs.update</tt>.
module Network.Google.Resource.Dataflow.Projects.Locations.Jobs.Update

-- | A resource alias for <tt>dataflow.projects.locations.jobs.update</tt>
--   method which the <a>ProjectsLocationsJobsUpdate</a> request conforms
--   to.
type ProjectsLocationsJobsUpdateResource = "v1b3" :> ("projects" :> (Capture "projectId" Text :> ("locations" :> (Capture "location" 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 :> (ReqBody '[JSON] Job :> Put '[JSON] Job)))))))))))))))

-- | Creates a value of <a>ProjectsLocationsJobsUpdate</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>pljuXgafv</a></li>
--   <li><a>pljuJobId</a></li>
--   <li><a>pljuUploadProtocol</a></li>
--   <li><a>pljuLocation</a></li>
--   <li><a>pljuPp</a></li>
--   <li><a>pljuAccessToken</a></li>
--   <li><a>pljuUploadType</a></li>
--   <li><a>pljuPayload</a></li>
--   <li><a>pljuBearerToken</a></li>
--   <li><a>pljuProjectId</a></li>
--   <li><a>pljuCallback</a></li>
--   </ul>
projectsLocationsJobsUpdate :: Text -> Text -> Job -> Text -> ProjectsLocationsJobsUpdate

-- | Updates the state of an existing Cloud Dataflow job.
--   
--   <i>See:</i> <a>projectsLocationsJobsUpdate</a> smart constructor.
data ProjectsLocationsJobsUpdate

-- | V1 error format.
pljuXgafv :: Lens' ProjectsLocationsJobsUpdate (Maybe Text)

-- | The job ID.
pljuJobId :: Lens' ProjectsLocationsJobsUpdate Text

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

-- | The location that contains this job.
pljuLocation :: Lens' ProjectsLocationsJobsUpdate Text

-- | Pretty-print response.
pljuPp :: Lens' ProjectsLocationsJobsUpdate Bool

-- | OAuth access token.
pljuAccessToken :: Lens' ProjectsLocationsJobsUpdate (Maybe Text)

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

-- | Multipart request metadata.
pljuPayload :: Lens' ProjectsLocationsJobsUpdate Job

-- | OAuth bearer token.
pljuBearerToken :: Lens' ProjectsLocationsJobsUpdate (Maybe Text)

-- | The ID of the Cloud Platform project that the job belongs to.
pljuProjectId :: Lens' ProjectsLocationsJobsUpdate Text

-- | JSONP
pljuCallback :: Lens' ProjectsLocationsJobsUpdate (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Dataflow.Projects.Locations.Jobs.Update.ProjectsLocationsJobsUpdate
instance Data.Data.Data Network.Google.Resource.Dataflow.Projects.Locations.Jobs.Update.ProjectsLocationsJobsUpdate
instance GHC.Show.Show Network.Google.Resource.Dataflow.Projects.Locations.Jobs.Update.ProjectsLocationsJobsUpdate
instance GHC.Classes.Eq Network.Google.Resource.Dataflow.Projects.Locations.Jobs.Update.ProjectsLocationsJobsUpdate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Dataflow.Projects.Locations.Jobs.Update.ProjectsLocationsJobsUpdate


-- | Leases a dataflow WorkItem to run.
--   
--   <i>See:</i> <a>Google Dataflow API Reference</a> for
--   <tt>dataflow.projects.locations.jobs.workItems.lease</tt>.
module Network.Google.Resource.Dataflow.Projects.Locations.Jobs.WorkItems.Lease

-- | A resource alias for
--   <tt>dataflow.projects.locations.jobs.workItems.lease</tt> method which
--   the <a>ProjectsLocationsJobsWorkItemsLease</a> request conforms to.
type ProjectsLocationsJobsWorkItemsLeaseResource = "v1b3" :> ("projects" :> (Capture "projectId" Text :> ("locations" :> (Capture "location" Text :> ("jobs" :> (Capture "jobId" Text :> ("workItems:lease" :> (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] LeaseWorkItemRequest :> Post '[JSON] LeaseWorkItemResponse))))))))))))))))

-- | Creates a value of <a>ProjectsLocationsJobsWorkItemsLease</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>pljwilXgafv</a></li>
--   <li><a>pljwilJobId</a></li>
--   <li><a>pljwilUploadProtocol</a></li>
--   <li><a>pljwilLocation</a></li>
--   <li><a>pljwilPp</a></li>
--   <li><a>pljwilAccessToken</a></li>
--   <li><a>pljwilUploadType</a></li>
--   <li><a>pljwilPayload</a></li>
--   <li><a>pljwilBearerToken</a></li>
--   <li><a>pljwilProjectId</a></li>
--   <li><a>pljwilCallback</a></li>
--   </ul>
projectsLocationsJobsWorkItemsLease :: Text -> Text -> LeaseWorkItemRequest -> Text -> ProjectsLocationsJobsWorkItemsLease

-- | Leases a dataflow WorkItem to run.
--   
--   <i>See:</i> <a>projectsLocationsJobsWorkItemsLease</a> smart
--   constructor.
data ProjectsLocationsJobsWorkItemsLease

-- | V1 error format.
pljwilXgafv :: Lens' ProjectsLocationsJobsWorkItemsLease (Maybe Text)

-- | Identifies the workflow job this worker belongs to.
pljwilJobId :: Lens' ProjectsLocationsJobsWorkItemsLease Text

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

-- | The location which contains the WorkItem's job.
pljwilLocation :: Lens' ProjectsLocationsJobsWorkItemsLease Text

-- | Pretty-print response.
pljwilPp :: Lens' ProjectsLocationsJobsWorkItemsLease Bool

-- | OAuth access token.
pljwilAccessToken :: Lens' ProjectsLocationsJobsWorkItemsLease (Maybe Text)

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

-- | Multipart request metadata.
pljwilPayload :: Lens' ProjectsLocationsJobsWorkItemsLease LeaseWorkItemRequest

-- | OAuth bearer token.
pljwilBearerToken :: Lens' ProjectsLocationsJobsWorkItemsLease (Maybe Text)

-- | Identifies the project this worker belongs to.
pljwilProjectId :: Lens' ProjectsLocationsJobsWorkItemsLease Text

-- | JSONP
pljwilCallback :: Lens' ProjectsLocationsJobsWorkItemsLease (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Dataflow.Projects.Locations.Jobs.WorkItems.Lease.ProjectsLocationsJobsWorkItemsLease
instance Data.Data.Data Network.Google.Resource.Dataflow.Projects.Locations.Jobs.WorkItems.Lease.ProjectsLocationsJobsWorkItemsLease
instance GHC.Show.Show Network.Google.Resource.Dataflow.Projects.Locations.Jobs.WorkItems.Lease.ProjectsLocationsJobsWorkItemsLease
instance GHC.Classes.Eq Network.Google.Resource.Dataflow.Projects.Locations.Jobs.WorkItems.Lease.ProjectsLocationsJobsWorkItemsLease
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Dataflow.Projects.Locations.Jobs.WorkItems.Lease.ProjectsLocationsJobsWorkItemsLease


-- | Reports the status of dataflow WorkItems leased by a worker.
--   
--   <i>See:</i> <a>Google Dataflow API Reference</a> for
--   <tt>dataflow.projects.locations.jobs.workItems.reportStatus</tt>.
module Network.Google.Resource.Dataflow.Projects.Locations.Jobs.WorkItems.ReportStatus

-- | A resource alias for
--   <tt>dataflow.projects.locations.jobs.workItems.reportStatus</tt>
--   method which the <a>ProjectsLocationsJobsWorkItemsReportStatus</a>
--   request conforms to.
type ProjectsLocationsJobsWorkItemsReportStatusResource = "v1b3" :> ("projects" :> (Capture "projectId" Text :> ("locations" :> (Capture "location" Text :> ("jobs" :> (Capture "jobId" Text :> ("workItems:reportStatus" :> (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] ReportWorkItemStatusRequest :> Post '[JSON] ReportWorkItemStatusResponse))))))))))))))))

-- | Creates a value of <a>ProjectsLocationsJobsWorkItemsReportStatus</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>pljwirsXgafv</a></li>
--   <li><a>pljwirsJobId</a></li>
--   <li><a>pljwirsUploadProtocol</a></li>
--   <li><a>pljwirsLocation</a></li>
--   <li><a>pljwirsPp</a></li>
--   <li><a>pljwirsAccessToken</a></li>
--   <li><a>pljwirsUploadType</a></li>
--   <li><a>pljwirsPayload</a></li>
--   <li><a>pljwirsBearerToken</a></li>
--   <li><a>pljwirsProjectId</a></li>
--   <li><a>pljwirsCallback</a></li>
--   </ul>
projectsLocationsJobsWorkItemsReportStatus :: Text -> Text -> ReportWorkItemStatusRequest -> Text -> ProjectsLocationsJobsWorkItemsReportStatus

-- | Reports the status of dataflow WorkItems leased by a worker.
--   
--   <i>See:</i> <a>projectsLocationsJobsWorkItemsReportStatus</a> smart
--   constructor.
data ProjectsLocationsJobsWorkItemsReportStatus

-- | V1 error format.
pljwirsXgafv :: Lens' ProjectsLocationsJobsWorkItemsReportStatus (Maybe Text)

-- | The job which the WorkItem is part of.
pljwirsJobId :: Lens' ProjectsLocationsJobsWorkItemsReportStatus Text

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

-- | The location which contains the WorkItem's job.
pljwirsLocation :: Lens' ProjectsLocationsJobsWorkItemsReportStatus Text

-- | Pretty-print response.
pljwirsPp :: Lens' ProjectsLocationsJobsWorkItemsReportStatus Bool

-- | OAuth access token.
pljwirsAccessToken :: Lens' ProjectsLocationsJobsWorkItemsReportStatus (Maybe Text)

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

-- | Multipart request metadata.
pljwirsPayload :: Lens' ProjectsLocationsJobsWorkItemsReportStatus ReportWorkItemStatusRequest

-- | OAuth bearer token.
pljwirsBearerToken :: Lens' ProjectsLocationsJobsWorkItemsReportStatus (Maybe Text)

-- | The project which owns the WorkItem's job.
pljwirsProjectId :: Lens' ProjectsLocationsJobsWorkItemsReportStatus Text

-- | JSONP
pljwirsCallback :: Lens' ProjectsLocationsJobsWorkItemsReportStatus (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Dataflow.Projects.Locations.Jobs.WorkItems.ReportStatus.ProjectsLocationsJobsWorkItemsReportStatus
instance Data.Data.Data Network.Google.Resource.Dataflow.Projects.Locations.Jobs.WorkItems.ReportStatus.ProjectsLocationsJobsWorkItemsReportStatus
instance GHC.Show.Show Network.Google.Resource.Dataflow.Projects.Locations.Jobs.WorkItems.ReportStatus.ProjectsLocationsJobsWorkItemsReportStatus
instance GHC.Classes.Eq Network.Google.Resource.Dataflow.Projects.Locations.Jobs.WorkItems.ReportStatus.ProjectsLocationsJobsWorkItemsReportStatus
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Dataflow.Projects.Locations.Jobs.WorkItems.ReportStatus.ProjectsLocationsJobsWorkItemsReportStatus


-- | Creates a Cloud Dataflow job from a template.
--   
--   <i>See:</i> <a>Google Dataflow API Reference</a> for
--   <tt>dataflow.projects.templates.create</tt>.
module Network.Google.Resource.Dataflow.Projects.Templates.Create

-- | A resource alias for <tt>dataflow.projects.templates.create</tt>
--   method which the <a>ProjectsTemplatesCreate</a> request conforms to.
type ProjectsTemplatesCreateResource = "v1b3" :> ("projects" :> (Capture "projectId" Text :> ("templates" :> (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] CreateJobFromTemplateRequest :> Post '[JSON] Job))))))))))))

-- | Creates a value of <a>ProjectsTemplatesCreate</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>ptcXgafv</a></li>
--   <li><a>ptcUploadProtocol</a></li>
--   <li><a>ptcPp</a></li>
--   <li><a>ptcAccessToken</a></li>
--   <li><a>ptcUploadType</a></li>
--   <li><a>ptcPayload</a></li>
--   <li><a>ptcBearerToken</a></li>
--   <li><a>ptcProjectId</a></li>
--   <li><a>ptcCallback</a></li>
--   </ul>
projectsTemplatesCreate :: CreateJobFromTemplateRequest -> Text -> ProjectsTemplatesCreate

-- | Creates a Cloud Dataflow job from a template.
--   
--   <i>See:</i> <a>projectsTemplatesCreate</a> smart constructor.
data ProjectsTemplatesCreate

-- | V1 error format.
ptcXgafv :: Lens' ProjectsTemplatesCreate (Maybe Text)

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

-- | Pretty-print response.
ptcPp :: Lens' ProjectsTemplatesCreate Bool

-- | OAuth access token.
ptcAccessToken :: Lens' ProjectsTemplatesCreate (Maybe Text)

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

-- | Multipart request metadata.
ptcPayload :: Lens' ProjectsTemplatesCreate CreateJobFromTemplateRequest

-- | OAuth bearer token.
ptcBearerToken :: Lens' ProjectsTemplatesCreate (Maybe Text)

-- | Required. The ID of the Cloud Platform project that the job belongs
--   to.
ptcProjectId :: Lens' ProjectsTemplatesCreate Text

-- | JSONP
ptcCallback :: Lens' ProjectsTemplatesCreate (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Dataflow.Projects.Templates.Create.ProjectsTemplatesCreate
instance Data.Data.Data Network.Google.Resource.Dataflow.Projects.Templates.Create.ProjectsTemplatesCreate
instance GHC.Show.Show Network.Google.Resource.Dataflow.Projects.Templates.Create.ProjectsTemplatesCreate
instance GHC.Classes.Eq Network.Google.Resource.Dataflow.Projects.Templates.Create.ProjectsTemplatesCreate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Dataflow.Projects.Templates.Create.ProjectsTemplatesCreate


-- | Send a worker_message to the service.
--   
--   <i>See:</i> <a>Google Dataflow API Reference</a> for
--   <tt>dataflow.projects.workerMessages</tt>.
module Network.Google.Resource.Dataflow.Projects.WorkerMessages

-- | A resource alias for <tt>dataflow.projects.workerMessages</tt> method
--   which the <a>ProjectsWorkerMessages</a> request conforms to.
type ProjectsWorkerMessagesResource = "v1b3" :> ("projects" :> (Capture "projectId" Text :> ("WorkerMessages" :> (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] SendWorkerMessagesRequest :> Post '[JSON] SendWorkerMessagesResponse))))))))))))

-- | Creates a value of <a>ProjectsWorkerMessages</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>pwmXgafv</a></li>
--   <li><a>pwmUploadProtocol</a></li>
--   <li><a>pwmPp</a></li>
--   <li><a>pwmAccessToken</a></li>
--   <li><a>pwmUploadType</a></li>
--   <li><a>pwmPayload</a></li>
--   <li><a>pwmBearerToken</a></li>
--   <li><a>pwmProjectId</a></li>
--   <li><a>pwmCallback</a></li>
--   </ul>
projectsWorkerMessages :: SendWorkerMessagesRequest -> Text -> ProjectsWorkerMessages

-- | Send a worker_message to the service.
--   
--   <i>See:</i> <a>projectsWorkerMessages</a> smart constructor.
data ProjectsWorkerMessages

-- | V1 error format.
pwmXgafv :: Lens' ProjectsWorkerMessages (Maybe Text)

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

-- | Pretty-print response.
pwmPp :: Lens' ProjectsWorkerMessages Bool

-- | OAuth access token.
pwmAccessToken :: Lens' ProjectsWorkerMessages (Maybe Text)

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

-- | Multipart request metadata.
pwmPayload :: Lens' ProjectsWorkerMessages SendWorkerMessagesRequest

-- | OAuth bearer token.
pwmBearerToken :: Lens' ProjectsWorkerMessages (Maybe Text)

-- | The project to send the WorkerMessages to.
pwmProjectId :: Lens' ProjectsWorkerMessages Text

-- | JSONP
pwmCallback :: Lens' ProjectsWorkerMessages (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Dataflow.Projects.WorkerMessages.ProjectsWorkerMessages
instance Data.Data.Data Network.Google.Resource.Dataflow.Projects.WorkerMessages.ProjectsWorkerMessages
instance GHC.Show.Show Network.Google.Resource.Dataflow.Projects.WorkerMessages.ProjectsWorkerMessages
instance GHC.Classes.Eq Network.Google.Resource.Dataflow.Projects.WorkerMessages.ProjectsWorkerMessages
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Dataflow.Projects.WorkerMessages.ProjectsWorkerMessages


-- | Manages Google Cloud Dataflow projects on Google Cloud Platform.
--   
--   <i>See:</i> <a>Google Dataflow API Reference</a>
module Network.Google.Dataflow

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

-- | View your email address
userInfoEmailScope :: Proxy '["https://www.googleapis.com/auth/userinfo.email"]

-- | 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 Dataflow API service.
type DataflowAPI = ProjectsTemplatesCreateResource :<|> (ProjectsJobsDebugGetConfigResource :<|> (ProjectsJobsDebugSendCaptureResource :<|> (ProjectsJobsWorkItemsLeaseResource :<|> (ProjectsJobsWorkItemsReportStatusResource :<|> (ProjectsJobsMessagesListResource :<|> (ProjectsJobsListResource :<|> (ProjectsJobsGetResource :<|> (ProjectsJobsCreateResource :<|> (ProjectsJobsUpdateResource :<|> (ProjectsJobsGetMetricsResource :<|> (ProjectsLocationsJobsWorkItemsLeaseResource :<|> (ProjectsLocationsJobsWorkItemsReportStatusResource :<|> (ProjectsLocationsJobsMessagesListResource :<|> (ProjectsLocationsJobsListResource :<|> (ProjectsLocationsJobsGetResource :<|> (ProjectsLocationsJobsCreateResource :<|> (ProjectsLocationsJobsUpdateResource :<|> (ProjectsLocationsJobsGetMetricsResource :<|> ProjectsWorkerMessagesResource))))))))))))))))))

-- | A mapping from each stage to the information about that stage.
--   
--   <i>See:</i> <a>jobExecutionInfoStages</a> smart constructor.
data JobExecutionInfoStages

-- | Creates a value of <a>JobExecutionInfoStages</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>jeisAddtional</a></li>
--   </ul>
jobExecutionInfoStages :: HashMap Text JobExecutionStageInfo -> JobExecutionInfoStages
jeisAddtional :: Lens' JobExecutionInfoStages (HashMap Text JobExecutionStageInfo)

-- | All configuration data for a particular Computation.
--   
--   <i>See:</i> <a>computationTopology</a> smart constructor.
data ComputationTopology

-- | Creates a value of <a>ComputationTopology</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>ctStateFamilies</a></li>
--   <li><a>ctUserStageName</a></li>
--   <li><a>ctInputs</a></li>
--   <li><a>ctKeyRanges</a></li>
--   <li><a>ctOutputs</a></li>
--   <li><a>ctComputationId</a></li>
--   <li><a>ctSystemStageName</a></li>
--   </ul>
computationTopology :: ComputationTopology

-- | The state family values.
ctStateFamilies :: Lens' ComputationTopology [StateFamilyConfig]

-- | The user stage name.
ctUserStageName :: Lens' ComputationTopology (Maybe Text)

-- | The inputs to the computation.
ctInputs :: Lens' ComputationTopology [StreamLocation]

-- | The key ranges processed by the computation.
ctKeyRanges :: Lens' ComputationTopology [KeyRangeLocation]

-- | The outputs from the computation.
ctOutputs :: Lens' ComputationTopology [StreamLocation]

-- | The ID of the computation.
ctComputationId :: Lens' ComputationTopology (Maybe Text)

-- | The system stage name.
ctSystemStageName :: Lens' ComputationTopology (Maybe Text)

-- | The response to a SourceSplitRequest.
--   
--   <i>See:</i> <a>sourceSplitResponse</a> smart constructor.
data SourceSplitResponse

-- | Creates a value of <a>SourceSplitResponse</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>ssrBundles</a></li>
--   <li><a>ssrShards</a></li>
--   <li><a>ssrOutcome</a></li>
--   </ul>
sourceSplitResponse :: SourceSplitResponse

-- | If outcome is SPLITTING_HAPPENED, then this is a list of bundles into
--   which the source was split. Otherwise this field is ignored. This list
--   can be empty, which means the source represents an empty input.
ssrBundles :: Lens' SourceSplitResponse [DerivedSource]

-- | DEPRECATED in favor of bundles.
ssrShards :: Lens' SourceSplitResponse [SourceSplitShard]

-- | Indicates whether splitting happened and produced a list of bundles.
--   If this is USE_CURRENT_SOURCE_AS_IS, the current source should be
--   processed "as is" without splitting. "bundles" is ignored in this
--   case. If this is SPLITTING_HAPPENED, then "bundles" contains a list of
--   bundles into which the source was split.
ssrOutcome :: Lens' SourceSplitResponse (Maybe Text)
data ResourceUtilizationReportMetricsItem

-- | Creates a value of <a>ResourceUtilizationReportMetricsItem</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>rurmiAddtional</a></li>
--   </ul>
resourceUtilizationReportMetricsItem :: HashMap Text JSONValue -> ResourceUtilizationReportMetricsItem

-- | Properties of the object.
rurmiAddtional :: Lens' ResourceUtilizationReportMetricsItem (HashMap Text JSONValue)

-- | A request to create a Cloud Dataflow job from a template.
--   
--   <i>See:</i> <a>createJobFromTemplateRequest</a> smart constructor.
data CreateJobFromTemplateRequest

-- | Creates a value of <a>CreateJobFromTemplateRequest</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>cjftrEnvironment</a></li>
--   <li><a>cjftrJobName</a></li>
--   <li><a>cjftrGcsPath</a></li>
--   <li><a>cjftrParameters</a></li>
--   </ul>
createJobFromTemplateRequest :: CreateJobFromTemplateRequest

-- | The runtime environment for the job.
cjftrEnvironment :: Lens' CreateJobFromTemplateRequest (Maybe RuntimeEnvironment)

-- | Required. The job name to use for the created job.
cjftrJobName :: Lens' CreateJobFromTemplateRequest (Maybe Text)

-- | Required. A Cloud Storage path to the template from which to create
--   the job. Must be a valid Cloud Storage URL, beginning with `gs://`.
cjftrGcsPath :: Lens' CreateJobFromTemplateRequest (Maybe Text)

-- | The runtime parameters to pass to the job.
cjftrParameters :: Lens' CreateJobFromTemplateRequest (Maybe CreateJobFromTemplateRequestParameters)

-- | 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)

-- | Basic metadata about a counter.
--   
--   <i>See:</i> <a>nameAndKind</a> smart constructor.
data NameAndKind

-- | Creates a value of <a>NameAndKind</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>nakKind</a></li>
--   <li><a>nakName</a></li>
--   </ul>
nameAndKind :: NameAndKind

-- | Counter aggregation kind.
nakKind :: Lens' NameAndKind (Maybe Text)

-- | Name of the counter.
nakName :: Lens' NameAndKind (Maybe Text)

-- | A metric value representing a list of integers.
--   
--   <i>See:</i> <a>integerList</a> smart constructor.
data IntegerList

-- | Creates a value of <a>IntegerList</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>ilElements</a></li>
--   </ul>
integerList :: IntegerList

-- | Elements of the list.
ilElements :: Lens' IntegerList [SplitInt64]

-- | WorkItem represents basic information about a WorkItem to be executed
--   in the cloud.
--   
--   <i>See:</i> <a>workItem</a> smart constructor.
data WorkItem

-- | Creates a value of <a>WorkItem</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>wiJobId</a></li>
--   <li><a>wiReportStatusInterval</a></li>
--   <li><a>wiShellTask</a></li>
--   <li><a>wiStreamingSetupTask</a></li>
--   <li><a>wiInitialReportIndex</a></li>
--   <li><a>wiMapTask</a></li>
--   <li><a>wiPackages</a></li>
--   <li><a>wiStreamingComputationTask</a></li>
--   <li><a>wiSourceOperationTask</a></li>
--   <li><a>wiId</a></li>
--   <li><a>wiProjectId</a></li>
--   <li><a>wiLeaseExpireTime</a></li>
--   <li><a>wiConfiguration</a></li>
--   <li><a>wiStreamingConfigTask</a></li>
--   <li><a>wiSeqMapTask</a></li>
--   </ul>
workItem :: WorkItem

-- | Identifies the workflow job this WorkItem belongs to.
wiJobId :: Lens' WorkItem (Maybe Text)

-- | Recommended reporting interval.
wiReportStatusInterval :: Lens' WorkItem (Maybe Text)

-- | Additional information for ShellTask WorkItems.
wiShellTask :: Lens' WorkItem (Maybe ShellTask)

-- | Additional information for StreamingSetupTask WorkItems.
wiStreamingSetupTask :: Lens' WorkItem (Maybe StreamingSetupTask)

-- | The initial index to use when reporting the status of the WorkItem.
wiInitialReportIndex :: Lens' WorkItem (Maybe Int64)

-- | Additional information for MapTask WorkItems.
wiMapTask :: Lens' WorkItem (Maybe MapTask)

-- | Any required packages that need to be fetched in order to execute this
--   WorkItem.
wiPackages :: Lens' WorkItem [Package]

-- | Additional information for StreamingComputationTask WorkItems.
wiStreamingComputationTask :: Lens' WorkItem (Maybe StreamingComputationTask)

-- | Additional information for source operation WorkItems.
wiSourceOperationTask :: Lens' WorkItem (Maybe SourceOperationRequest)

-- | Identifies this WorkItem.
wiId :: Lens' WorkItem (Maybe Int64)

-- | Identifies the cloud project this WorkItem belongs to.
wiProjectId :: Lens' WorkItem (Maybe Text)

-- | Time when the lease on this Work will expire.
wiLeaseExpireTime :: Lens' WorkItem (Maybe Text)

-- | Work item-specific configuration as an opaque blob.
wiConfiguration :: Lens' WorkItem (Maybe Text)

-- | Additional information for StreamingConfigTask WorkItems.
wiStreamingConfigTask :: Lens' WorkItem (Maybe StreamingConfigTask)

-- | Additional information for SeqMapTask WorkItems.
wiSeqMapTask :: Lens' WorkItem (Maybe SeqMapTask)

-- | WorkerHealthReport contains information about the health of a worker.
--   The VM should be identified by the labels attached to the
--   WorkerMessage that this health ping belongs to.
--   
--   <i>See:</i> <a>workerHealthReport</a> smart constructor.
data WorkerHealthReport

-- | Creates a value of <a>WorkerHealthReport</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>whrVMIsHealthy</a></li>
--   <li><a>whrReportInterval</a></li>
--   <li><a>whrPods</a></li>
--   <li><a>whrVMStartupTime</a></li>
--   </ul>
workerHealthReport :: WorkerHealthReport

-- | Whether the VM is healthy.
whrVMIsHealthy :: Lens' WorkerHealthReport (Maybe Bool)

-- | The interval at which the worker is sending health reports. The
--   default value of 0 should be interpreted as the field is not being
--   explicitly set by the worker.
whrReportInterval :: Lens' WorkerHealthReport (Maybe Text)

-- | The pods running on the worker. See:
--   http://kubernetes.io/v1.1/docs/api-reference/v1/definitions.html#_v1_pod
--   This field is used by the worker to send the status of the indvidual
--   containers running on each worker.
whrPods :: Lens' WorkerHealthReport [WorkerHealthReportPodsItem]

-- | The time the VM was booted.
whrVMStartupTime :: Lens' WorkerHealthReport (Maybe Text)

-- | Hints for splitting a Source into bundles (parts for parallel
--   processing) using SourceSplitRequest.
--   
--   <i>See:</i> <a>sourceSplitOptions</a> smart constructor.
data SourceSplitOptions

-- | Creates a value of <a>SourceSplitOptions</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>ssoDesiredShardSizeBytes</a></li>
--   <li><a>ssoDesiredBundleSizeBytes</a></li>
--   </ul>
sourceSplitOptions :: SourceSplitOptions

-- | DEPRECATED in favor of desired_bundle_size_bytes.
ssoDesiredShardSizeBytes :: Lens' SourceSplitOptions (Maybe Int64)

-- | The source should be split into a set of bundles where the estimated
--   size of each is approximately this many bytes.
ssoDesiredBundleSizeBytes :: Lens' SourceSplitOptions (Maybe Int64)

-- | Metadata to set on the Google Compute Engine VMs.
--   
--   <i>See:</i> <a>workerPoolMetadata</a> smart constructor.
data WorkerPoolMetadata

-- | Creates a value of <a>WorkerPoolMetadata</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>wpmAddtional</a></li>
--   </ul>
workerPoolMetadata :: HashMap Text Text -> WorkerPoolMetadata
wpmAddtional :: Lens' WorkerPoolMetadata (HashMap Text Text)

-- | Settings for WorkerPool autoscaling.
--   
--   <i>See:</i> <a>autoscalingSettings</a> smart constructor.
data AutoscalingSettings

-- | Creates a value of <a>AutoscalingSettings</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>asMaxNumWorkers</a></li>
--   <li><a>asAlgorithm</a></li>
--   </ul>
autoscalingSettings :: AutoscalingSettings

-- | The maximum number of workers to cap scaling at.
asMaxNumWorkers :: Lens' AutoscalingSettings (Maybe Int32)

-- | The algorithm to use for autoscaling.
asAlgorithm :: Lens' AutoscalingSettings (Maybe Text)

-- | Contains information about how a particular
--   google.dataflow.v1beta3.Step will be executed.
--   
--   <i>See:</i> <a>jobExecutionStageInfo</a> smart constructor.
data JobExecutionStageInfo

-- | Creates a value of <a>JobExecutionStageInfo</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>jesiStepName</a></li>
--   </ul>
jobExecutionStageInfo :: JobExecutionStageInfo

-- | The steps associated with the execution stage. Note that stages may
--   have several steps, and that a given step might be run by more than
--   one stage.
jesiStepName :: Lens' JobExecutionStageInfo [Text]

-- | An output of an instruction.
--   
--   <i>See:</i> <a>instructionOutput</a> smart constructor.
data InstructionOutput

-- | Creates a value of <a>InstructionOutput</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>ioOnlyCountValueBytes</a></li>
--   <li><a>ioCodec</a></li>
--   <li><a>ioName</a></li>
--   <li><a>ioSystemName</a></li>
--   <li><a>ioOriginalName</a></li>
--   <li><a>ioOnlyCountKeyBytes</a></li>
--   </ul>
instructionOutput :: InstructionOutput

-- | For system-generated byte and mean byte metrics, certain instructions
--   should only report the value size.
ioOnlyCountValueBytes :: Lens' InstructionOutput (Maybe Bool)

-- | The codec to use to encode data being written via this output.
ioCodec :: Lens' InstructionOutput (Maybe InstructionOutputCodec)

-- | The user-provided name of this output.
ioName :: Lens' InstructionOutput (Maybe Text)

-- | System-defined name of this output. Unique across the workflow.
ioSystemName :: Lens' InstructionOutput (Maybe Text)

-- | System-defined name for this output in the original workflow graph.
--   Outputs that do not contribute to an original instruction do not set
--   this.
ioOriginalName :: Lens' InstructionOutput (Maybe Text)

-- | For system-generated byte and mean byte metrics, certain instructions
--   should only report the key size.
ioOnlyCountKeyBytes :: Lens' InstructionOutput (Maybe Bool)

-- | Request to report the status of WorkItems.
--   
--   <i>See:</i> <a>reportWorkItemStatusRequest</a> smart constructor.
data ReportWorkItemStatusRequest

-- | Creates a value of <a>ReportWorkItemStatusRequest</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>rwisrCurrentWorkerTime</a></li>
--   <li><a>rwisrLocation</a></li>
--   <li><a>rwisrWorkItemStatuses</a></li>
--   <li><a>rwisrWorkerId</a></li>
--   </ul>
reportWorkItemStatusRequest :: ReportWorkItemStatusRequest

-- | The current timestamp at the worker.
rwisrCurrentWorkerTime :: Lens' ReportWorkItemStatusRequest (Maybe Text)

-- | The location which contains the WorkItem's job.
rwisrLocation :: Lens' ReportWorkItemStatusRequest (Maybe Text)

-- | The order is unimportant, except that the order of the
--   WorkItemServiceState messages in the ReportWorkItemStatusResponse
--   corresponds to the order of WorkItemStatus messages here.
rwisrWorkItemStatuses :: Lens' ReportWorkItemStatusRequest [WorkItemStatus]

-- | The ID of the worker reporting the WorkItem status. If this does not
--   match the ID of the worker which the Dataflow service believes
--   currently has the lease on the WorkItem, the report will be dropped
--   (with an error response).
rwisrWorkerId :: Lens' ReportWorkItemStatusRequest (Maybe Text)

-- | A structure describing which components and their versions of the
--   service are required in order to run the job.
--   
--   <i>See:</i> <a>environmentVersion</a> smart constructor.
data EnvironmentVersion

-- | Creates a value of <a>EnvironmentVersion</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>evAddtional</a></li>
--   </ul>
environmentVersion :: HashMap Text JSONValue -> EnvironmentVersion

-- | Properties of the object.
evAddtional :: Lens' EnvironmentVersion (HashMap Text JSONValue)

-- | A sink that records can be encoded and written to.
--   
--   <i>See:</i> <a>sink</a> smart constructor.
data Sink

-- | Creates a value of <a>Sink</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>sCodec</a></li>
--   <li><a>sSpec</a></li>
--   </ul>
sink :: Sink

-- | The codec to use to encode data written to the sink.
sCodec :: Lens' Sink (Maybe SinkCodec)

-- | The sink to write to, plus its parameters.
sSpec :: Lens' Sink (Maybe SinkSpec)

-- | A metric value representing a list of strings.
--   
--   <i>See:</i> <a>stringList</a> smart constructor.
data StringList

-- | Creates a value of <a>StringList</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>slElements</a></li>
--   </ul>
stringList :: StringList

-- | Elements of the list.
slElements :: Lens' StringList [Text]

-- | WorkerHealthReportResponse contains information returned to the worker
--   in response to a health ping.
--   
--   <i>See:</i> <a>workerHealthReportResponse</a> smart constructor.
data WorkerHealthReportResponse

-- | Creates a value of <a>WorkerHealthReportResponse</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>whrrReportInterval</a></li>
--   </ul>
workerHealthReportResponse :: WorkerHealthReportResponse

-- | A positive value indicates the worker should change its reporting
--   interval to the specified value. The default value of zero means no
--   change in report rate is requested by the server.
whrrReportInterval :: Lens' WorkerHealthReportResponse (Maybe Text)

-- | Response to a send capture request. nothing
--   
--   <i>See:</i> <a>sendDebugCaptureResponse</a> smart constructor.
data SendDebugCaptureResponse

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

-- | User-defined labels for this job. The labels map can contain no more
--   than 64 entries. Entries of the labels map are UTF8 strings that
--   comply with the following restrictions: * Keys must conform to regexp:
--   \p{Ll}\p{Lo}{0,62} * Values must conform to regexp:
--   [\p{Ll}\p{Lo}\p{N}_-]{0,63} * Both keys and values are additionally
--   constrained to be &lt;= 128 bytes in size.
--   
--   <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)

-- | Identifies a metric, by describing the source which generated the
--   metric.
--   
--   <i>See:</i> <a>metricStructuredName</a> smart constructor.
data MetricStructuredName

-- | Creates a value of <a>MetricStructuredName</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>msnOrigin</a></li>
--   <li><a>msnContext</a></li>
--   <li><a>msnName</a></li>
--   </ul>
metricStructuredName :: MetricStructuredName

-- | Origin (namespace) of metric name. May be blank for user-define
--   metrics; will be "dataflow" for metrics defined by the Dataflow
--   service or SDK.
msnOrigin :: Lens' MetricStructuredName (Maybe Text)

-- | Zero or more labeled fields which identify the part of the job this
--   metric is associated with, such as the name of a step or collection.
--   For example, built-in counters associated with steps will have
--   context['step'] = . Counters associated with PCollections in the SDK
--   will have context['pcollection'] = .
msnContext :: Lens' MetricStructuredName (Maybe MetricStructuredNameContext)

-- | Worker-defined metric name.
msnName :: Lens' MetricStructuredName (Maybe Text)

-- | Identifies a counter within a per-job namespace. Counters whose
--   structured names are the same get merged into a single value for the
--   job.
--   
--   <i>See:</i> <a>counterStructuredName</a> smart constructor.
data CounterStructuredName

-- | Creates a value of <a>CounterStructuredName</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>csnStandardOrigin</a></li>
--   <li><a>csnComponentStepName</a></li>
--   <li><a>csnOtherOrigin</a></li>
--   <li><a>csnPortion</a></li>
--   <li><a>csnOriginalStepName</a></li>
--   <li><a>csnName</a></li>
--   <li><a>csnExecutionStepName</a></li>
--   <li><a>csnWorkerId</a></li>
--   </ul>
counterStructuredName :: CounterStructuredName

-- | One of the standard Origins defined above.
csnStandardOrigin :: Lens' CounterStructuredName (Maybe Text)

-- | Name of the optimized step being executed by the workers.
csnComponentStepName :: Lens' CounterStructuredName (Maybe Text)

-- | A string containing the origin of the counter.
csnOtherOrigin :: Lens' CounterStructuredName (Maybe Text)

-- | Portion of this counter, either key or value.
csnPortion :: Lens' CounterStructuredName (Maybe Text)

-- | System generated name of the original step in the user's graph, before
--   optimization.
csnOriginalStepName :: Lens' CounterStructuredName (Maybe Text)

-- | Counter name. Not necessarily globally-unique, but unique within the
--   context of the other fields. Required.
csnName :: Lens' CounterStructuredName (Maybe Text)

-- | Name of the stage. An execution step contains multiple component
--   steps.
csnExecutionStepName :: Lens' CounterStructuredName (Maybe Text)

-- | ID of a particular worker.
csnWorkerId :: Lens' CounterStructuredName (Maybe Text)

-- | An instruction that writes records. Takes one input, produces no
--   outputs.
--   
--   <i>See:</i> <a>writeInstruction</a> smart constructor.
data WriteInstruction

-- | Creates a value of <a>WriteInstruction</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>wiSink</a></li>
--   <li><a>wiInput</a></li>
--   </ul>
writeInstruction :: WriteInstruction

-- | The sink to write to.
wiSink :: Lens' WriteInstruction (Maybe Sink)

-- | The input.
wiInput :: Lens' WriteInstruction (Maybe InstructionInput)

-- | A description of the process that generated the request.
--   
--   <i>See:</i> <a>environmentUserAgent</a> smart constructor.
data EnvironmentUserAgent

-- | Creates a value of <a>EnvironmentUserAgent</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>euaAddtional</a></li>
--   </ul>
environmentUserAgent :: HashMap Text JSONValue -> EnvironmentUserAgent

-- | Properties of the object.
euaAddtional :: Lens' EnvironmentUserAgent (HashMap Text JSONValue)

-- | Describes the data disk used by a workflow job.
--   
--   <i>See:</i> <a>disk</a> smart constructor.
data Disk

-- | Creates a value of <a>Disk</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>dSizeGb</a></li>
--   <li><a>dDiskType</a></li>
--   <li><a>dMountPoint</a></li>
--   </ul>
disk :: Disk

-- | Size of disk in GB. If zero or unspecified, the service will attempt
--   to choose a reasonable default.
dSizeGb :: Lens' Disk (Maybe Int32)

-- | Disk storage type, as defined by Google Compute Engine. This must be a
--   disk type appropriate to the project and zone in which the workers
--   will run. If unknown or unspecified, the service will attempt to
--   choose a reasonable default. For example, the standard persistent disk
--   type is a resource name typically ending in "pd-standard". If SSD
--   persistent disks are available, the resource name typically ends with
--   "pd-ssd". The actual valid values are defined the Google Compute
--   Engine API, not by the Cloud Dataflow API; consult the Google Compute
--   Engine documentation for more information about determining the set of
--   available disk types for a particular project and zone. Google Compute
--   Engine Disk types are local to a particular project in a particular
--   zone, and so the resource name will typically look something like
--   this:
--   compute.googleapis.com/projects/project-id/zones/zone/diskTypes/pd-standard
dDiskType :: Lens' Disk (Maybe Text)

-- | Directory in a VM where disk is mounted.
dMountPoint :: Lens' Disk (Maybe Text)

-- | Describes the state of a metric.
--   
--   <i>See:</i> <a>metricUpdate</a> smart constructor.
data MetricUpdate

-- | Creates a value of <a>MetricUpdate</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>muMeanSum</a></li>
--   <li><a>muInternal</a></li>
--   <li><a>muSet</a></li>
--   <li><a>muCumulative</a></li>
--   <li><a>muKind</a></li>
--   <li><a>muUpdateTime</a></li>
--   <li><a>muMeanCount</a></li>
--   <li><a>muName</a></li>
--   <li><a>muScalar</a></li>
--   </ul>
metricUpdate :: MetricUpdate

-- | Worker-computed aggregate value for the "Mean" aggregation kind. This
--   holds the sum of the aggregated values and is used in combination with
--   mean_count below to obtain the actual mean aggregate value. The only
--   possible value types are Long and Double.
muMeanSum :: Lens' MetricUpdate (Maybe JSONValue)

-- | Worker-computed aggregate value for internal use by the Dataflow
--   service.
muInternal :: Lens' MetricUpdate (Maybe JSONValue)

-- | Worker-computed aggregate value for the "Set" aggregation kind. The
--   only possible value type is a list of Values whose type can be Long,
--   Double, or String, according to the metric's type. All Values in the
--   list must be of the same type.
muSet :: Lens' MetricUpdate (Maybe JSONValue)

-- | True if this metric is reported as the total cumulative aggregate
--   value accumulated since the worker started working on this WorkItem.
--   By default this is false, indicating that this metric is reported as a
--   delta that is not associated with any WorkItem.
muCumulative :: Lens' MetricUpdate (Maybe Bool)

-- | Metric aggregation kind. The possible metric aggregation kinds are
--   "Sum", "Max", "Min", "Mean", "Set", "And", and "Or". The specified
--   aggregation kind is case-insensitive. If omitted, this is not an
--   aggregated value but instead a single metric sample value.
muKind :: Lens' MetricUpdate (Maybe Text)

-- | Timestamp associated with the metric value. Optional when workers are
--   reporting work progress; it will be filled in responses from the
--   metrics API.
muUpdateTime :: Lens' MetricUpdate (Maybe Text)

-- | Worker-computed aggregate value for the "Mean" aggregation kind. This
--   holds the count of the aggregated values and is used in combination
--   with mean_sum above to obtain the actual mean aggregate value. The
--   only possible value type is Long.
muMeanCount :: Lens' MetricUpdate (Maybe JSONValue)

-- | Name of the metric.
muName :: Lens' MetricUpdate (Maybe MetricStructuredName)

-- | Worker-computed aggregate value for aggregation kinds "Sum", "Max",
--   "Min", "And", and "Or". The possible value types are Long, Double, and
--   Boolean.
muScalar :: Lens' MetricUpdate (Maybe JSONValue)

-- | The result of a SourceGetMetadataOperation.
--   
--   <i>See:</i> <a>sourceGetMetadataResponse</a> smart constructor.
data SourceGetMetadataResponse

-- | Creates a value of <a>SourceGetMetadataResponse</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>sgmrMetadata</a></li>
--   </ul>
sourceGetMetadataResponse :: SourceGetMetadataResponse

-- | The computed metadata.
sgmrMetadata :: Lens' SourceGetMetadataResponse (Maybe SourceMetadata)

-- | Describes the environment in which a Dataflow Job runs.
--   
--   <i>See:</i> <a>environment</a> smart constructor.
data Environment

-- | Creates a value of <a>Environment</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>eDataSet</a></li>
--   <li><a>eExperiments</a></li>
--   <li><a>eWorkerPools</a></li>
--   <li><a>eClusterManagerAPIService</a></li>
--   <li><a>eVersion</a></li>
--   <li><a>eInternalExperiments</a></li>
--   <li><a>eTempStoragePrefix</a></li>
--   <li><a>eServiceAccountEmail</a></li>
--   <li><a>eUserAgent</a></li>
--   <li><a>eSdkPipelineOptions</a></li>
--   </ul>
environment :: Environment

-- | The dataset for the current project where various workflow related
--   tables are stored. The supported resource type is: Google BigQuery:
--   bigquery.googleapis.com/{dataset}
eDataSet :: Lens' Environment (Maybe Text)

-- | The list of experiments to enable.
eExperiments :: Lens' Environment [Text]

-- | The worker pools. At least one "harness" worker pool must be specified
--   in order for the job to have workers.
eWorkerPools :: Lens' Environment [WorkerPool]

-- | The type of cluster manager API to use. If unknown or unspecified, the
--   service will attempt to choose a reasonable default. This should be in
--   the form of the API service name, e.g. "compute.googleapis.com".
eClusterManagerAPIService :: Lens' Environment (Maybe Text)

-- | A structure describing which components and their versions of the
--   service are required in order to run the job.
eVersion :: Lens' Environment (Maybe EnvironmentVersion)

-- | Experimental settings.
eInternalExperiments :: Lens' Environment (Maybe EnvironmentInternalExperiments)

-- | The prefix of the resources the system should use for temporary
--   storage. The system will append the suffix "/temp-{JOBNAME} to this
--   resource prefix, where {JOBNAME} is the value of the job_name field.
--   The resulting bucket and object prefix is used as the prefix of the
--   resources used to store temporary data needed during the job
--   execution. NOTE: This will override the value in taskrunner_settings.
--   The supported resource type is: Google Cloud Storage:
--   storage.googleapis.com/{bucket}/{object}
--   bucket.storage.googleapis.com/{object}
eTempStoragePrefix :: Lens' Environment (Maybe Text)

-- | Identity to run virtual machines as. Defaults to the default account.
eServiceAccountEmail :: Lens' Environment (Maybe Text)

-- | A description of the process that generated the request.
eUserAgent :: Lens' Environment (Maybe EnvironmentUserAgent)

-- | The Cloud Dataflow SDK pipeline options specified by the user. These
--   options are passed through the service and are used to recreate the
--   SDK pipeline options on the worker in a language agnostic and platform
--   independent way.
eSdkPipelineOptions :: Lens' Environment (Maybe EnvironmentSdkPipelineOptions)

-- | A position that encapsulates an inner position and an index for the
--   inner position. A ConcatPosition can be used by a reader of a source
--   that encapsulates a set of other sources.
--   
--   <i>See:</i> <a>concatPosition</a> smart constructor.
data ConcatPosition

-- | Creates a value of <a>ConcatPosition</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>cpIndex</a></li>
--   <li><a>cpPosition</a></li>
--   </ul>
concatPosition :: ConcatPosition

-- | Index of the inner source.
cpIndex :: Lens' ConcatPosition (Maybe Int32)

-- | Position within the inner source.
cpPosition :: Lens' ConcatPosition (Maybe Position)

-- | Zero or more labeled fields which identify the part of the job this
--   metric is associated with, such as the name of a step or collection.
--   For example, built-in counters associated with steps will have
--   context['step'] = . Counters associated with PCollections in the SDK
--   will have context['pcollection'] = .
--   
--   <i>See:</i> <a>metricStructuredNameContext</a> smart constructor.
data MetricStructuredNameContext

-- | Creates a value of <a>MetricStructuredNameContext</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>msncAddtional</a></li>
--   </ul>
metricStructuredNameContext :: HashMap Text Text -> MetricStructuredNameContext
msncAddtional :: Lens' MetricStructuredNameContext (HashMap Text Text)

-- | An update to a Counter sent from a worker.
--   
--   <i>See:</i> <a>counterUpdate</a> smart constructor.
data CounterUpdate

-- | Creates a value of <a>CounterUpdate</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>cuNameAndKind</a></li>
--   <li><a>cuIntegerList</a></li>
--   <li><a>cuFloatingPoint</a></li>
--   <li><a>cuInternal</a></li>
--   <li><a>cuStringList</a></li>
--   <li><a>cuShortId</a></li>
--   <li><a>cuDistribution</a></li>
--   <li><a>cuCumulative</a></li>
--   <li><a>cuStructuredNameAndMetadata</a></li>
--   <li><a>cuFloatingPointMean</a></li>
--   <li><a>cuIntegerMean</a></li>
--   <li><a>cuBoolean</a></li>
--   <li><a>cuFloatingPointList</a></li>
--   <li><a>cuInteger</a></li>
--   </ul>
counterUpdate :: CounterUpdate

-- | Counter name and aggregation type.
cuNameAndKind :: Lens' CounterUpdate (Maybe NameAndKind)

-- | List of integers, for Set.
cuIntegerList :: Lens' CounterUpdate (Maybe IntegerList)

-- | Floating point value for Sum, Max, Min.
cuFloatingPoint :: Lens' CounterUpdate (Maybe Double)

-- | Value for internally-defined counters used by the Dataflow service.
cuInternal :: Lens' CounterUpdate (Maybe JSONValue)

-- | List of strings, for Set.
cuStringList :: Lens' CounterUpdate (Maybe StringList)

-- | The service-generated short identifier for this counter. The short_id
--   -&gt; (name, metadata) mapping is constant for the lifetime of a job.
cuShortId :: Lens' CounterUpdate (Maybe Int64)

-- | Distribution data
cuDistribution :: Lens' CounterUpdate (Maybe DistributionUpdate)

-- | True if this counter is reported as the total cumulative aggregate
--   value accumulated since the worker started working on this WorkItem.
--   By default this is false, indicating that this counter is reported as
--   a delta.
cuCumulative :: Lens' CounterUpdate (Maybe Bool)

-- | Counter structured name and metadata.
cuStructuredNameAndMetadata :: Lens' CounterUpdate (Maybe CounterStructuredNameAndMetadata)

-- | Floating point mean aggregation value for Mean.
cuFloatingPointMean :: Lens' CounterUpdate (Maybe FloatingPointMean)

-- | Integer mean aggregation value for Mean.
cuIntegerMean :: Lens' CounterUpdate (Maybe IntegerMean)

-- | Boolean value for And, Or.
cuBoolean :: Lens' CounterUpdate (Maybe Bool)

-- | List of floating point numbers, for Set.
cuFloatingPointList :: Lens' CounterUpdate (Maybe FloatingPointList)

-- | Integer value for Sum, Max, Min.
cuInteger :: Lens' CounterUpdate (Maybe SplitInt64)

-- | Identifies the location of a streaming computation stage, for
--   stage-to-stage communication.
--   
--   <i>See:</i> <a>streamingStageLocation</a> smart constructor.
data StreamingStageLocation

-- | Creates a value of <a>StreamingStageLocation</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>sslStreamId</a></li>
--   </ul>
streamingStageLocation :: StreamingStageLocation

-- | Identifies the particular stream within the streaming Dataflow job.
sslStreamId :: Lens' StreamingStageLocation (Maybe Text)

-- | Specification of one of the bundles produced as a result of splitting
--   a Source (e.g. when executing a SourceSplitRequest, or when splitting
--   an active task using WorkItemStatus.dynamic_source_split), relative to
--   the source being split.
--   
--   <i>See:</i> <a>derivedSource</a> smart constructor.
data DerivedSource

-- | Creates a value of <a>DerivedSource</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>dsDerivationMode</a></li>
--   <li><a>dsSource</a></li>
--   </ul>
derivedSource :: DerivedSource

-- | What source to base the produced source on (if any).
dsDerivationMode :: Lens' DerivedSource (Maybe Text)

-- | Specification of the source.
dsSource :: Lens' DerivedSource (Maybe Source)

-- | JobMetrics contains a collection of metrics descibing the detailed
--   progress of a Dataflow job. Metrics correspond to user-defined and
--   system-defined metrics in the job. This resource captures only the
--   most recent values of each metric; time-series data can be queried for
--   them (under the same metric names) from Cloud Monitoring.
--   
--   <i>See:</i> <a>jobMetrics</a> smart constructor.
data JobMetrics

-- | Creates a value of <a>JobMetrics</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>jmMetrics</a></li>
--   <li><a>jmMetricTime</a></li>
--   </ul>
jobMetrics :: JobMetrics

-- | All metrics for this job.
jmMetrics :: Lens' JobMetrics [MetricUpdate]

-- | Timestamp as of which metric values are current.
jmMetricTime :: Lens' JobMetrics (Maybe Text)

-- | Request to send encoded debug information.
--   
--   <i>See:</i> <a>sendDebugCaptureRequest</a> smart constructor.
data SendDebugCaptureRequest

-- | Creates a value of <a>SendDebugCaptureRequest</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>sdcrData</a></li>
--   <li><a>sdcrComponentId</a></li>
--   <li><a>sdcrWorkerId</a></li>
--   </ul>
sendDebugCaptureRequest :: SendDebugCaptureRequest

-- | The encoded debug information.
sdcrData :: Lens' SendDebugCaptureRequest (Maybe Text)

-- | The internal component id for which debug information is sent.
sdcrComponentId :: Lens' SendDebugCaptureRequest (Maybe Text)

-- | The worker id, i.e., VM hostname.
sdcrWorkerId :: Lens' SendDebugCaptureRequest (Maybe Text)

-- | Conveys a worker's progress through the work described by a WorkItem.
--   
--   <i>See:</i> <a>workItemStatus</a> smart constructor.
data WorkItemStatus

-- | Creates a value of <a>WorkItemStatus</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>wisReportedProgress</a></li>
--   <li><a>wisProgress</a></li>
--   <li><a>wisSourceOperationResponse</a></li>
--   <li><a>wisStopPosition</a></li>
--   <li><a>wisDynamicSourceSplit</a></li>
--   <li><a>wisCompleted</a></li>
--   <li><a>wisSourceFork</a></li>
--   <li><a>wisReportIndex</a></li>
--   <li><a>wisRequestedLeaseDuration</a></li>
--   <li><a>wisErrors</a></li>
--   <li><a>wisCounterUpdates</a></li>
--   <li><a>wisMetricUpdates</a></li>
--   <li><a>wisWorkItemId</a></li>
--   </ul>
workItemStatus :: WorkItemStatus

-- | The worker's progress through this WorkItem.
wisReportedProgress :: Lens' WorkItemStatus (Maybe ApproximateReportedProgress)

-- | DEPRECATED in favor of reported_progress.
wisProgress :: Lens' WorkItemStatus (Maybe ApproximateProgress)

-- | If the work item represented a SourceOperationRequest, and the work is
--   completed, contains the result of the operation.
wisSourceOperationResponse :: Lens' WorkItemStatus (Maybe SourceOperationResponse)

-- | A worker may split an active map task in two parts, "primary" and
--   "residual", continuing to process the primary part and returning the
--   residual part into the pool of available work. This event is called a
--   "dynamic split" and is critical to the dynamic work rebalancing
--   feature. The two obtained sub-tasks are called "parts" of the split.
--   The parts, if concatenated, must represent the same input as would be
--   read by the current task if the split did not happen. The exact way in
--   which the original task is decomposed into the two parts is specified
--   either as a position demarcating them (stop_position), or explicitly
--   as two DerivedSources, if this task consumes a user-defined source
--   type (dynamic_source_split). The "current" task is adjusted as a
--   result of the split: after a task with range [A, B) sends a
--   stop_position update at C, its range is considered to be [A, C), e.g.:
--   * Progress should be interpreted relative to the new range, e.g. "75%
--   completed" means "75% of [A, C) completed" * The worker should
--   interpret proposed_stop_position relative to the new range, e.g.
--   "split at 68%" should be interpreted as "split at 68% of [A, C)". * If
--   the worker chooses to split again using stop_position, only
--   stop_positions in [A, C) will be accepted. * Etc. dynamic_source_split
--   has similar semantics: e.g., if a task with source S splits using
--   dynamic_source_split into {P, R} (where P and R must be together
--   equivalent to S), then subsequent progress and proposed_stop_position
--   should be interpreted relative to P, and in a potential subsequent
--   dynamic_source_split into {P', R'}, P' and R' must be together
--   equivalent to P, etc.
wisStopPosition :: Lens' WorkItemStatus (Maybe Position)

-- | See documentation of stop_position.
wisDynamicSourceSplit :: Lens' WorkItemStatus (Maybe DynamicSourceSplit)

-- | True if the WorkItem was completed (successfully or unsuccessfully).
wisCompleted :: Lens' WorkItemStatus (Maybe Bool)

-- | DEPRECATED in favor of dynamic_source_split.
wisSourceFork :: Lens' WorkItemStatus (Maybe SourceFork)

-- | The report index. When a WorkItem is leased, the lease will contain an
--   initial report index. When a WorkItem's status is reported to the
--   system, the report should be sent with that report index, and the
--   response will contain the index the worker should use for the next
--   report. Reports received with unexpected index values will be rejected
--   by the service. In order to preserve idempotency, the worker should
--   not alter the contents of a report, even if the worker must submit the
--   same report multiple times before getting back a response. The worker
--   should not submit a subsequent report until the response for the
--   previous report had been received from the service.
wisReportIndex :: Lens' WorkItemStatus (Maybe Int64)

-- | Amount of time the worker requests for its lease.
wisRequestedLeaseDuration :: Lens' WorkItemStatus (Maybe Text)

-- | Specifies errors which occurred during processing. If errors are
--   provided, and completed = true, then the WorkItem is considered to
--   have failed.
wisErrors :: Lens' WorkItemStatus [Status]

-- | Worker output counters for this WorkItem.
wisCounterUpdates :: Lens' WorkItemStatus [CounterUpdate]

-- | DEPRECATED in favor of counter_updates.
wisMetricUpdates :: Lens' WorkItemStatus [MetricUpdate]

-- | Identifies the WorkItem.
wisWorkItemId :: Lens' WorkItemStatus (Maybe Text)

-- | Labels are used to group WorkerMessages. For example, a worker_message
--   about a particular container might have the labels: { "JOB_ID":
--   "2015-04-22", "WORKER_ID": "wordcount-vm-2015…" "CONTAINER_TYPE":
--   "worker", "CONTAINER_ID": "ac1234def"} Label tags typically correspond
--   to Label enum values. However, for ease of development other strings
--   can be used as tags. LABEL_UNSPECIFIED should not be used here.
--   
--   <i>See:</i> <a>workerMessageLabels</a> smart constructor.
data WorkerMessageLabels

-- | Creates a value of <a>WorkerMessageLabels</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>wmlAddtional</a></li>
--   </ul>
workerMessageLabels :: HashMap Text Text -> WorkerMessageLabels
wmlAddtional :: Lens' WorkerMessageLabels (HashMap Text Text)

-- | An instruction that copies its inputs (zero or more) to its (single)
--   output.
--   
--   <i>See:</i> <a>flattenInstruction</a> smart constructor.
data FlattenInstruction

-- | Creates a value of <a>FlattenInstruction</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>fiInputs</a></li>
--   </ul>
flattenInstruction :: FlattenInstruction

-- | Describes the inputs to the flatten instruction.
fiInputs :: Lens' FlattenInstruction [InstructionInput]

-- | A message code is used to report status and error messages to the
--   service. The message codes are intended to be machine readable. The
--   service will take care of translating these into user understandable
--   messages if necessary. Example use cases: 1. Worker processes
--   reporting successful startup. 2. Worker processes reporting specific
--   errors (e.g. package staging failure).
--   
--   <i>See:</i> <a>workerMessageCode</a> smart constructor.
data WorkerMessageCode

-- | Creates a value of <a>WorkerMessageCode</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>wmcParameters</a></li>
--   <li><a>wmcCode</a></li>
--   </ul>
workerMessageCode :: WorkerMessageCode

-- | Parameters contains specific information about the code. This is a
--   struct to allow parameters of different types. Examples: 1. For a
--   "HARNESS_STARTED" message parameters might provide the name of the
--   worker and additional data like timing information. 2. For a
--   "GCS_DOWNLOAD_ERROR" parameters might contain fields listing the GCS
--   objects being downloaded and fields containing errors. In general
--   complex data structures should be avoided. If a worker needs to send a
--   specific and complicated data structure then please consider defining
--   a new proto and adding it to the data oneof in WorkerMessageResponse.
--   Conventions: Parameters should only be used for information that isn't
--   typically passed as a label. hostname and other worker identifiers
--   should almost always be passed as labels since they will be included
--   on most messages.
wmcParameters :: Lens' WorkerMessageCode (Maybe WorkerMessageCodeParameters)

-- | The code is a string intended for consumption by a machine that
--   identifies the type of message being sent. Examples: 1.
--   "HARNESS_STARTED" might be used to indicate the worker harness has
--   started. 2. "GCS_DOWNLOAD_ERROR" might be used to indicate an error
--   downloading a GCS file as part of the boot process of one of the
--   worker containers. This is a string and not an enum to make it easy to
--   add new codes without waiting for an API change.
wmcCode :: Lens' WorkerMessageCode (Maybe Text)

-- | The map of transform name prefixes of the job to be replaced to the
--   corresponding name prefixes of the new job.
--   
--   <i>See:</i> <a>jobTransformNameMApping</a> smart constructor.
data JobTransformNameMApping

-- | Creates a value of <a>JobTransformNameMApping</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>jtnmaAddtional</a></li>
--   </ul>
jobTransformNameMApping :: HashMap Text Text -> JobTransformNameMApping
jtnmaAddtional :: Lens' JobTransformNameMApping (HashMap Text Text)

-- | The source to read from, plus its parameters.
--   
--   <i>See:</i> <a>sourceSpec</a> smart constructor.
data SourceSpec

-- | Creates a value of <a>SourceSpec</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>ssAddtional</a></li>
--   </ul>
sourceSpec :: HashMap Text JSONValue -> SourceSpec

-- | Properties of the object.
ssAddtional :: Lens' SourceSpec (HashMap Text JSONValue)

-- | Metadata about a Source useful for automatically optimizing and tuning
--   the pipeline, etc.
--   
--   <i>See:</i> <a>sourceMetadata</a> smart constructor.
data SourceMetadata

-- | Creates a value of <a>SourceMetadata</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>smEstimatedSizeBytes</a></li>
--   <li><a>smProducesSortedKeys</a></li>
--   <li><a>smInfinite</a></li>
--   </ul>
sourceMetadata :: SourceMetadata

-- | An estimate of the total size (in bytes) of the data that would be
--   read from this source. This estimate is in terms of external storage
--   size, before any decompression or other processing done by the reader.
smEstimatedSizeBytes :: Lens' SourceMetadata (Maybe Int64)

-- | Whether this source is known to produce key/value pairs with the
--   (encoded) keys in lexicographically sorted order.
smProducesSortedKeys :: Lens' SourceMetadata (Maybe Bool)

-- | Specifies that the size of this source is known to be infinite (this
--   is a streaming source).
smInfinite :: Lens' SourceMetadata (Maybe Bool)

-- | Experimental settings.
--   
--   <i>See:</i> <a>environmentInternalExperiments</a> smart constructor.
data EnvironmentInternalExperiments

-- | Creates a value of <a>EnvironmentInternalExperiments</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>eieAddtional</a></li>
--   </ul>
environmentInternalExperiments :: HashMap Text JSONValue -> EnvironmentInternalExperiments

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

-- | Taskrunner configuration settings.
--   
--   <i>See:</i> <a>taskRunnerSettings</a> smart constructor.
data TaskRunnerSettings

-- | Creates a value of <a>TaskRunnerSettings</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>trsContinueOnException</a></li>
--   <li><a>trsHarnessCommand</a></li>
--   <li><a>trsWorkflowFileName</a></li>
--   <li><a>trsTaskGroup</a></li>
--   <li><a>trsAlsologtostderr</a></li>
--   <li><a>trsDataflowAPIVersion</a></li>
--   <li><a>trsLogDir</a></li>
--   <li><a>trsCommandlinesFileName</a></li>
--   <li><a>trsVMId</a></li>
--   <li><a>trsBaseURL</a></li>
--   <li><a>trsOAuthScopes</a></li>
--   <li><a>trsTaskUser</a></li>
--   <li><a>trsStreamingWorkerMainClass</a></li>
--   <li><a>trsBaseTaskDir</a></li>
--   <li><a>trsLogUploadLocation</a></li>
--   <li><a>trsTempStoragePrefix</a></li>
--   <li><a>trsLogToSerialconsole</a></li>
--   <li><a>trsParallelWorkerSettings</a></li>
--   <li><a>trsLanguageHint</a></li>
--   </ul>
taskRunnerSettings :: TaskRunnerSettings

-- | Whether to continue taskrunner if an exception is hit.
trsContinueOnException :: Lens' TaskRunnerSettings (Maybe Bool)

-- | The command to launch the worker harness.
trsHarnessCommand :: Lens' TaskRunnerSettings (Maybe Text)

-- | The file to store the workflow in.
trsWorkflowFileName :: Lens' TaskRunnerSettings (Maybe Text)

-- | The UNIX group ID on the worker VM to use for tasks launched by
--   taskrunner; e.g. "wheel".
trsTaskGroup :: Lens' TaskRunnerSettings (Maybe Text)

-- | Whether to also send taskrunner log info to stderr.
trsAlsologtostderr :: Lens' TaskRunnerSettings (Maybe Bool)

-- | The API version of endpoint, e.g. "v1b3"
trsDataflowAPIVersion :: Lens' TaskRunnerSettings (Maybe Text)

-- | The directory on the VM to store logs.
trsLogDir :: Lens' TaskRunnerSettings (Maybe Text)

-- | The file to store preprocessing commands in.
trsCommandlinesFileName :: Lens' TaskRunnerSettings (Maybe Text)

-- | The ID string of the VM.
trsVMId :: Lens' TaskRunnerSettings (Maybe Text)

-- | The base URL for the taskrunner to use when accessing Google Cloud
--   APIs. When workers access Google Cloud APIs, they logically do so via
--   relative URLs. If this field is specified, it supplies the base URL to
--   use for resolving these relative URLs. The normative algorithm used is
--   defined by RFC 1808, "Relative Uniform Resource Locators". If not
--   specified, the default value is "http://www.googleapis.com/"
trsBaseURL :: Lens' TaskRunnerSettings (Maybe Text)

-- | The OAuth2 scopes to be requested by the taskrunner in order to access
--   the Cloud Dataflow API.
trsOAuthScopes :: Lens' TaskRunnerSettings [Text]

-- | The UNIX user ID on the worker VM to use for tasks launched by
--   taskrunner; e.g. "root".
trsTaskUser :: Lens' TaskRunnerSettings (Maybe Text)

-- | The streaming worker main class name.
trsStreamingWorkerMainClass :: Lens' TaskRunnerSettings (Maybe Text)

-- | The location on the worker for task-specific subdirectories.
trsBaseTaskDir :: Lens' TaskRunnerSettings (Maybe Text)

-- | Indicates where to put logs. If this is not specified, the logs will
--   not be uploaded. The supported resource type is: Google Cloud Storage:
--   storage.googleapis.com/{bucket}/{object}
--   bucket.storage.googleapis.com/{object}
trsLogUploadLocation :: Lens' TaskRunnerSettings (Maybe Text)

-- | The prefix of the resources the taskrunner should use for temporary
--   storage. The supported resource type is: Google Cloud Storage:
--   storage.googleapis.com/{bucket}/{object}
--   bucket.storage.googleapis.com/{object}
trsTempStoragePrefix :: Lens' TaskRunnerSettings (Maybe Text)

-- | Whether to send taskrunner log info to Google Compute Engine VM serial
--   console.
trsLogToSerialconsole :: Lens' TaskRunnerSettings (Maybe Bool)

-- | The settings to pass to the parallel worker harness.
trsParallelWorkerSettings :: Lens' TaskRunnerSettings (Maybe WorkerSettings)

-- | The suggested backend language.
trsLanguageHint :: Lens' TaskRunnerSettings (Maybe Text)

-- | Configuration information for a single streaming computation.
--   
--   <i>See:</i> <a>streamingComputationConfig</a> smart constructor.
data StreamingComputationConfig

-- | Creates a value of <a>StreamingComputationConfig</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>sccInstructions</a></li>
--   <li><a>sccSystemName</a></li>
--   <li><a>sccComputationId</a></li>
--   <li><a>sccStageName</a></li>
--   </ul>
streamingComputationConfig :: StreamingComputationConfig

-- | Instructions that comprise the computation.
sccInstructions :: Lens' StreamingComputationConfig [ParallelInstruction]

-- | System defined name for this computation.
sccSystemName :: Lens' StreamingComputationConfig (Maybe Text)

-- | Unique identifier for this computation.
sccComputationId :: Lens' StreamingComputationConfig (Maybe Text)

-- | Stage name of this computation.
sccStageName :: Lens' StreamingComputationConfig (Maybe Text)

-- | The Cloud Dataflow SDK pipeline options specified by the user. These
--   options are passed through the service and are used to recreate the
--   SDK pipeline options on the worker in a language agnostic and platform
--   independent way.
--   
--   <i>See:</i> <a>environmentSdkPipelineOptions</a> smart constructor.
data EnvironmentSdkPipelineOptions

-- | Creates a value of <a>EnvironmentSdkPipelineOptions</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>espoAddtional</a></li>
--   </ul>
environmentSdkPipelineOptions :: HashMap Text JSONValue -> EnvironmentSdkPipelineOptions

-- | Properties of the object.
espoAddtional :: Lens' EnvironmentSdkPipelineOptions (HashMap Text JSONValue)

-- | A representation of a floating point mean metric contribution.
--   
--   <i>See:</i> <a>floatingPointMean</a> smart constructor.
data FloatingPointMean

-- | Creates a value of <a>FloatingPointMean</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>fpmCount</a></li>
--   <li><a>fpmSum</a></li>
--   </ul>
floatingPointMean :: FloatingPointMean

-- | The number of values being aggregated.
fpmCount :: Lens' FloatingPointMean (Maybe SplitInt64)

-- | The sum of all values being aggregated.
fpmSum :: Lens' FloatingPointMean (Maybe Double)

-- | Request to lease WorkItems.
--   
--   <i>See:</i> <a>leaseWorkItemRequest</a> smart constructor.
data LeaseWorkItemRequest

-- | Creates a value of <a>LeaseWorkItemRequest</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>lwirWorkItemTypes</a></li>
--   <li><a>lwirCurrentWorkerTime</a></li>
--   <li><a>lwirLocation</a></li>
--   <li><a>lwirWorkerCapabilities</a></li>
--   <li><a>lwirRequestedLeaseDuration</a></li>
--   <li><a>lwirWorkerId</a></li>
--   </ul>
leaseWorkItemRequest :: LeaseWorkItemRequest

-- | Filter for WorkItem type.
lwirWorkItemTypes :: Lens' LeaseWorkItemRequest [Text]

-- | The current timestamp at the worker.
lwirCurrentWorkerTime :: Lens' LeaseWorkItemRequest (Maybe Text)

-- | The location which contains the WorkItem's job.
lwirLocation :: Lens' LeaseWorkItemRequest (Maybe Text)

-- | Worker capabilities. WorkItems might be limited to workers with
--   specific capabilities.
lwirWorkerCapabilities :: Lens' LeaseWorkItemRequest [Text]

-- | The initial lease period.
lwirRequestedLeaseDuration :: Lens' LeaseWorkItemRequest (Maybe Text)

-- | Identifies the worker leasing work -- typically the ID of the virtual
--   machine running the worker.
lwirWorkerId :: Lens' LeaseWorkItemRequest (Maybe Text)

-- | The result of a SourceOperationRequest, specified in
--   ReportWorkItemStatusRequest.source_operation when the work item is
--   completed.
--   
--   <i>See:</i> <a>sourceOperationResponse</a> smart constructor.
data SourceOperationResponse

-- | Creates a value of <a>SourceOperationResponse</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>sorSplit</a></li>
--   <li><a>sorGetMetadata</a></li>
--   </ul>
sourceOperationResponse :: SourceOperationResponse

-- | A response to a request to split a source.
sorSplit :: Lens' SourceOperationResponse (Maybe SourceSplitResponse)

-- | A response to a request to get metadata about a source.
sorGetMetadata :: Lens' SourceOperationResponse (Maybe SourceGetMetadataResponse)

-- | Maps user stage names to stable computation names.
--   
--   <i>See:</i> <a>topologyConfigUserStageToComputationNameMap</a> smart
--   constructor.
data TopologyConfigUserStageToComputationNameMap

-- | Creates a value of <a>TopologyConfigUserStageToComputationNameMap</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>tcustcnmAddtional</a></li>
--   </ul>
topologyConfigUserStageToComputationNameMap :: HashMap Text Text -> TopologyConfigUserStageToComputationNameMap
tcustcnmAddtional :: Lens' TopologyConfigUserStageToComputationNameMap (HashMap Text Text)

-- | A task which consists of a shell command for the worker to execute.
--   
--   <i>See:</i> <a>shellTask</a> smart constructor.
data ShellTask

-- | Creates a value of <a>ShellTask</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>stCommand</a></li>
--   <li><a>stExitCode</a></li>
--   </ul>
shellTask :: ShellTask

-- | The shell command to run.
stCommand :: Lens' ShellTask (Maybe Text)

-- | Exit code for the task.
stExitCode :: Lens' ShellTask (Maybe Int32)
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)

-- | Represents the level of parallelism in a WorkItem's input, reported by
--   the worker.
--   
--   <i>See:</i> <a>reportedParallelism</a> smart constructor.
data ReportedParallelism

-- | Creates a value of <a>ReportedParallelism</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>rpValue</a></li>
--   <li><a>rpIsInfinite</a></li>
--   </ul>
reportedParallelism :: ReportedParallelism

-- | Specifies the level of parallelism in case it is finite.
rpValue :: Lens' ReportedParallelism (Maybe Double)

-- | Specifies whether the parallelism is infinite. If true, "value" is
--   ignored. Infinite parallelism means the service will assume that the
--   work item can always be split into more non-empty work items by
--   dynamic splitting. This is a work-around for lack of support for
--   infinity by the current JSON-based Java RPC stack.
rpIsInfinite :: Lens' ReportedParallelism (Maybe Bool)

-- | Named properties associated with the step. Each kind of predefined
--   step has its own required set of properties.
--   
--   <i>See:</i> <a>stepProperties</a> smart constructor.
data StepProperties

-- | Creates a value of <a>StepProperties</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>spAddtional</a></li>
--   </ul>
stepProperties :: HashMap Text JSONValue -> StepProperties

-- | Properties of the object.
spAddtional :: Lens' StepProperties (HashMap Text JSONValue)

-- | Global topology of the streaming Dataflow job, including all
--   computations and their sharded locations.
--   
--   <i>See:</i> <a>topologyConfig</a> smart constructor.
data TopologyConfig

-- | Creates a value of <a>TopologyConfig</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>tcDataDiskAssignments</a></li>
--   <li><a>tcPersistentStateVersion</a></li>
--   <li><a>tcForwardingKeyBits</a></li>
--   <li><a>tcUserStageToComputationNameMap</a></li>
--   <li><a>tcComputations</a></li>
--   </ul>
topologyConfig :: TopologyConfig

-- | The disks assigned to a streaming Dataflow job.
tcDataDiskAssignments :: Lens' TopologyConfig [DataDiskAssignment]

-- | Version number for persistent state.
tcPersistentStateVersion :: Lens' TopologyConfig (Maybe Int32)

-- | The size (in bits) of keys that will be assigned to source messages.
tcForwardingKeyBits :: Lens' TopologyConfig (Maybe Int32)

-- | Maps user stage names to stable computation names.
tcUserStageToComputationNameMap :: Lens' TopologyConfig (Maybe TopologyConfigUserStageToComputationNameMap)

-- | The computations associated with a streaming Dataflow job.
tcComputations :: Lens' TopologyConfig [ComputationTopology]

-- | A suggestion by the service to the worker to dynamically split the
--   WorkItem.
--   
--   <i>See:</i> <a>approximateSplitRequest</a> smart constructor.
data ApproximateSplitRequest

-- | Creates a value of <a>ApproximateSplitRequest</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>asrFractionConsumed</a></li>
--   <li><a>asrPosition</a></li>
--   </ul>
approximateSplitRequest :: ApproximateSplitRequest

-- | A fraction at which to split the work item, from 0.0 (beginning of the
--   input) to 1.0 (end of the input).
asrFractionConsumed :: Lens' ApproximateSplitRequest (Maybe Double)

-- | A Position at which to split the work item.
asrPosition :: Lens' ApproximateSplitRequest (Maybe Position)

-- | A representation of an int64, n, that is immune to precision loss when
--   encoded in JSON.
--   
--   <i>See:</i> <a>splitInt64</a> smart constructor.
data SplitInt64

-- | Creates a value of <a>SplitInt64</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>siHighBits</a></li>
--   <li><a>siLowBits</a></li>
--   </ul>
splitInt64 :: SplitInt64

-- | The high order bits, including the sign: n &gt;&gt; 32.
siHighBits :: Lens' SplitInt64 (Maybe Int32)

-- | The low order bits: n &amp; 0xffffffff.
siLowBits :: Lens' SplitInt64 (Maybe Word32)

-- | Provides data to pass through to the worker harness.
--   
--   <i>See:</i> <a>workerSettings</a> smart constructor.
data WorkerSettings

-- | Creates a value of <a>WorkerSettings</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>wsServicePath</a></li>
--   <li><a>wsBaseURL</a></li>
--   <li><a>wsShuffleServicePath</a></li>
--   <li><a>wsTempStoragePrefix</a></li>
--   <li><a>wsReportingEnabled</a></li>
--   <li><a>wsWorkerId</a></li>
--   </ul>
workerSettings :: WorkerSettings

-- | The Cloud Dataflow service path relative to the root URL, for example,
--   "dataflow/v1b3/projects".
wsServicePath :: Lens' WorkerSettings (Maybe Text)

-- | The base URL for accessing Google Cloud APIs. When workers access
--   Google Cloud APIs, they logically do so via relative URLs. If this
--   field is specified, it supplies the base URL to use for resolving
--   these relative URLs. The normative algorithm used is defined by RFC
--   1808, "Relative Uniform Resource Locators". If not specified, the
--   default value is "http://www.googleapis.com/"
wsBaseURL :: Lens' WorkerSettings (Maybe Text)

-- | The Shuffle service path relative to the root URL, for example,
--   "shuffle/v1beta1".
wsShuffleServicePath :: Lens' WorkerSettings (Maybe Text)

-- | The prefix of the resources the system should use for temporary
--   storage. The supported resource type is: Google Cloud Storage:
--   storage.googleapis.com/{bucket}/{object}
--   bucket.storage.googleapis.com/{object}
wsTempStoragePrefix :: Lens' WorkerSettings (Maybe Text)

-- | Whether to send work progress updates to the service.
wsReportingEnabled :: Lens' WorkerSettings (Maybe Bool)

-- | The ID of the worker running this pipeline.
wsWorkerId :: Lens' WorkerSettings (Maybe Text)

-- | Response to a get debug configuration request.
--   
--   <i>See:</i> <a>getDebugConfigResponse</a> smart constructor.
data GetDebugConfigResponse

-- | Creates a value of <a>GetDebugConfigResponse</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>gdcrConfig</a></li>
--   </ul>
getDebugConfigResponse :: GetDebugConfigResponse

-- | The encoded debug configuration for the requested component.
gdcrConfig :: Lens' GetDebugConfigResponse (Maybe Text)

-- | Other data returned by the service, specific to the particular worker
--   harness.
--   
--   <i>See:</i> <a>workItemServiceStateHarnessData</a> smart constructor.
data WorkItemServiceStateHarnessData

-- | Creates a value of <a>WorkItemServiceStateHarnessData</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>wisshdAddtional</a></li>
--   </ul>
workItemServiceStateHarnessData :: HashMap Text JSONValue -> WorkItemServiceStateHarnessData

-- | Properties of the object.
wisshdAddtional :: Lens' WorkItemServiceStateHarnessData (HashMap Text JSONValue)

-- | Data disk assignment for a given VM instance.
--   
--   <i>See:</i> <a>dataDiskAssignment</a> smart constructor.
data DataDiskAssignment

-- | Creates a value of <a>DataDiskAssignment</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>ddaVMInstance</a></li>
--   <li><a>ddaDataDisks</a></li>
--   </ul>
dataDiskAssignment :: DataDiskAssignment

-- | VM instance name the data disks mounted to, for example
--   "myproject-1014-104817-4c2-harness-0".
ddaVMInstance :: Lens' DataDiskAssignment (Maybe Text)

-- | Mounted data disks. The order is important a data disk's 0-based index
--   in this list defines which persistent directory the disk is mounted
--   to, for example the list of {
--   "myproject-1014-104817-4c2-harness-0-disk-0" }, {
--   "myproject-1014-104817-4c2-harness-0-disk-1" }.
ddaDataDisks :: Lens' DataDiskAssignment [Text]

-- | Worker metrics exported from workers. This contains resource
--   utilization metrics accumulated from a variety of sources. For more
--   information, see go/df-resource-signals. Note that this proto closely
--   follows the structure of its DFE siblings in its contents.
--   
--   <i>See:</i> <a>resourceUtilizationReport</a> smart constructor.
data ResourceUtilizationReport

-- | Creates a value of <a>ResourceUtilizationReport</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>rurMetrics</a></li>
--   </ul>
resourceUtilizationReport :: ResourceUtilizationReport

-- | Each Struct must parallel DFE worker metrics protos (eg., cpu_time
--   metric will have nested values “timestamp_ms, total_ms, rate”).
rurMetrics :: Lens' ResourceUtilizationReport [ResourceUtilizationReportMetricsItem]

-- | Indicates which location failed to respond to a request for data.
--   
--   <i>See:</i> <a>failedLocation</a> smart constructor.
data FailedLocation

-- | Creates a value of <a>FailedLocation</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>flName</a></li>
--   </ul>
failedLocation :: FailedLocation

-- | The name of the failed location.
flName :: Lens' FailedLocation (Maybe Text)

-- | A worker_message response allows the server to pass information to the
--   sender.
--   
--   <i>See:</i> <a>workerMessageResponse</a> smart constructor.
data WorkerMessageResponse

-- | Creates a value of <a>WorkerMessageResponse</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>wmrWorkerHealthReportResponse</a></li>
--   <li><a>wmrWorkerMetricsResponse</a></li>
--   </ul>
workerMessageResponse :: WorkerMessageResponse

-- | The service's response to a worker's health report.
wmrWorkerHealthReportResponse :: Lens' WorkerMessageResponse (Maybe WorkerHealthReportResponse)

-- | Service's response to reporting worker metrics (currently empty).
wmrWorkerMetricsResponse :: Lens' WorkerMessageResponse (Maybe ResourceUtilizationReportResponse)

-- | The runtime parameters to pass to the job.
--   
--   <i>See:</i> <a>createJobFromTemplateRequestParameters</a> smart
--   constructor.
data CreateJobFromTemplateRequestParameters

-- | Creates a value of <a>CreateJobFromTemplateRequestParameters</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>cjftrpAddtional</a></li>
--   </ul>
createJobFromTemplateRequestParameters :: HashMap Text Text -> CreateJobFromTemplateRequestParameters
cjftrpAddtional :: Lens' CreateJobFromTemplateRequestParameters (HashMap Text Text)

-- | The Dataflow service's idea of the current state of a WorkItem being
--   processed by a worker.
--   
--   <i>See:</i> <a>workItemServiceState</a> smart constructor.
data WorkItemServiceState

-- | Creates a value of <a>WorkItemServiceState</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>wissNextReportIndex</a></li>
--   <li><a>wissReportStatusInterval</a></li>
--   <li><a>wissHarnessData</a></li>
--   <li><a>wissSuggestedStopPoint</a></li>
--   <li><a>wissSuggestedStopPosition</a></li>
--   <li><a>wissLeaseExpireTime</a></li>
--   <li><a>wissSplitRequest</a></li>
--   <li><a>wissMetricShortId</a></li>
--   </ul>
workItemServiceState :: WorkItemServiceState

-- | The index value to use for the next report sent by the worker. Note:
--   If the report call fails for whatever reason, the worker should reuse
--   this index for subsequent report attempts.
wissNextReportIndex :: Lens' WorkItemServiceState (Maybe Int64)

-- | New recommended reporting interval.
wissReportStatusInterval :: Lens' WorkItemServiceState (Maybe Text)

-- | Other data returned by the service, specific to the particular worker
--   harness.
wissHarnessData :: Lens' WorkItemServiceState (Maybe WorkItemServiceStateHarnessData)

-- | DEPRECATED in favor of split_request.
wissSuggestedStopPoint :: Lens' WorkItemServiceState (Maybe ApproximateProgress)

-- | Obsolete, always empty.
wissSuggestedStopPosition :: Lens' WorkItemServiceState (Maybe Position)

-- | Time at which the current lease will expire.
wissLeaseExpireTime :: Lens' WorkItemServiceState (Maybe Text)

-- | The progress point in the WorkItem where the Dataflow service suggests
--   that the worker truncate the task.
wissSplitRequest :: Lens' WorkItemServiceState (Maybe ApproximateSplitRequest)

-- | The short ids that workers should use in subsequent metric updates.
--   Workers should strive to use short ids whenever possible, but it is ok
--   to request the short_id again if a worker lost track of it (e.g. if
--   the worker is recovering from a crash). NOTE: it is possible that the
--   response may have short ids for a subset of the metrics.
wissMetricShortId :: Lens' WorkItemServiceState [MetricShortId]

-- | A task which initializes part of a streaming Dataflow job.
--   
--   <i>See:</i> <a>streamingSetupTask</a> smart constructor.
data StreamingSetupTask

-- | Creates a value of <a>StreamingSetupTask</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>sstStreamingComputationTopology</a></li>
--   <li><a>sstReceiveWorkPort</a></li>
--   <li><a>sstWorkerHarnessPort</a></li>
--   <li><a>sstDrain</a></li>
--   </ul>
streamingSetupTask :: StreamingSetupTask

-- | The global topology of the streaming Dataflow job.
sstStreamingComputationTopology :: Lens' StreamingSetupTask (Maybe TopologyConfig)

-- | The TCP port on which the worker should listen for messages from other
--   streaming computation workers.
sstReceiveWorkPort :: Lens' StreamingSetupTask (Maybe Int32)

-- | The TCP port used by the worker to communicate with the Dataflow
--   worker harness.
sstWorkerHarnessPort :: Lens' StreamingSetupTask (Maybe Int32)

-- | The user has requested drain.
sstDrain :: Lens' StreamingSetupTask (Maybe Bool)

-- | The codec to use for interpreting an element in the input PTable.
--   
--   <i>See:</i> <a>partialGroupByKeyInstructionInputElementCodec</a> smart
--   constructor.
data PartialGroupByKeyInstructionInputElementCodec

-- | Creates a value of
--   <a>PartialGroupByKeyInstructionInputElementCodec</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>pgbkiiecAddtional</a></li>
--   </ul>
partialGroupByKeyInstructionInputElementCodec :: HashMap Text JSONValue -> PartialGroupByKeyInstructionInputElementCodec

-- | Properties of the object.
pgbkiiecAddtional :: Lens' PartialGroupByKeyInstructionInputElementCodec (HashMap Text JSONValue)

-- | MapTask consists of an ordered set of instructions, each of which
--   describes one particular low-level operation for the worker to perform
--   in order to accomplish the MapTask's WorkItem. Each instruction must
--   appear in the list before any instructions which depends on its
--   output.
--   
--   <i>See:</i> <a>mapTask</a> smart constructor.
data MapTask

-- | Creates a value of <a>MapTask</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>mtInstructions</a></li>
--   <li><a>mtSystemName</a></li>
--   <li><a>mtStageName</a></li>
--   </ul>
mapTask :: MapTask

-- | The instructions in the MapTask.
mtInstructions :: Lens' MapTask [ParallelInstruction]

-- | System-defined name of this MapTask. Unique across the workflow.
mtSystemName :: Lens' MapTask (Maybe Text)

-- | System-defined name of the stage containing this MapTask. Unique
--   across the workflow.
mtStageName :: Lens' MapTask (Maybe Text)

-- | Describes mounted data disk.
--   
--   <i>See:</i> <a>mountedDataDisk</a> smart constructor.
data MountedDataDisk

-- | Creates a value of <a>MountedDataDisk</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>mddDataDisk</a></li>
--   </ul>
mountedDataDisk :: MountedDataDisk

-- | The name of the data disk. This name is local to the Google Cloud
--   Platform project and uniquely identifies the disk within that project,
--   for example "myproject-1014-104817-4c2-harness-0-disk-1".
mddDataDisk :: Lens' MountedDataDisk (Maybe Text)

-- | The codec to use to encode data written to the sink.
--   
--   <i>See:</i> <a>sinkCodec</a> smart constructor.
data SinkCodec

-- | Creates a value of <a>SinkCodec</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>scAddtional</a></li>
--   </ul>
sinkCodec :: HashMap Text JSONValue -> SinkCodec

-- | Properties of the object.
scAddtional :: Lens' SinkCodec (HashMap Text JSONValue)

-- | A representation of an integer mean metric contribution.
--   
--   <i>See:</i> <a>integerMean</a> smart constructor.
data IntegerMean

-- | Creates a value of <a>IntegerMean</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>imCount</a></li>
--   <li><a>imSum</a></li>
--   </ul>
integerMean :: IntegerMean

-- | The number of values being aggregated.
imCount :: Lens' IntegerMean (Maybe SplitInt64)

-- | The sum of all values being aggregated.
imSum :: Lens' IntegerMean (Maybe SplitInt64)
data WorkerHealthReportPodsItem

-- | Creates a value of <a>WorkerHealthReportPodsItem</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>whrpiAddtional</a></li>
--   </ul>
workerHealthReportPodsItem :: HashMap Text JSONValue -> WorkerHealthReportPodsItem

-- | Properties of the object.
whrpiAddtional :: Lens' WorkerHealthReportPodsItem (HashMap Text JSONValue)

-- | The user function to invoke.
--   
--   <i>See:</i> <a>parDoInstructionUserFn</a> smart constructor.
data ParDoInstructionUserFn

-- | Creates a value of <a>ParDoInstructionUserFn</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>pdiufAddtional</a></li>
--   </ul>
parDoInstructionUserFn :: HashMap Text JSONValue -> ParDoInstructionUserFn

-- | Properties of the object.
pdiufAddtional :: Lens' ParDoInstructionUserFn (HashMap Text JSONValue)

-- | The codec to use to encode data being written via this output.
--   
--   <i>See:</i> <a>instructionOutputCodec</a> smart constructor.
data InstructionOutputCodec

-- | Creates a value of <a>InstructionOutputCodec</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>iocAddtional</a></li>
--   </ul>
instructionOutputCodec :: HashMap Text JSONValue -> InstructionOutputCodec

-- | Properties of the object.
iocAddtional :: Lens' InstructionOutputCodec (HashMap Text JSONValue)

-- | Describes a stream of data, either as input to be processed or as
--   output of a streaming Dataflow job.
--   
--   <i>See:</i> <a>streamLocation</a> smart constructor.
data StreamLocation

-- | Creates a value of <a>StreamLocation</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>slStreamingStageLocation</a></li>
--   <li><a>slSideInputLocation</a></li>
--   <li><a>slCustomSourceLocation</a></li>
--   <li><a>slPubsubLocation</a></li>
--   </ul>
streamLocation :: StreamLocation

-- | The stream is part of another computation within the current streaming
--   Dataflow job.
slStreamingStageLocation :: Lens' StreamLocation (Maybe StreamingStageLocation)

-- | The stream is a streaming side input.
slSideInputLocation :: Lens' StreamLocation (Maybe StreamingSideInputLocation)

-- | The stream is a custom source.
slCustomSourceLocation :: Lens' StreamLocation (Maybe CustomSourceLocation)

-- | The stream is a pubsub stream.
slPubsubLocation :: Lens' StreamLocation (Maybe PubsubLocation)

-- | Extra arguments for this worker pool.
--   
--   <i>See:</i> <a>workerPoolPoolArgs</a> smart constructor.
data WorkerPoolPoolArgs

-- | Creates a value of <a>WorkerPoolPoolArgs</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>wppaAddtional</a></li>
--   </ul>
workerPoolPoolArgs :: HashMap Text JSONValue -> WorkerPoolPoolArgs

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

-- | The environment values to set at runtime.
--   
--   <i>See:</i> <a>runtimeEnvironment</a> smart constructor.
data RuntimeEnvironment

-- | Creates a value of <a>RuntimeEnvironment</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>reZone</a></li>
--   <li><a>reBypassTempDirValidation</a></li>
--   <li><a>reServiceAccountEmail</a></li>
--   <li><a>reMaxWorkers</a></li>
--   <li><a>reTempLocation</a></li>
--   </ul>
runtimeEnvironment :: RuntimeEnvironment

-- | The Compute Engine <a>availability zone</a> for launching worker
--   instances to run your pipeline.
reZone :: Lens' RuntimeEnvironment (Maybe Text)

-- | Whether to bypass the safety checks for the job's temporary directory.
--   Use with caution.
reBypassTempDirValidation :: Lens' RuntimeEnvironment (Maybe Bool)

-- | The email address of the service account to run the job as.
reServiceAccountEmail :: Lens' RuntimeEnvironment (Maybe Text)

-- | The maximum number of Google Compute Engine instances to be made
--   available to your pipeline during execution, from 1 to 1000.
reMaxWorkers :: Lens' RuntimeEnvironment (Maybe Int32)

-- | The Cloud Storage path to use for temporary files. Must be a valid
--   Cloud Storage URL, beginning with `gs://`.
reTempLocation :: Lens' RuntimeEnvironment (Maybe Text)

-- | CounterMetadata includes all static non-name non-value counter
--   attributes.
--   
--   <i>See:</i> <a>counterMetadata</a> smart constructor.
data CounterMetadata

-- | Creates a value of <a>CounterMetadata</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>cmKind</a></li>
--   <li><a>cmDescription</a></li>
--   <li><a>cmStandardUnits</a></li>
--   <li><a>cmOtherUnits</a></li>
--   </ul>
counterMetadata :: CounterMetadata

-- | Counter aggregation kind.
cmKind :: Lens' CounterMetadata (Maybe Text)

-- | Human-readable description of the counter semantics.
cmDescription :: Lens' CounterMetadata (Maybe Text)

-- | System defined Units, see above enum.
cmStandardUnits :: Lens' CounterMetadata (Maybe Text)

-- | A string referring to the unit type.
cmOtherUnits :: Lens' CounterMetadata (Maybe Text)

-- | The response to the worker messages.
--   
--   <i>See:</i> <a>sendWorkerMessagesResponse</a> smart constructor.
data SendWorkerMessagesResponse

-- | Creates a value of <a>SendWorkerMessagesResponse</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>swmrWorkerMessageResponses</a></li>
--   </ul>
sendWorkerMessagesResponse :: SendWorkerMessagesResponse

-- | The servers response to the worker messages.
swmrWorkerMessageResponses :: Lens' SendWorkerMessagesResponse [WorkerMessageResponse]

-- | Identifies the location of a streaming side input.
--   
--   <i>See:</i> <a>streamingSideInputLocation</a> smart constructor.
data StreamingSideInputLocation

-- | Creates a value of <a>StreamingSideInputLocation</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>ssilTag</a></li>
--   <li><a>ssilStateFamily</a></li>
--   </ul>
streamingSideInputLocation :: StreamingSideInputLocation

-- | Identifies the particular side input within the streaming Dataflow
--   job.
ssilTag :: Lens' StreamingSideInputLocation (Maybe Text)

-- | Identifies the state family where this side input is stored.
ssilStateFamily :: Lens' StreamingSideInputLocation (Maybe Text)

-- | Request to get updated debug configuration for component.
--   
--   <i>See:</i> <a>getDebugConfigRequest</a> smart constructor.
data GetDebugConfigRequest

-- | Creates a value of <a>GetDebugConfigRequest</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>gdcrComponentId</a></li>
--   <li><a>gdcrWorkerId</a></li>
--   </ul>
getDebugConfigRequest :: GetDebugConfigRequest

-- | The internal component id for which debug configuration is requested.
gdcrComponentId :: Lens' GetDebugConfigRequest (Maybe Text)

-- | The worker id, i.e., VM hostname.
gdcrWorkerId :: Lens' GetDebugConfigRequest (Maybe Text)

-- | A single message which encapsulates structured name and metadata for a
--   given counter.
--   
--   <i>See:</i> <a>counterStructuredNameAndMetadata</a> smart constructor.
data CounterStructuredNameAndMetadata

-- | Creates a value of <a>CounterStructuredNameAndMetadata</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>csnamName</a></li>
--   <li><a>csnamMetadata</a></li>
--   </ul>
counterStructuredNameAndMetadata :: CounterStructuredNameAndMetadata

-- | Structured name of the counter.
csnamName :: Lens' CounterStructuredNameAndMetadata (Maybe CounterStructuredName)

-- | Metadata associated with a counter
csnamMetadata :: Lens' CounterStructuredNameAndMetadata (Maybe CounterMetadata)

-- | A task which describes what action should be performed for the
--   specified streaming computation ranges.
--   
--   <i>See:</i> <a>streamingComputationTask</a> smart constructor.
data StreamingComputationTask

-- | Creates a value of <a>StreamingComputationTask</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>sctTaskType</a></li>
--   <li><a>sctDataDisks</a></li>
--   <li><a>sctComputationRanges</a></li>
--   </ul>
streamingComputationTask :: StreamingComputationTask

-- | A type of streaming computation task.
sctTaskType :: Lens' StreamingComputationTask (Maybe Text)

-- | Describes the set of data disks this task should apply to.
sctDataDisks :: Lens' StreamingComputationTask [MountedDataDisk]

-- | Contains ranges of a streaming computation this task should apply to.
sctComputationRanges :: Lens' StreamingComputationTask [StreamingComputationRanges]

-- | A particular message pertaining to a Dataflow job.
--   
--   <i>See:</i> <a>jobMessage</a> smart constructor.
data JobMessage

-- | Creates a value of <a>JobMessage</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>jmTime</a></li>
--   <li><a>jmMessageText</a></li>
--   <li><a>jmMessageImportance</a></li>
--   <li><a>jmId</a></li>
--   </ul>
jobMessage :: JobMessage

-- | The timestamp of the message.
jmTime :: Lens' JobMessage (Maybe Text)

-- | The text of the message.
jmMessageText :: Lens' JobMessage (Maybe Text)

-- | Importance level of the message.
jmMessageImportance :: Lens' JobMessage (Maybe Text)

-- | Identifies the message. This is automatically generated by the
--   service; the caller should treat it as an opaque string.
jmId :: Lens' JobMessage (Maybe Text)

-- | Information about an output of a SeqMapTask.
--   
--   <i>See:</i> <a>seqMapTaskOutputInfo</a> smart constructor.
data SeqMapTaskOutputInfo

-- | Creates a value of <a>SeqMapTaskOutputInfo</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>smtoiSink</a></li>
--   <li><a>smtoiTag</a></li>
--   </ul>
seqMapTaskOutputInfo :: SeqMapTaskOutputInfo

-- | The sink to write the output value to.
smtoiSink :: Lens' SeqMapTaskOutputInfo (Maybe Sink)

-- | The id of the TupleTag the user code will tag the output value by.
smtoiTag :: Lens' SeqMapTaskOutputInfo (Maybe Text)

-- | A request to compute the SourceMetadata of a Source.
--   
--   <i>See:</i> <a>sourceGetMetadataRequest</a> smart constructor.
data SourceGetMetadataRequest

-- | Creates a value of <a>SourceGetMetadataRequest</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>sgmrSource</a></li>
--   </ul>
sourceGetMetadataRequest :: SourceGetMetadataRequest

-- | Specification of the source whose metadata should be computed.
sgmrSource :: Lens' SourceGetMetadataRequest (Maybe Source)

-- | The user function to invoke.
--   
--   <i>See:</i> <a>seqMapTaskUserFn</a> smart constructor.
data SeqMapTaskUserFn

-- | Creates a value of <a>SeqMapTaskUserFn</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>smtufAddtional</a></li>
--   </ul>
seqMapTaskUserFn :: HashMap Text JSONValue -> SeqMapTaskUserFn

-- | Properties of the object.
smtufAddtional :: Lens' SeqMapTaskUserFn (HashMap Text JSONValue)

-- | The value combining function to invoke.
--   
--   <i>See:</i> <a>partialGroupByKeyInstructionValueCombiningFn</a> smart
--   constructor.
data PartialGroupByKeyInstructionValueCombiningFn

-- | Creates a value of <a>PartialGroupByKeyInstructionValueCombiningFn</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>pgbkivcfAddtional</a></li>
--   </ul>
partialGroupByKeyInstructionValueCombiningFn :: HashMap Text JSONValue -> PartialGroupByKeyInstructionValueCombiningFn

-- | Properties of the object.
pgbkivcfAddtional :: Lens' PartialGroupByKeyInstructionValueCombiningFn (HashMap Text JSONValue)

-- | Defines a job to be run by the Cloud Dataflow service.
--   
--   <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>jRequestedState</a></li>
--   <li><a>jLocation</a></li>
--   <li><a>jEnvironment</a></li>
--   <li><a>jClientRequestId</a></li>
--   <li><a>jCurrentState</a></li>
--   <li><a>jReplacedByJobId</a></li>
--   <li><a>jTempFiles</a></li>
--   <li><a>jSteps</a></li>
--   <li><a>jExecutionInfo</a></li>
--   <li><a>jName</a></li>
--   <li><a>jTransformNameMApping</a></li>
--   <li><a>jId</a></li>
--   <li><a>jLabels</a></li>
--   <li><a>jProjectId</a></li>
--   <li><a>jType</a></li>
--   <li><a>jCurrentStateTime</a></li>
--   <li><a>jReplaceJobId</a></li>
--   <li><a>jCreateTime</a></li>
--   </ul>
job :: Job

-- | The job's requested state. `UpdateJob` may be used to switch between
--   the `JOB_STATE_STOPPED` and `JOB_STATE_RUNNING` states, by setting
--   requested_state. `UpdateJob` may also be used to directly set a job's
--   requested state to `JOB_STATE_CANCELLED` or `JOB_STATE_DONE`,
--   irrevocably terminating the job if it has not already reached a
--   terminal state.
jRequestedState :: Lens' Job (Maybe Text)

-- | The location that contains this job.
jLocation :: Lens' Job (Maybe Text)

-- | The environment for the job.
jEnvironment :: Lens' Job (Maybe Environment)

-- | The client's unique identifier of the job, re-used across retried
--   attempts. If this field is set, the service will ensure its
--   uniqueness. The request to create a job will fail if the service has
--   knowledge of a previously submitted job with the same client's ID and
--   job name. The caller may use this field to ensure idempotence of job
--   creation across retried attempts to create a job. By default, the
--   field is empty and, in that case, the service ignores it.
jClientRequestId :: Lens' Job (Maybe Text)

-- | The current state of the job. Jobs are created in the
--   `JOB_STATE_STOPPED` state unless otherwise specified. A job in the
--   `JOB_STATE_RUNNING` state may asynchronously enter a terminal state.
--   After a job has reached a terminal state, no further state updates may
--   be made. This field may be mutated by the Cloud Dataflow service;
--   callers cannot mutate it.
jCurrentState :: Lens' Job (Maybe Text)

-- | If another job is an update of this job (and thus, this job is in
--   `JOB_STATE_UPDATED`), this field contains the ID of that job.
jReplacedByJobId :: Lens' Job (Maybe Text)

-- | A set of files the system should be aware of that are used for
--   temporary storage. These temporary files will be removed on job
--   completion. No duplicates are allowed. No file patterns are supported.
--   The supported files are: Google Cloud Storage:
--   storage.googleapis.com/{bucket}/{object}
--   bucket.storage.googleapis.com/{object}
jTempFiles :: Lens' Job [Text]

-- | The top-level steps that constitute the entire job.
jSteps :: Lens' Job [Step]

-- | Information about how the Cloud Dataflow service will run the job.
jExecutionInfo :: Lens' Job (Maybe JobExecutionInfo)

-- | The user-specified Cloud Dataflow job name. Only one Job with a given
--   name may exist in a project at any given time. If a caller attempts to
--   create a Job with the same name as an already-existing Job, the
--   attempt returns the existing Job. The name must match the regular
--   expression `[a-z]([-a-z0-9]{0,38}[a-z0-9])?`
jName :: Lens' Job (Maybe Text)

-- | The map of transform name prefixes of the job to be replaced to the
--   corresponding name prefixes of the new job.
jTransformNameMApping :: Lens' Job (Maybe JobTransformNameMApping)

-- | The unique ID of this job. This field is set by the Cloud Dataflow
--   service when the Job is created, and is immutable for the life of the
--   job.
jId :: Lens' Job (Maybe Text)

-- | User-defined labels for this job. The labels map can contain no more
--   than 64 entries. Entries of the labels map are UTF8 strings that
--   comply with the following restrictions: * Keys must conform to regexp:
--   \p{Ll}\p{Lo}{0,62} * Values must conform to regexp:
--   [\p{Ll}\p{Lo}\p{N}_-]{0,63} * Both keys and values are additionally
--   constrained to be &lt;= 128 bytes in size.
jLabels :: Lens' Job (Maybe JobLabels)

-- | The ID of the Cloud Platform project that the job belongs to.
jProjectId :: Lens' Job (Maybe Text)

-- | The type of Cloud Dataflow job.
jType :: Lens' Job (Maybe Text)

-- | The timestamp associated with the current state.
jCurrentStateTime :: Lens' Job (Maybe Text)

-- | If this job is an update of an existing job, this field is the job ID
--   of the job it replaced. When sending a `CreateJobRequest`, you can
--   update a job by specifying it here. The job named here is stopped, and
--   its intermediate state is transferred to this job.
jReplaceJobId :: Lens' Job (Maybe Text)

-- | The timestamp when the job was initially created. Immutable and set by
--   the Cloud Dataflow service.
jCreateTime :: Lens' Job (Maybe Text)

-- | An instruction that reads records. Takes no inputs, produces one
--   output.
--   
--   <i>See:</i> <a>readInstruction</a> smart constructor.
data ReadInstruction

-- | Creates a value of <a>ReadInstruction</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>riSource</a></li>
--   </ul>
readInstruction :: ReadInstruction

-- | The source to read from.
riSource :: Lens' ReadInstruction (Maybe Source)

-- | A progress measurement of a WorkItem by a worker.
--   
--   <i>See:</i> <a>approximateReportedProgress</a> smart constructor.
data ApproximateReportedProgress

-- | Creates a value of <a>ApproximateReportedProgress</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>arpFractionConsumed</a></li>
--   <li><a>arpConsumedParallelism</a></li>
--   <li><a>arpRemainingParallelism</a></li>
--   <li><a>arpPosition</a></li>
--   </ul>
approximateReportedProgress :: ApproximateReportedProgress

-- | Completion as fraction of the input consumed, from 0.0 (beginning,
--   nothing consumed), to 1.0 (end of the input, entire input consumed).
arpFractionConsumed :: Lens' ApproximateReportedProgress (Maybe Double)

-- | Total amount of parallelism in the portion of input of this task that
--   has already been consumed and is no longer active. In the first two
--   examples above (see remaining_parallelism), the value should be 29 or
--   2 respectively. The sum of remaining_parallelism and
--   consumed_parallelism should equal the total amount of parallelism in
--   this work item. If specified, must be finite.
arpConsumedParallelism :: Lens' ApproximateReportedProgress (Maybe ReportedParallelism)

-- | Total amount of parallelism in the input of this task that remains,
--   (i.e. can be delegated to this task and any new tasks via dynamic
--   splitting). Always at least 1 for non-finished work items and 0 for
--   finished. "Amount of parallelism" refers to how many non-empty parts
--   of the input can be read in parallel. This does not necessarily equal
--   number of records. An input that can be read in parallel down to the
--   individual records is called "perfectly splittable". An example of
--   non-perfectly parallelizable input is a block-compressed file format
--   where a block of records has to be read as a whole, but different
--   blocks can be read in parallel. Examples: * If we are processing
--   record #30 (starting at 1) out of 50 in a perfectly splittable
--   50-record input, this value should be 21 (20 remaining + 1 current). *
--   If we are reading through block 3 in a block-compressed file
--   consisting of 5 blocks, this value should be 3 (since blocks 4 and 5
--   can be processed in parallel by new tasks via dynamic splitting and
--   the current task remains processing block 3). * If we are reading
--   through the last block in a block-compressed file, or reading or
--   processing the last record in a perfectly splittable input, this value
--   should be 1, because apart from the current task, no additional
--   remainder can be split off.
arpRemainingParallelism :: Lens' ApproximateReportedProgress (Maybe ReportedParallelism)

-- | A Position within the work to represent a progress.
arpPosition :: Lens' ApproximateReportedProgress (Maybe Position)

-- | The sink to write to, plus its parameters.
--   
--   <i>See:</i> <a>sinkSpec</a> smart constructor.
data SinkSpec

-- | Creates a value of <a>SinkSpec</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>sAddtional</a></li>
--   </ul>
sinkSpec :: HashMap Text JSONValue -> SinkSpec

-- | Properties of the object.
sAddtional :: Lens' SinkSpec (HashMap Text JSONValue)

-- | Describes one particular pool of Cloud Dataflow workers to be
--   instantiated by the Cloud Dataflow service in order to perform the
--   computations required by a job. Note that a workflow job may use
--   multiple pools, in order to match the various computational
--   requirements of the various stages of the job.
--   
--   <i>See:</i> <a>workerPool</a> smart constructor.
data WorkerPool

-- | Creates a value of <a>WorkerPool</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>wpAutoscalingSettings</a></li>
--   <li><a>wpNumThreadsPerWorker</a></li>
--   <li><a>wpDiskSizeGb</a></li>
--   <li><a>wpKind</a></li>
--   <li><a>wpTaskrunnerSettings</a></li>
--   <li><a>wpNumWorkers</a></li>
--   <li><a>wpNetwork</a></li>
--   <li><a>wpZone</a></li>
--   <li><a>wpIPConfiguration</a></li>
--   <li><a>wpPackages</a></li>
--   <li><a>wpOnHostMaintenance</a></li>
--   <li><a>wpDiskSourceImage</a></li>
--   <li><a>wpSubnetwork</a></li>
--   <li><a>wpMachineType</a></li>
--   <li><a>wpMetadata</a></li>
--   <li><a>wpDiskType</a></li>
--   <li><a>wpTeardownPolicy</a></li>
--   <li><a>wpDefaultPackageSet</a></li>
--   <li><a>wpPoolArgs</a></li>
--   <li><a>wpWorkerHarnessContainerImage</a></li>
--   <li><a>wpDataDisks</a></li>
--   </ul>
workerPool :: WorkerPool

-- | Settings for autoscaling of this WorkerPool.
wpAutoscalingSettings :: Lens' WorkerPool (Maybe AutoscalingSettings)

-- | The number of threads per worker harness. If empty or unspecified, the
--   service will choose a number of threads (according to the number of
--   cores on the selected machine type for batch, or 1 by convention for
--   streaming).
wpNumThreadsPerWorker :: Lens' WorkerPool (Maybe Int32)

-- | Size of root disk for VMs, in GB. If zero or unspecified, the service
--   will attempt to choose a reasonable default.
wpDiskSizeGb :: Lens' WorkerPool (Maybe Int32)

-- | The kind of the worker pool; currently only `harness` and `shuffle`
--   are supported.
wpKind :: Lens' WorkerPool (Maybe Text)

-- | Settings passed through to Google Compute Engine workers when using
--   the standard Dataflow task runner. Users should ignore this field.
wpTaskrunnerSettings :: Lens' WorkerPool (Maybe TaskRunnerSettings)

-- | Number of Google Compute Engine workers in this pool needed to execute
--   the job. If zero or unspecified, the service will attempt to choose a
--   reasonable default.
wpNumWorkers :: Lens' WorkerPool (Maybe Int32)

-- | Network to which VMs will be assigned. If empty or unspecified, the
--   service will use the network "default".
wpNetwork :: Lens' WorkerPool (Maybe Text)

-- | Zone to run the worker pools in. If empty or unspecified, the service
--   will attempt to choose a reasonable default.
wpZone :: Lens' WorkerPool (Maybe Text)

-- | Configuration for VM IPs.
wpIPConfiguration :: Lens' WorkerPool (Maybe Text)

-- | Packages to be installed on workers.
wpPackages :: Lens' WorkerPool [Package]

-- | The action to take on host maintenance, as defined by the Google
--   Compute Engine API.
wpOnHostMaintenance :: Lens' WorkerPool (Maybe Text)

-- | Fully qualified source image for disks.
wpDiskSourceImage :: Lens' WorkerPool (Maybe Text)

-- | Subnetwork to which VMs will be assigned, if desired. Expected to be
--   of the form "regions/REGION/subnetworks/SUBNETWORK".
wpSubnetwork :: Lens' WorkerPool (Maybe Text)

-- | Machine type (e.g. "n1-standard-1"). If empty or unspecified, the
--   service will attempt to choose a reasonable default.
wpMachineType :: Lens' WorkerPool (Maybe Text)

-- | Metadata to set on the Google Compute Engine VMs.
wpMetadata :: Lens' WorkerPool (Maybe WorkerPoolMetadata)

-- | Type of root disk for VMs. If empty or unspecified, the service will
--   attempt to choose a reasonable default.
wpDiskType :: Lens' WorkerPool (Maybe Text)

-- | Sets the policy for determining when to turndown worker pool. Allowed
--   values are: `TEARDOWN_ALWAYS`, `TEARDOWN_ON_SUCCESS`, and
--   `TEARDOWN_NEVER`. `TEARDOWN_ALWAYS` means workers are always torn down
--   regardless of whether the job succeeds. `TEARDOWN_ON_SUCCESS` means
--   workers are torn down if the job succeeds. `TEARDOWN_NEVER` means the
--   workers are never torn down. If the workers are not torn down by the
--   service, they will continue to run and use Google Compute Engine VM
--   resources in the user's project until they are explicitly terminated
--   by the user. Because of this, Google recommends using the
--   `TEARDOWN_ALWAYS` policy except for small, manually supervised test
--   jobs. If unknown or unspecified, the service will attempt to choose a
--   reasonable default.
wpTeardownPolicy :: Lens' WorkerPool (Maybe Text)

-- | The default package set to install. This allows the service to select
--   a default set of packages which are useful to worker harnesses written
--   in a particular language.
wpDefaultPackageSet :: Lens' WorkerPool (Maybe Text)

-- | Extra arguments for this worker pool.
wpPoolArgs :: Lens' WorkerPool (Maybe WorkerPoolPoolArgs)

-- | Required. Docker container image that executes the Cloud Dataflow
--   worker harness, residing in Google Container Registry.
wpWorkerHarnessContainerImage :: Lens' WorkerPool (Maybe Text)

-- | Data disks that are used by a VM in this workflow.
wpDataDisks :: Lens' WorkerPool [Disk]

-- | Defines a particular step within a Cloud Dataflow job. A job consists
--   of multiple steps, each of which performs some specific operation as
--   part of the overall job. Data is typically passed from one step to
--   another as part of the job. Here's an example of a sequence of steps
--   which together implement a Map-Reduce job: * Read a collection of data
--   from some source, parsing the collection's elements. * Validate the
--   elements. * Apply a user-defined function to map each element to some
--   value and extract an element-specific key value. * Group elements with
--   the same key into a single element with that key, transforming a
--   multiply-keyed collection into a uniquely-keyed collection. * Write
--   the elements out to some data sink. Note that the Cloud Dataflow
--   service may be used to run many different types of jobs, not just
--   Map-Reduce.
--   
--   <i>See:</i> <a>step</a> smart constructor.
data Step

-- | Creates a value of <a>Step</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>sKind</a></li>
--   <li><a>sName</a></li>
--   <li><a>sProperties</a></li>
--   </ul>
step :: Step

-- | The kind of step in the Cloud Dataflow job.
sKind :: Lens' Step (Maybe Text)

-- | The name that identifies the step. This must be unique for each step
--   with respect to all other steps in the Cloud Dataflow job.
sName :: Lens' Step (Maybe Text)

-- | Named properties associated with the step. Each kind of predefined
--   step has its own required set of properties.
sProperties :: Lens' Step (Maybe StepProperties)

-- | The packages that must be installed in order for a worker to run the
--   steps of the Cloud Dataflow job that will be assigned to its worker
--   pool. This is the mechanism by which the Cloud Dataflow SDK causes
--   code to be loaded onto the workers. For example, the Cloud Dataflow
--   Java SDK might use this to install jars containing the user's code and
--   all of the various dependencies (libraries, data files, etc.) required
--   in order for that code to run.
--   
--   <i>See:</i> <a>package</a> smart constructor.
data Package

-- | Creates a value of <a>Package</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>pLocation</a></li>
--   <li><a>pName</a></li>
--   </ul>
package :: Package

-- | The resource to read the package from. The supported resource type is:
--   Google Cloud Storage: storage.googleapis.com/{bucket}
--   bucket.storage.googleapis.com/
pLocation :: Lens' Package (Maybe Text)

-- | The name of the package.
pName :: Lens' Package (Maybe Text)

-- | Parameters contains specific information about the code. This is a
--   struct to allow parameters of different types. Examples: 1. For a
--   "HARNESS_STARTED" message parameters might provide the name of the
--   worker and additional data like timing information. 2. For a
--   "GCS_DOWNLOAD_ERROR" parameters might contain fields listing the GCS
--   objects being downloaded and fields containing errors. In general
--   complex data structures should be avoided. If a worker needs to send a
--   specific and complicated data structure then please consider defining
--   a new proto and adding it to the data oneof in WorkerMessageResponse.
--   Conventions: Parameters should only be used for information that isn't
--   typically passed as a label. hostname and other worker identifiers
--   should almost always be passed as labels since they will be included
--   on most messages.
--   
--   <i>See:</i> <a>workerMessageCodeParameters</a> smart constructor.
data WorkerMessageCodeParameters

-- | Creates a value of <a>WorkerMessageCodeParameters</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>wmcpAddtional</a></li>
--   </ul>
workerMessageCodeParameters :: HashMap Text JSONValue -> WorkerMessageCodeParameters

-- | Properties of the object.
wmcpAddtional :: Lens' WorkerMessageCodeParameters (HashMap Text JSONValue)

-- | When a task splits using WorkItemStatus.dynamic_source_split, this
--   message describes the two parts of the split relative to the
--   description of the current task's input.
--   
--   <i>See:</i> <a>dynamicSourceSplit</a> smart constructor.
data DynamicSourceSplit

-- | Creates a value of <a>DynamicSourceSplit</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>dssResidual</a></li>
--   <li><a>dssPrimary</a></li>
--   </ul>
dynamicSourceSplit :: DynamicSourceSplit

-- | Residual part (returned to the pool of work). Specified relative to
--   the previously-current source.
dssResidual :: Lens' DynamicSourceSplit (Maybe DerivedSource)

-- | Primary part (continued to be processed by worker). Specified relative
--   to the previously-current source. Becomes current.
dssPrimary :: Lens' DynamicSourceSplit (Maybe DerivedSource)

-- | Response from a request to report the status of WorkItems.
--   
--   <i>See:</i> <a>reportWorkItemStatusResponse</a> smart constructor.
data ReportWorkItemStatusResponse

-- | Creates a value of <a>ReportWorkItemStatusResponse</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>rwisrWorkItemServiceStates</a></li>
--   </ul>
reportWorkItemStatusResponse :: ReportWorkItemStatusResponse

-- | A set of messages indicating the service-side state for each WorkItem
--   whose status was reported, in the same order as the WorkItemStatus
--   messages in the ReportWorkItemStatusRequest which resulting in this
--   response.
rwisrWorkItemServiceStates :: Lens' ReportWorkItemStatusResponse [WorkItemServiceState]

-- | DEPRECATED in favor of DynamicSourceSplit.
--   
--   <i>See:</i> <a>sourceFork</a> smart constructor.
data SourceFork

-- | Creates a value of <a>SourceFork</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>sfResidual</a></li>
--   <li><a>sfPrimarySource</a></li>
--   <li><a>sfPrimary</a></li>
--   <li><a>sfResidualSource</a></li>
--   </ul>
sourceFork :: SourceFork

-- | DEPRECATED
sfResidual :: Lens' SourceFork (Maybe SourceSplitShard)

-- | DEPRECATED
sfPrimarySource :: Lens' SourceFork (Maybe DerivedSource)

-- | DEPRECATED
sfPrimary :: Lens' SourceFork (Maybe SourceSplitShard)

-- | DEPRECATED
sfResidualSource :: Lens' SourceFork (Maybe DerivedSource)

-- | Service-side response to WorkerMessage reporting resource utilization.
--   
--   <i>See:</i> <a>resourceUtilizationReportResponse</a> smart
--   constructor.
data ResourceUtilizationReportResponse

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

-- | Describes full or partial data disk assignment information of the
--   computation ranges.
--   
--   <i>See:</i> <a>streamingComputationRanges</a> smart constructor.
data StreamingComputationRanges

-- | Creates a value of <a>StreamingComputationRanges</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>scrRangeAssignments</a></li>
--   <li><a>scrComputationId</a></li>
--   </ul>
streamingComputationRanges :: StreamingComputationRanges

-- | Data disk assignments for ranges from this computation.
scrRangeAssignments :: Lens' StreamingComputationRanges [KeyRangeDataDiskAssignment]

-- | The ID of the computation.
scrComputationId :: Lens' StreamingComputationRanges (Maybe Text)

-- | Response to a request to list Cloud Dataflow jobs. This may be a
--   partial response, depending on the page size in the ListJobsRequest.
--   
--   <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>ljrFailedLocation</a></li>
--   <li><a>ljrJobs</a></li>
--   </ul>
listJobsResponse :: ListJobsResponse

-- | Set if there may be more results than fit in this response.
ljrNextPageToken :: Lens' ListJobsResponse (Maybe Text)

-- | Zero or more messages describing locations that failed to respond.
ljrFailedLocation :: Lens' ListJobsResponse [FailedLocation]

-- | A subset of the requested job information.
ljrJobs :: Lens' ListJobsResponse [Job]

-- | A source that records can be read and decoded from.
--   
--   <i>See:</i> <a>source</a> smart constructor.
data Source

-- | Creates a value of <a>Source</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>souDoesNotNeedSplitting</a></li>
--   <li><a>souBaseSpecs</a></li>
--   <li><a>souCodec</a></li>
--   <li><a>souSpec</a></li>
--   <li><a>souMetadata</a></li>
--   </ul>
source :: Source

-- | Setting this value to true hints to the framework that the source
--   doesn't need splitting, and using SourceSplitRequest on it would yield
--   SOURCE_SPLIT_OUTCOME_USE_CURRENT. E.g. a file splitter may set this to
--   true when splitting a single file into a set of byte ranges of
--   appropriate size, and set this to false when splitting a filepattern
--   into individual files. However, for efficiency, a file splitter may
--   decide to produce file subranges directly from the filepattern to
--   avoid a splitting round-trip. See SourceSplitRequest for an overview
--   of the splitting process. This field is meaningful only in the Source
--   objects populated by the user (e.g. when filling in a DerivedSource).
--   Source objects supplied by the framework to the user don't have this
--   field populated.
souDoesNotNeedSplitting :: Lens' Source (Maybe Bool)

-- | While splitting, sources may specify the produced bundles as
--   differences against another source, in order to save backend-side
--   memory and allow bigger jobs. For details, see SourceSplitRequest. To
--   support this use case, the full set of parameters of the source is
--   logically obtained by taking the latest explicitly specified value of
--   each parameter in the order: base_specs (later items win), spec
--   (overrides anything in base_specs).
souBaseSpecs :: Lens' Source [SourceBaseSpecsItem]

-- | The codec to use to decode data read from the source.
souCodec :: Lens' Source (Maybe SourceCodec)

-- | The source to read from, plus its parameters.
souSpec :: Lens' Source (Maybe SourceSpec)

-- | Optionally, metadata for this source can be supplied right away,
--   avoiding a SourceGetMetadataOperation roundtrip (see
--   SourceOperationRequest). This field is meaningful only in the Source
--   objects populated by the user (e.g. when filling in a DerivedSource).
--   Source objects supplied by the framework to the user don't have this
--   field populated.
souMetadata :: Lens' Source (Maybe SourceMetadata)

-- | Obsolete in favor of ApproximateReportedProgress and
--   ApproximateSplitRequest.
--   
--   <i>See:</i> <a>approximateProgress</a> smart constructor.
data ApproximateProgress

-- | Creates a value of <a>ApproximateProgress</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>apRemainingTime</a></li>
--   <li><a>apPercentComplete</a></li>
--   <li><a>apPosition</a></li>
--   </ul>
approximateProgress :: ApproximateProgress

-- | Obsolete.
apRemainingTime :: Lens' ApproximateProgress (Maybe Text)

-- | Obsolete.
apPercentComplete :: Lens' ApproximateProgress (Maybe Double)

-- | Obsolete.
apPosition :: Lens' ApproximateProgress (Maybe Position)

-- | WorkerMessage provides information to the backend about a worker.
--   
--   <i>See:</i> <a>workerMessage</a> smart constructor.
data WorkerMessage

-- | Creates a value of <a>WorkerMessage</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>wmWorkerHealthReport</a></li>
--   <li><a>wmTime</a></li>
--   <li><a>wmWorkerMessageCode</a></li>
--   <li><a>wmWorkerMetrics</a></li>
--   <li><a>wmLabels</a></li>
--   </ul>
workerMessage :: WorkerMessage

-- | The health of a worker.
wmWorkerHealthReport :: Lens' WorkerMessage (Maybe WorkerHealthReport)

-- | The timestamp of the worker_message.
wmTime :: Lens' WorkerMessage (Maybe Text)

-- | A worker message code.
wmWorkerMessageCode :: Lens' WorkerMessage (Maybe WorkerMessageCode)

-- | Resource metrics reported by workers.
wmWorkerMetrics :: Lens' WorkerMessage (Maybe ResourceUtilizationReport)

-- | Labels are used to group WorkerMessages. For example, a worker_message
--   about a particular container might have the labels: { "JOB_ID":
--   "2015-04-22", "WORKER_ID": "wordcount-vm-2015…" "CONTAINER_TYPE":
--   "worker", "CONTAINER_ID": "ac1234def"} Label tags typically correspond
--   to Label enum values. However, for ease of development other strings
--   can be used as tags. LABEL_UNSPECIFIED should not be used here.
wmLabels :: Lens' WorkerMessage (Maybe WorkerMessageLabels)

-- | Location information for a specific key-range of a sharded
--   computation. Currently we only support UTF-8 character splits to
--   simplify encoding into JSON.
--   
--   <i>See:</i> <a>keyRangeLocation</a> smart constructor.
data KeyRangeLocation

-- | Creates a value of <a>KeyRangeLocation</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>krlPersistentDirectory</a></li>
--   <li><a>krlDataDisk</a></li>
--   <li><a>krlStart</a></li>
--   <li><a>krlDeliveryEndpoint</a></li>
--   <li><a>krlEnd</a></li>
--   </ul>
keyRangeLocation :: KeyRangeLocation

-- | The location of the persistent state for this range, as a persistent
--   directory in the worker local filesystem.
krlPersistentDirectory :: Lens' KeyRangeLocation (Maybe Text)

-- | The name of the data disk where data for this range is stored. This
--   name is local to the Google Cloud Platform project and uniquely
--   identifies the disk within that project, for example
--   "myproject-1014-104817-4c2-harness-0-disk-1".
krlDataDisk :: Lens' KeyRangeLocation (Maybe Text)

-- | The start (inclusive) of the key range.
krlStart :: Lens' KeyRangeLocation (Maybe Text)

-- | The physical location of this range assignment to be used for
--   streaming computation cross-worker message delivery.
krlDeliveryEndpoint :: Lens' KeyRangeLocation (Maybe Text)

-- | The end (exclusive) of the key range.
krlEnd :: Lens' KeyRangeLocation (Maybe Text)

-- | Information about an output of a multi-output DoFn.
--   
--   <i>See:</i> <a>multiOutputInfo</a> smart constructor.
data MultiOutputInfo

-- | Creates a value of <a>MultiOutputInfo</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>moiTag</a></li>
--   </ul>
multiOutputInfo :: MultiOutputInfo

-- | The id of the tag the user code will emit to this output by; this
--   should correspond to the tag of some SideInputInfo.
moiTag :: Lens' MultiOutputInfo (Maybe Text)

-- | An instruction that does a partial group-by-key. One input and one
--   output.
--   
--   <i>See:</i> <a>partialGroupByKeyInstruction</a> smart constructor.
data PartialGroupByKeyInstruction

-- | Creates a value of <a>PartialGroupByKeyInstruction</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>pgbkiValueCombiningFn</a></li>
--   <li><a>pgbkiSideInputs</a></li>
--   <li><a>pgbkiInput</a></li>
--   <li><a>pgbkiOriginalCombineValuesStepName</a></li>
--   <li><a>pgbkiInputElementCodec</a></li>
--   <li><a>pgbkiOriginalCombineValuesInputStoreName</a></li>
--   </ul>
partialGroupByKeyInstruction :: PartialGroupByKeyInstruction

-- | The value combining function to invoke.
pgbkiValueCombiningFn :: Lens' PartialGroupByKeyInstruction (Maybe PartialGroupByKeyInstructionValueCombiningFn)

-- | Zero or more side inputs.
pgbkiSideInputs :: Lens' PartialGroupByKeyInstruction [SideInputInfo]

-- | Describes the input to the partial group-by-key instruction.
pgbkiInput :: Lens' PartialGroupByKeyInstruction (Maybe InstructionInput)

-- | If this instruction includes a combining function, this is the name of
--   the CombineValues instruction lifted into this instruction.
pgbkiOriginalCombineValuesStepName :: Lens' PartialGroupByKeyInstruction (Maybe Text)

-- | The codec to use for interpreting an element in the input PTable.
pgbkiInputElementCodec :: Lens' PartialGroupByKeyInstruction (Maybe PartialGroupByKeyInstructionInputElementCodec)

-- | If this instruction includes a combining function this is the name of
--   the intermediate store between the GBK and the CombineValues.
pgbkiOriginalCombineValuesInputStoreName :: Lens' PartialGroupByKeyInstruction (Maybe Text)

-- | An instruction that does a ParDo operation. Takes one main input and
--   zero or more side inputs, and produces zero or more outputs. Runs user
--   code.
--   
--   <i>See:</i> <a>parDoInstruction</a> smart constructor.
data ParDoInstruction

-- | Creates a value of <a>ParDoInstruction</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>pdiNumOutputs</a></li>
--   <li><a>pdiMultiOutputInfos</a></li>
--   <li><a>pdiSideInputs</a></li>
--   <li><a>pdiInput</a></li>
--   <li><a>pdiUserFn</a></li>
--   </ul>
parDoInstruction :: ParDoInstruction

-- | The number of outputs.
pdiNumOutputs :: Lens' ParDoInstruction (Maybe Int32)

-- | Information about each of the outputs, if user_fn is a MultiDoFn.
pdiMultiOutputInfos :: Lens' ParDoInstruction [MultiOutputInfo]

-- | Zero or more side inputs.
pdiSideInputs :: Lens' ParDoInstruction [SideInputInfo]

-- | The input.
pdiInput :: Lens' ParDoInstruction (Maybe InstructionInput)

-- | The user function to invoke.
pdiUserFn :: Lens' ParDoInstruction (Maybe ParDoInstructionUserFn)

-- | Identifies the location of a custom souce.
--   
--   <i>See:</i> <a>customSourceLocation</a> smart constructor.
data CustomSourceLocation

-- | Creates a value of <a>CustomSourceLocation</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>cslStateful</a></li>
--   </ul>
customSourceLocation :: CustomSourceLocation

-- | Whether this source is stateful.
cslStateful :: Lens' CustomSourceLocation (Maybe Bool)

-- | A metric value representing a distribution.
--   
--   <i>See:</i> <a>distributionUpdate</a> smart constructor.
data DistributionUpdate

-- | Creates a value of <a>DistributionUpdate</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>duMax</a></li>
--   <li><a>duCount</a></li>
--   <li><a>duMin</a></li>
--   <li><a>duSumOfSquares</a></li>
--   <li><a>duSum</a></li>
--   </ul>
distributionUpdate :: DistributionUpdate

-- | The maximum value present in the distribution.
duMax :: Lens' DistributionUpdate (Maybe SplitInt64)

-- | The count of the number of elements present in the distribution.
duCount :: Lens' DistributionUpdate (Maybe SplitInt64)

-- | The minimum value present in the distribution.
duMin :: Lens' DistributionUpdate (Maybe SplitInt64)

-- | Use a double since the sum of squares is likely to overflow int64.
duSumOfSquares :: Lens' DistributionUpdate (Maybe Double)

-- | Use an int64 since we'd prefer the added precision. If overflow is a
--   common problem we can detect it and use an additional int64 or a
--   double.
duSum :: Lens' DistributionUpdate (Maybe SplitInt64)
data SourceBaseSpecsItem

-- | Creates a value of <a>SourceBaseSpecsItem</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>sbsiAddtional</a></li>
--   </ul>
sourceBaseSpecsItem :: HashMap Text JSONValue -> SourceBaseSpecsItem

-- | Properties of the object.
sbsiAddtional :: Lens' SourceBaseSpecsItem (HashMap Text JSONValue)

-- | Describes a particular operation comprising a MapTask.
--   
--   <i>See:</i> <a>parallelInstruction</a> smart constructor.
data ParallelInstruction

-- | Creates a value of <a>ParallelInstruction</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>piRead</a></li>
--   <li><a>piWrite</a></li>
--   <li><a>piParDo</a></li>
--   <li><a>piPartialGroupByKey</a></li>
--   <li><a>piOutputs</a></li>
--   <li><a>piName</a></li>
--   <li><a>piSystemName</a></li>
--   <li><a>piFlatten</a></li>
--   <li><a>piOriginalName</a></li>
--   </ul>
parallelInstruction :: ParallelInstruction

-- | Additional information for Read instructions.
piRead :: Lens' ParallelInstruction (Maybe ReadInstruction)

-- | Additional information for Write instructions.
piWrite :: Lens' ParallelInstruction (Maybe WriteInstruction)

-- | Additional information for ParDo instructions.
piParDo :: Lens' ParallelInstruction (Maybe ParDoInstruction)

-- | Additional information for PartialGroupByKey instructions.
piPartialGroupByKey :: Lens' ParallelInstruction (Maybe PartialGroupByKeyInstruction)

-- | Describes the outputs of the instruction.
piOutputs :: Lens' ParallelInstruction [InstructionOutput]

-- | User-provided name of this operation.
piName :: Lens' ParallelInstruction (Maybe Text)

-- | System-defined name of this operation. Unique across the workflow.
piSystemName :: Lens' ParallelInstruction (Maybe Text)

-- | Additional information for Flatten instructions.
piFlatten :: Lens' ParallelInstruction (Maybe FlattenInstruction)

-- | System-defined name for the operation in the original workflow graph.
piOriginalName :: Lens' ParallelInstruction (Maybe Text)

-- | How to interpret the source element(s) as a side input value.
--   
--   <i>See:</i> <a>sideInputInfoKind</a> smart constructor.
data SideInputInfoKind

-- | Creates a value of <a>SideInputInfoKind</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>siikAddtional</a></li>
--   </ul>
sideInputInfoKind :: HashMap Text JSONValue -> SideInputInfoKind

-- | Properties of the object.
siikAddtional :: Lens' SideInputInfoKind (HashMap Text JSONValue)

-- | A task that carries configuration information for streaming
--   computations.
--   
--   <i>See:</i> <a>streamingConfigTask</a> smart constructor.
data StreamingConfigTask

-- | Creates a value of <a>StreamingConfigTask</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>sctUserStepToStateFamilyNameMap</a></li>
--   <li><a>sctStreamingComputationConfigs</a></li>
--   </ul>
streamingConfigTask :: StreamingConfigTask

-- | Map from user step names to state families.
sctUserStepToStateFamilyNameMap :: Lens' StreamingConfigTask (Maybe StreamingConfigTaskUserStepToStateFamilyNameMap)

-- | Set of computation configuration information.
sctStreamingComputationConfigs :: Lens' StreamingConfigTask [StreamingComputationConfig]

-- | The metric short id is returned to the user alongside an offset into
--   ReportWorkItemStatusRequest
--   
--   <i>See:</i> <a>metricShortId</a> smart constructor.
data MetricShortId

-- | Creates a value of <a>MetricShortId</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>msiShortId</a></li>
--   <li><a>msiMetricIndex</a></li>
--   </ul>
metricShortId :: MetricShortId

-- | The service-generated short identifier for the metric.
msiShortId :: Lens' MetricShortId (Maybe Int64)

-- | The index of the corresponding metric in the
--   ReportWorkItemStatusRequest. Required.
msiMetricIndex :: Lens' MetricShortId (Maybe Int32)

-- | A request for sending worker messages to the service.
--   
--   <i>See:</i> <a>sendWorkerMessagesRequest</a> smart constructor.
data SendWorkerMessagesRequest

-- | Creates a value of <a>SendWorkerMessagesRequest</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>swmrWorkerMessages</a></li>
--   </ul>
sendWorkerMessagesRequest :: SendWorkerMessagesRequest

-- | The WorkerMessages to send.
swmrWorkerMessages :: Lens' SendWorkerMessagesRequest [WorkerMessage]

-- | DEPRECATED in favor of DerivedSource.
--   
--   <i>See:</i> <a>sourceSplitShard</a> smart constructor.
data SourceSplitShard

-- | Creates a value of <a>SourceSplitShard</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>sssDerivationMode</a></li>
--   <li><a>sssSource</a></li>
--   </ul>
sourceSplitShard :: SourceSplitShard

-- | DEPRECATED
sssDerivationMode :: Lens' SourceSplitShard (Maybe Text)

-- | DEPRECATED
sssSource :: Lens' SourceSplitShard (Maybe Source)

-- | Information about a side input of a DoFn or an input of a SeqDoFn.
--   
--   <i>See:</i> <a>sideInputInfo</a> smart constructor.
data SideInputInfo

-- | Creates a value of <a>SideInputInfo</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>siiTag</a></li>
--   <li><a>siiKind</a></li>
--   <li><a>siiSources</a></li>
--   </ul>
sideInputInfo :: SideInputInfo

-- | The id of the tag the user code will access this side input by; this
--   should correspond to the tag of some MultiOutputInfo.
siiTag :: Lens' SideInputInfo (Maybe Text)

-- | How to interpret the source element(s) as a side input value.
siiKind :: Lens' SideInputInfo (Maybe SideInputInfoKind)

-- | The source(s) to read element(s) from to get the value of this side
--   input. If more than one source, then the elements are taken from the
--   sources, in the specified order if order matters. At least one source
--   is required.
siiSources :: Lens' SideInputInfo [Source]

-- | Additional information about how a Cloud Dataflow job will be executed
--   that isn't contained in the submitted job.
--   
--   <i>See:</i> <a>jobExecutionInfo</a> smart constructor.
data JobExecutionInfo

-- | Creates a value of <a>JobExecutionInfo</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>jeiStages</a></li>
--   </ul>
jobExecutionInfo :: JobExecutionInfo

-- | A mapping from each stage to the information about that stage.
jeiStages :: Lens' JobExecutionInfo (Maybe JobExecutionInfoStages)

-- | The codec to use to decode data read from the source.
--   
--   <i>See:</i> <a>sourceCodec</a> smart constructor.
data SourceCodec

-- | Creates a value of <a>SourceCodec</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>souAddtional</a></li>
--   </ul>
sourceCodec :: HashMap Text JSONValue -> SourceCodec

-- | Properties of the object.
souAddtional :: Lens' SourceCodec (HashMap Text JSONValue)

-- | State family configuration.
--   
--   <i>See:</i> <a>stateFamilyConfig</a> smart constructor.
data StateFamilyConfig

-- | Creates a value of <a>StateFamilyConfig</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>sfcIsRead</a></li>
--   <li><a>sfcStateFamily</a></li>
--   </ul>
stateFamilyConfig :: StateFamilyConfig

-- | If true, this family corresponds to a read operation.
sfcIsRead :: Lens' StateFamilyConfig (Maybe Bool)

-- | The state family value.
sfcStateFamily :: Lens' StateFamilyConfig (Maybe Text)

-- | Data disk assignment information for a specific key-range of a sharded
--   computation. Currently we only support UTF-8 character splits to
--   simplify encoding into JSON.
--   
--   <i>See:</i> <a>keyRangeDataDiskAssignment</a> smart constructor.
data KeyRangeDataDiskAssignment

-- | Creates a value of <a>KeyRangeDataDiskAssignment</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>krddaDataDisk</a></li>
--   <li><a>krddaStart</a></li>
--   <li><a>krddaEnd</a></li>
--   </ul>
keyRangeDataDiskAssignment :: KeyRangeDataDiskAssignment

-- | The name of the data disk where data for this range is stored. This
--   name is local to the Google Cloud Platform project and uniquely
--   identifies the disk within that project, for example
--   "myproject-1014-104817-4c2-harness-0-disk-1".
krddaDataDisk :: Lens' KeyRangeDataDiskAssignment (Maybe Text)

-- | The start (inclusive) of the key range.
krddaStart :: Lens' KeyRangeDataDiskAssignment (Maybe Text)

-- | The end (exclusive) of the key range.
krddaEnd :: Lens' KeyRangeDataDiskAssignment (Maybe Text)

-- | Represents the operation to split a high-level Source specification
--   into bundles (parts for parallel processing). At a high level,
--   splitting of a source into bundles happens as follows:
--   SourceSplitRequest is applied to the source. If it returns
--   SOURCE_SPLIT_OUTCOME_USE_CURRENT, no further splitting happens and the
--   source is used "as is". Otherwise, splitting is applied recursively to
--   each produced DerivedSource. As an optimization, for any Source, if
--   its does_not_need_splitting is true, the framework assumes that
--   splitting this source would return SOURCE_SPLIT_OUTCOME_USE_CURRENT,
--   and doesn't initiate a SourceSplitRequest. This applies both to the
--   initial source being split and to bundles produced from it.
--   
--   <i>See:</i> <a>sourceSplitRequest</a> smart constructor.
data SourceSplitRequest

-- | Creates a value of <a>SourceSplitRequest</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>ssrSource</a></li>
--   <li><a>ssrOptions</a></li>
--   </ul>
sourceSplitRequest :: SourceSplitRequest

-- | Specification of the source to be split.
ssrSource :: Lens' SourceSplitRequest (Maybe Source)

-- | Hints for tuning the splitting process.
ssrOptions :: Lens' SourceSplitRequest (Maybe SourceSplitOptions)

-- | Response to a request to list job messages.
--   
--   <i>See:</i> <a>listJobMessagesResponse</a> smart constructor.
data ListJobMessagesResponse

-- | Creates a value of <a>ListJobMessagesResponse</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>ljmrJobMessages</a></li>
--   <li><a>ljmrNextPageToken</a></li>
--   </ul>
listJobMessagesResponse :: ListJobMessagesResponse

-- | Messages in ascending timestamp order.
ljmrJobMessages :: Lens' ListJobMessagesResponse [JobMessage]

-- | The token to obtain the next page of results if there are more.
ljmrNextPageToken :: Lens' ListJobMessagesResponse (Maybe Text)

-- | Identifies a pubsub location to use for transferring data into or out
--   of a streaming Dataflow job.
--   
--   <i>See:</i> <a>pubsubLocation</a> smart constructor.
data PubsubLocation

-- | Creates a value of <a>PubsubLocation</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>plTrackingSubscription</a></li>
--   <li><a>plDropLateData</a></li>
--   <li><a>plTimestampLabel</a></li>
--   <li><a>plIdLabel</a></li>
--   <li><a>plTopic</a></li>
--   <li><a>plWithAttributes</a></li>
--   <li><a>plSubscription</a></li>
--   </ul>
pubsubLocation :: PubsubLocation

-- | If set, specifies the pubsub subscription that will be used for
--   tracking custom time timestamps for watermark estimation.
plTrackingSubscription :: Lens' PubsubLocation (Maybe Text)

-- | Indicates whether the pipeline allows late-arriving data.
plDropLateData :: Lens' PubsubLocation (Maybe Bool)

-- | If set, contains a pubsub label from which to extract record
--   timestamps. If left empty, record timestamps will be generated upon
--   arrival.
plTimestampLabel :: Lens' PubsubLocation (Maybe Text)

-- | If set, contains a pubsub label from which to extract record ids. If
--   left empty, record deduplication will be strictly best effort.
plIdLabel :: Lens' PubsubLocation (Maybe Text)

-- | A pubsub topic, in the form of "pubsub.googleapis.com/topics/ /"
plTopic :: Lens' PubsubLocation (Maybe Text)

-- | If true, then the client has requested to get pubsub attributes.
plWithAttributes :: Lens' PubsubLocation (Maybe Bool)

-- | A pubsub subscription, in the form of
--   "pubsub.googleapis.com/subscriptions/ /"
plSubscription :: Lens' PubsubLocation (Maybe Text)

-- | A metric value representing a list of floating point numbers.
--   
--   <i>See:</i> <a>floatingPointList</a> smart constructor.
data FloatingPointList

-- | Creates a value of <a>FloatingPointList</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>fplElements</a></li>
--   </ul>
floatingPointList :: FloatingPointList

-- | Elements of the list.
fplElements :: Lens' FloatingPointList [Double]

-- | An input of an instruction, as a reference to an output of a producer
--   instruction.
--   
--   <i>See:</i> <a>instructionInput</a> smart constructor.
data InstructionInput

-- | Creates a value of <a>InstructionInput</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>iiProducerInstructionIndex</a></li>
--   <li><a>iiOutputNum</a></li>
--   </ul>
instructionInput :: InstructionInput

-- | The index (origin zero) of the parallel instruction that produces the
--   output to be consumed by this input. This index is relative to the
--   list of instructions in this input's instruction's containing MapTask.
iiProducerInstructionIndex :: Lens' InstructionInput (Maybe Int32)

-- | The output index (origin zero) within the producer.
iiOutputNum :: Lens' InstructionInput (Maybe Int32)

-- | Describes a particular function to invoke.
--   
--   <i>See:</i> <a>seqMapTask</a> smart constructor.
data SeqMapTask

-- | Creates a value of <a>SeqMapTask</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>smtInputs</a></li>
--   <li><a>smtName</a></li>
--   <li><a>smtOutputInfos</a></li>
--   <li><a>smtSystemName</a></li>
--   <li><a>smtStageName</a></li>
--   <li><a>smtUserFn</a></li>
--   </ul>
seqMapTask :: SeqMapTask

-- | Information about each of the inputs.
smtInputs :: Lens' SeqMapTask [SideInputInfo]

-- | The user-provided name of the SeqDo operation.
smtName :: Lens' SeqMapTask (Maybe Text)

-- | Information about each of the outputs.
smtOutputInfos :: Lens' SeqMapTask [SeqMapTaskOutputInfo]

-- | System-defined name of the SeqDo operation. Unique across the
--   workflow.
smtSystemName :: Lens' SeqMapTask (Maybe Text)

-- | System-defined name of the stage containing the SeqDo operation.
--   Unique across the workflow.
smtStageName :: Lens' SeqMapTask (Maybe Text)

-- | The user function to invoke.
smtUserFn :: Lens' SeqMapTask (Maybe SeqMapTaskUserFn)

-- | Map from user step names to state families.
--   
--   <i>See:</i> <a>streamingConfigTaskUserStepToStateFamilyNameMap</a>
--   smart constructor.
data StreamingConfigTaskUserStepToStateFamilyNameMap

-- | Creates a value of
--   <a>StreamingConfigTaskUserStepToStateFamilyNameMap</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>sctustsfnmAddtional</a></li>
--   </ul>
streamingConfigTaskUserStepToStateFamilyNameMap :: HashMap Text Text -> StreamingConfigTaskUserStepToStateFamilyNameMap
sctustsfnmAddtional :: Lens' StreamingConfigTaskUserStepToStateFamilyNameMap (HashMap Text Text)

-- | A work item that represents the different operations that can be
--   performed on a user-defined Source specification.
--   
--   <i>See:</i> <a>sourceOperationRequest</a> smart constructor.
data SourceOperationRequest

-- | Creates a value of <a>SourceOperationRequest</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>sSplit</a></li>
--   <li><a>sGetMetadata</a></li>
--   </ul>
sourceOperationRequest :: SourceOperationRequest

-- | Information about a request to split a source.
sSplit :: Lens' SourceOperationRequest (Maybe SourceSplitRequest)

-- | Information about a request to get metadata about a source.
sGetMetadata :: Lens' SourceOperationRequest (Maybe SourceGetMetadataRequest)

-- | Response to a request to lease WorkItems.
--   
--   <i>See:</i> <a>leaseWorkItemResponse</a> smart constructor.
data LeaseWorkItemResponse

-- | Creates a value of <a>LeaseWorkItemResponse</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>lwirWorkItems</a></li>
--   </ul>
leaseWorkItemResponse :: LeaseWorkItemResponse

-- | A list of the leased WorkItems.
lwirWorkItems :: Lens' LeaseWorkItemResponse [WorkItem]

-- | Position defines a position within a collection of data. The value can
--   be either the end position, a key (used with ordered collections), a
--   byte offset, or a record index.
--   
--   <i>See:</i> <a>position</a> smart constructor.
data Position

-- | Creates a value of <a>Position</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>pByteOffSet</a></li>
--   <li><a>pConcatPosition</a></li>
--   <li><a>pRecordIndex</a></li>
--   <li><a>pShufflePosition</a></li>
--   <li><a>pKey</a></li>
--   <li><a>pEnd</a></li>
--   </ul>
position :: Position

-- | Position is a byte offset.
pByteOffSet :: Lens' Position (Maybe Int64)

-- | CloudPosition is a concat position.
pConcatPosition :: Lens' Position (Maybe ConcatPosition)

-- | Position is a record index.
pRecordIndex :: Lens' Position (Maybe Int64)

-- | CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
--   sharding).
pShufflePosition :: Lens' Position (Maybe Text)

-- | Position is a string key, ordered lexicographically.
pKey :: Lens' Position (Maybe Text)

-- | Position is past all other positions. Also useful for the end position
--   of an unbounded range.
pEnd :: Lens' Position (Maybe Bool)
