summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--LICENSE367
-rw-r--r--README.md28
-rw-r--r--Setup.hs2
-rw-r--r--gen/Network/Google/Dataflow.hs759
-rw-r--r--gen/Network/Google/Dataflow/Types.hs721
-rw-r--r--gen/Network/Google/Dataflow/Types/Product.hs6244
-rw-r--r--gen/Network/Google/Dataflow/Types/Sum.hs19
-rw-r--r--gen/Network/Google/Resource/Dataflow/Projects/Jobs/Create.hs206
-rw-r--r--gen/Network/Google/Resource/Dataflow/Projects/Jobs/Get.hs192
-rw-r--r--gen/Network/Google/Resource/Dataflow/Projects/Jobs/GetMetrics.hs200
-rw-r--r--gen/Network/Google/Resource/Dataflow/Projects/Jobs/List.hs209
-rw-r--r--gen/Network/Google/Resource/Dataflow/Projects/Jobs/Messages/List.hs256
-rw-r--r--gen/Network/Google/Resource/Dataflow/Projects/Jobs/Update.hs194
-rw-r--r--gen/Network/Google/Resource/Dataflow/Projects/Jobs/WorkItems/Lease.hs202
-rw-r--r--gen/Network/Google/Resource/Dataflow/Projects/Jobs/WorkItems/ReportStatus.hs204
-rw-r--r--gogol-dataflow.cabal53
16 files changed, 9856 insertions, 0 deletions
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..bc8942f
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,367 @@
+Mozilla Public License Version 2.0
+==================================
+
+1. Definitions
+--------------
+
+1.1. "Contributor"
+ means each individual or legal entity that creates, contributes to
+ the creation of, or owns Covered Software.
+
+1.2. "Contributor Version"
+ means the combination of the Contributions of others (if any) used
+ by a Contributor and that particular Contributor's Contribution.
+
+1.3. "Contribution"
+ means Covered Software of a particular Contributor.
+
+1.4. "Covered Software"
+ means Source Code Form to which the initial Contributor has attached
+ the notice in Exhibit A, the Executable Form of such Source Code
+ Form, and Modifications of such Source Code Form, in each case
+ including portions thereof.
+
+1.5. "Incompatible With Secondary Licenses"
+ means
+
+ (a) that the initial Contributor has attached the notice described
+ in Exhibit B to the Covered Software; or
+
+ (b) that the Covered Software was made available under the terms of
+ version 1.1 or earlier of the License, but not also under the
+ terms of a Secondary License.
+
+1.6. "Executable Form"
+ means any form of the work other than Source Code Form.
+
+1.7. "Larger Work"
+ means a work that combines Covered Software with other material, in
+ a separate file or files, that is not Covered Software.
+
+1.8. "License"
+ means this document.
+
+1.9. "Licensable"
+ means having the right to grant, to the maximum extent possible,
+ whether at the time of the initial grant or subsequently, any and
+ all of the rights conveyed by this License.
+
+1.10. "Modifications"
+ means any of the following:
+
+ (a) any file in Source Code Form that results from an addition to,
+ deletion from, or modification of the contents of Covered
+ Software; or
+
+ (b) any new file in Source Code Form that contains any Covered
+ Software.
+
+1.11. "Patent Claims" of a Contributor
+ means any patent claim(s), including without limitation, method,
+ process, and apparatus claims, in any patent Licensable by such
+ Contributor that would be infringed, but for the grant of the
+ License, by the making, using, selling, offering for sale, having
+ made, import, or transfer of either its Contributions or its
+ Contributor Version.
+
+1.12. "Secondary License"
+ means either the GNU General Public License, Version 2.0, the GNU
+ Lesser General Public License, Version 2.1, the GNU Affero General
+ Public License, Version 3.0, or any later versions of those
+ licenses.
+
+1.13. "Source Code Form"
+ means the form of the work preferred for making modifications.
+
+1.14. "You" (or "Your")
+ means an individual or a legal entity exercising rights under this
+ License. For legal entities, "You" includes any entity that
+ controls, is controlled by, or is under common control with You. For
+ purposes of this definition, "control" means (a) the power, direct
+ or indirect, to cause the direction or management of such entity,
+ whether by contract or otherwise, or (b) ownership of more than
+ fifty percent (50%) of the outstanding shares or beneficial
+ ownership of such entity.
+
+2. License Grants and Conditions
+--------------------------------
+
+2.1. Grants
+
+Each Contributor hereby grants You a world-wide, royalty-free,
+non-exclusive license:
+
+(a) under intellectual property rights (other than patent or trademark)
+ Licensable by such Contributor to use, reproduce, make available,
+ modify, display, perform, distribute, and otherwise exploit its
+ Contributions, either on an unmodified basis, with Modifications, or
+ as part of a Larger Work; and
+
+(b) under Patent Claims of such Contributor to make, use, sell, offer
+ for sale, have made, import, and otherwise transfer either its
+ Contributions or its Contributor Version.
+
+2.2. Effective Date
+
+The licenses granted in Section 2.1 with respect to any Contribution
+become effective for each Contribution on the date the Contributor first
+distributes such Contribution.
+
+2.3. Limitations on Grant Scope
+
+The licenses granted in this Section 2 are the only rights granted under
+this License. No additional rights or licenses will be implied from the
+distribution or licensing of Covered Software under this License.
+Notwithstanding Section 2.1(b) above, no patent license is granted by a
+Contributor:
+
+(a) for any code that a Contributor has removed from Covered Software;
+ or
+
+(b) for infringements caused by: (i) Your and any other third party's
+ modifications of Covered Software, or (ii) the combination of its
+ Contributions with other software (except as part of its Contributor
+ Version); or
+
+(c) under Patent Claims infringed by Covered Software in the absence of
+ its Contributions.
+
+This License does not grant any rights in the trademarks, service marks,
+or logos of any Contributor (except as may be necessary to comply with
+the notice requirements in Section 3.4).
+
+2.4. Subsequent Licenses
+
+No Contributor makes additional grants as a result of Your choice to
+distribute the Covered Software under a subsequent version of this
+License (see Section 10.2) or under the terms of a Secondary License (if
+permitted under the terms of Section 3.3).
+
+2.5. Representation
+
+Each Contributor represents that the Contributor believes its
+Contributions are its original creation(s) or it has sufficient rights
+to grant the rights to its Contributions conveyed by this License.
+
+2.6. Fair Use
+
+This License is not intended to limit any rights You have under
+applicable copyright doctrines of fair use, fair dealing, or other
+equivalents.
+
+2.7. Conditions
+
+Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
+in Section 2.1.
+
+3. Responsibilities
+-------------------
+
+3.1. Distribution of Source Form
+
+All distribution of Covered Software in Source Code Form, including any
+Modifications that You create or to which You contribute, must be under
+the terms of this License. You must inform recipients that the Source
+Code Form of the Covered Software is governed by the terms of this
+License, and how they can obtain a copy of this License. You may not
+attempt to alter or restrict the recipients' rights in the Source Code
+Form.
+
+3.2. Distribution of Executable Form
+
+If You distribute Covered Software in Executable Form then:
+
+(a) such Covered Software must also be made available in Source Code
+ Form, as described in Section 3.1, and You must inform recipients of
+ the Executable Form how they can obtain a copy of such Source Code
+ Form by reasonable means in a timely manner, at a charge no more
+ than the cost of distribution to the recipient; and
+
+(b) You may distribute such Executable Form under the terms of this
+ License, or sublicense it under different terms, provided that the
+ license for the Executable Form does not attempt to limit or alter
+ the recipients' rights in the Source Code Form under this License.
+
+3.3. Distribution of a Larger Work
+
+You may create and distribute a Larger Work under terms of Your choice,
+provided that You also comply with the requirements of this License for
+the Covered Software. If the Larger Work is a combination of Covered
+Software with a work governed by one or more Secondary Licenses, and the
+Covered Software is not Incompatible With Secondary Licenses, this
+License permits You to additionally distribute such Covered Software
+under the terms of such Secondary License(s), so that the recipient of
+the Larger Work may, at their option, further distribute the Covered
+Software under the terms of either this License or such Secondary
+License(s).
+
+3.4. Notices
+
+You may not remove or alter the substance of any license notices
+(including copyright notices, patent notices, disclaimers of warranty,
+or limitations of liability) contained within the Source Code Form of
+the Covered Software, except that You may alter any license notices to
+the extent required to remedy known factual inaccuracies.
+
+3.5. Application of Additional Terms
+
+You may choose to offer, and to charge a fee for, warranty, support,
+indemnity or liability obligations to one or more recipients of Covered
+Software. However, You may do so only on Your own behalf, and not on
+behalf of any Contributor. You must make it absolutely clear that any
+such warranty, support, indemnity, or liability obligation is offered by
+You alone, and You hereby agree to indemnify every Contributor for any
+liability incurred by such Contributor as a result of warranty, support,
+indemnity or liability terms You offer. You may include additional
+disclaimers of warranty and limitations of liability specific to any
+jurisdiction.
+
+4. Inability to Comply Due to Statute or Regulation
+---------------------------------------------------
+
+If it is impossible for You to comply with any of the terms of this
+License with respect to some or all of the Covered Software due to
+statute, judicial order, or regulation then You must: (a) comply with
+the terms of this License to the maximum extent possible; and (b)
+describe the limitations and the code they affect. Such description must
+be placed in a text file included with all distributions of the Covered
+Software under this License. Except to the extent prohibited by statute
+or regulation, such description must be sufficiently detailed for a
+recipient of ordinary skill to be able to understand it.
+
+5. Termination
+--------------
+
+5.1. The rights granted under this License will terminate automatically
+if You fail to comply with any of its terms. However, if You become
+compliant, then the rights granted under this License from a particular
+Contributor are reinstated (a) provisionally, unless and until such
+Contributor explicitly and finally terminates Your grants, and (b) on an
+ongoing basis, if such Contributor fails to notify You of the
+non-compliance by some reasonable means prior to 60 days after You have
+come back into compliance. Moreover, Your grants from a particular
+Contributor are reinstated on an ongoing basis if such Contributor
+notifies You of the non-compliance by some reasonable means, this is the
+first time You have received notice of non-compliance with this License
+from such Contributor, and You become compliant prior to 30 days after
+Your receipt of the notice.
+
+5.2. If You initiate litigation against any entity by asserting a patent
+infringement claim (excluding declaratory judgment actions,
+counter-claims, and cross-claims) alleging that a Contributor Version
+directly or indirectly infringes any patent, then the rights granted to
+You by any and all Contributors for the Covered Software under Section
+2.1 of this License shall terminate.
+
+5.3. In the event of termination under Sections 5.1 or 5.2 above, all
+end user license agreements (excluding distributors and resellers) which
+have been validly granted by You or Your distributors under this License
+prior to termination shall survive termination.
+
+************************************************************************
+* *
+* 6. Disclaimer of Warranty *
+* ------------------------- *
+* *
+* Covered Software is provided under this License on an "as is" *
+* basis, without warranty of any kind, either expressed, implied, or *
+* statutory, including, without limitation, warranties that the *
+* Covered Software is free of defects, merchantable, fit for a *
+* particular purpose or non-infringing. The entire risk as to the *
+* quality and performance of the Covered Software is with You. *
+* Should any Covered Software prove defective in any respect, You *
+* (not any Contributor) assume the cost of any necessary servicing, *
+* repair, or correction. This disclaimer of warranty constitutes an *
+* essential part of this License. No use of any Covered Software is *
+* authorized under this License except under this disclaimer. *
+* *
+************************************************************************
+
+************************************************************************
+* *
+* 7. Limitation of Liability *
+* -------------------------- *
+* *
+* Under no circumstances and under no legal theory, whether tort *
+* (including negligence), contract, or otherwise, shall any *
+* Contributor, or anyone who distributes Covered Software as *
+* permitted above, be liable to You for any direct, indirect, *
+* special, incidental, or consequential damages of any character *
+* including, without limitation, damages for lost profits, loss of *
+* goodwill, work stoppage, computer failure or malfunction, or any *
+* and all other commercial damages or losses, even if such party *
+* shall have been informed of the possibility of such damages. This *
+* limitation of liability shall not apply to liability for death or *
+* personal injury resulting from such party's negligence to the *
+* extent applicable law prohibits such limitation. Some *
+* jurisdictions do not allow the exclusion or limitation of *
+* incidental or consequential damages, so this exclusion and *
+* limitation may not apply to You. *
+* *
+************************************************************************
+
+8. Litigation
+-------------
+
+Any litigation relating to this License may be brought only in the
+courts of a jurisdiction where the defendant maintains its principal
+place of business and such litigation shall be governed by laws of that
+jurisdiction, without reference to its conflict-of-law provisions.
+Nothing in this Section shall prevent a party's ability to bring
+cross-claims or counter-claims.
+
+9. Miscellaneous
+----------------
+
+This License represents the complete agreement concerning the subject
+matter hereof. If any provision of this License is held to be
+unenforceable, such provision shall be reformed only to the extent
+necessary to make it enforceable. Any law or regulation which provides
+that the language of a contract shall be construed against the drafter
+shall not be used to construe this License against a Contributor.
+
+10. Versions of the License
+---------------------------
+
+10.1. New Versions
+
+Mozilla Foundation is the license steward. Except as provided in Section
+10.3, no one other than the license steward has the right to modify or
+publish new versions of this License. Each version will be given a
+distinguishing version number.
+
+10.2. Effect of New Versions
+
+You may distribute the Covered Software under the terms of the version
+of the License under which You originally received the Covered Software,
+or under the terms of any subsequent version published by the license
+steward.
+
+10.3. Modified Versions
+
+If you create software not governed by this License, and you want to
+create a new license for such software, you may create and use a
+modified version of this License if you rename the license and remove
+any references to the name of the license steward (except to note that
+such modified license differs from this License).
+
+10.4. Distributing Source Code Form that is Incompatible With Secondary
+Licenses
+
+If You choose to distribute Source Code Form that is Incompatible With
+Secondary Licenses under the terms of this version of the License, the
+notice described in Exhibit B of this License must be attached.
+
+Exhibit A - Source Code Form License Notice
+-------------------------------------------
+
+ This Source Code Form is subject to the terms of the Mozilla Public
+ License, v. 2.0. If a copy of the MPL was not distributed with this
+ file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+If it is not possible or desirable to put the notice in a particular
+file, then You may include the notice in a location (such as a LICENSE
+file in a relevant directory) where a recipient would be likely to look
+for such a notice.
+
+You may add additional accurate notices of copyright ownership.
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..82ae447
--- /dev/null
+++ b/README.md
@@ -0,0 +1,28 @@
+# gogol-dataflow
+
+* [Version](#version)
+* [Description](#description)
+* [Contribute](#contribute)
+* [Licence](#licence)
+
+
+## Version
+
+`0.0.1`
+
+
+## Description
+
+A client library for the Google Dataflow.
+
+
+## Contribute
+
+For any problems, comments, or feedback please create an issue [here on GitHub](https://github.com/brendanhay/amazonka/issues).
+
+> _Note:_ this library is an auto-generated Haskell package. Please see `amazonka-gen` for more information.
+
+
+## Licence
+
+`gogol-dataflow` is released under the [Mozilla Public License Version 2.0](http://www.mozilla.org/MPL/).
diff --git a/Setup.hs b/Setup.hs
new file mode 100644
index 0000000..4467109
--- /dev/null
+++ b/Setup.hs
@@ -0,0 +1,2 @@
+import Distribution.Simple
+main = defaultMain
diff --git a/gen/Network/Google/Dataflow.hs b/gen/Network/Google/Dataflow.hs
new file mode 100644
index 0000000..b1d49df
--- /dev/null
+++ b/gen/Network/Google/Dataflow.hs
@@ -0,0 +1,759 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# LANGUAGE TypeOperators #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+
+-- |
+-- Module : Network.Google.Dataflow
+-- Copyright : (c) 2015 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Google Dataflow API.
+--
+-- /See:/ <https://cloud.google.com/dataflow Google Dataflow API Reference>
+module Network.Google.Dataflow
+ (
+ -- * Service Configuration
+ dataflowService
+
+ -- * API Declaration
+ , DataflowAPI
+
+ -- * Resources
+
+ -- ** dataflow.projects.jobs.create
+ , module Network.Google.Resource.Dataflow.Projects.Jobs.Create
+
+ -- ** dataflow.projects.jobs.get
+ , module Network.Google.Resource.Dataflow.Projects.Jobs.Get
+
+ -- ** dataflow.projects.jobs.getMetrics
+ , module Network.Google.Resource.Dataflow.Projects.Jobs.GetMetrics
+
+ -- ** dataflow.projects.jobs.list
+ , module Network.Google.Resource.Dataflow.Projects.Jobs.List
+
+ -- ** dataflow.projects.jobs.messages.list
+ , module Network.Google.Resource.Dataflow.Projects.Jobs.Messages.List
+
+ -- ** dataflow.projects.jobs.update
+ , module Network.Google.Resource.Dataflow.Projects.Jobs.Update
+
+ -- ** dataflow.projects.jobs.workItems.lease
+ , module Network.Google.Resource.Dataflow.Projects.Jobs.WorkItems.Lease
+
+ -- ** dataflow.projects.jobs.workItems.reportStatus
+ , module Network.Google.Resource.Dataflow.Projects.Jobs.WorkItems.ReportStatus
+
+ -- * Types
+
+ -- ** JobExecutionInfoStages
+ , JobExecutionInfoStages
+ , jobExecutionInfoStages
+ , jeisAddtional
+
+ -- ** ComputationTopology
+ , ComputationTopology
+ , computationTopology
+ , ctStateFamilies
+ , ctUserStageName
+ , ctInputs
+ , ctKeyRanges
+ , ctOutputs
+ , ctComputationId
+ , ctSystemStageName
+
+ -- ** SourceSplitResponse
+ , SourceSplitResponse
+ , sourceSplitResponse
+ , ssrBundles
+ , ssrShards
+ , ssrOutcome
+
+ -- ** Status
+ , Status
+ , status
+ , sDetails
+ , sCode
+ , sMessage
+
+ -- ** WorkItem
+ , WorkItem
+ , workItem
+ , wiJobId
+ , wiReportStatusInterval
+ , wiShellTask
+ , wiStreamingSetupTask
+ , wiInitialReportIndex
+ , wiMapTask
+ , wiPackages
+ , wiStreamingComputationTask
+ , wiSourceOperationTask
+ , wiId
+ , wiProjectId
+ , wiLeaseExpireTime
+ , wiConfiguration
+ , wiSeqMapTask
+
+ -- ** SourceSplitOptions
+ , SourceSplitOptions
+ , sourceSplitOptions
+ , ssoDesiredShardSizeBytes
+ , ssoDesiredBundleSizeBytes
+
+ -- ** WorkerPoolMetadata
+ , WorkerPoolMetadata
+ , workerPoolMetadata
+ , wpmAddtional
+
+ -- ** AutoscalingSettings
+ , AutoscalingSettings
+ , autoscalingSettings
+ , asMaxNumWorkers
+ , asAlgorithm
+
+ -- ** JobExecutionStageInfo
+ , JobExecutionStageInfo
+ , jobExecutionStageInfo
+ , jesiStepName
+
+ -- ** InstructionOutput
+ , InstructionOutput
+ , instructionOutput
+ , ioCodec
+ , ioName
+ , ioSystemName
+
+ -- ** ReportWorkItemStatusRequest
+ , ReportWorkItemStatusRequest
+ , reportWorkItemStatusRequest
+ , rwisrCurrentWorkerTime
+ , rwisrWorkItemStatuses
+ , rwisrWorkerId
+
+ -- ** EnvironmentVersion
+ , EnvironmentVersion
+ , environmentVersion
+ , evAddtional
+
+ -- ** Sink
+ , Sink
+ , sink
+ , sCodec
+ , sSpec
+
+ -- ** MetricStructuredName
+ , MetricStructuredName
+ , metricStructuredName
+ , msnOrigin
+ , msnContext
+ , msnName
+
+ -- ** WriteInstruction
+ , WriteInstruction
+ , writeInstruction
+ , wiSink
+ , wiInput
+
+ -- ** EnvironmentUserAgent
+ , EnvironmentUserAgent
+ , environmentUserAgent
+ , euaAddtional
+
+ -- ** Disk
+ , Disk
+ , disk
+ , dSizeGb
+ , dDiskType
+ , dMountPoint
+
+ -- ** MetricUpdate
+ , MetricUpdate
+ , metricUpdate
+ , muMeanSum
+ , muInternal
+ , muSet
+ , muCumulative
+ , muKind
+ , muUpdateTime
+ , muMeanCount
+ , muName
+ , muScalar
+
+ -- ** SourceGetMetadataResponse
+ , SourceGetMetadataResponse
+ , sourceGetMetadataResponse
+ , sgmrMetadata
+
+ -- ** Environment
+ , Environment
+ , environment
+ , eDataSet
+ , eExperiments
+ , eWorkerPools
+ , eClusterManagerAPIService
+ , eVersion
+ , eInternalExperiments
+ , eTempStoragePrefix
+ , eUserAgent
+ , eSdkPipelineOptions
+
+ -- ** ConcatPosition
+ , ConcatPosition
+ , concatPosition
+ , cpIndex
+ , cpPosition
+
+ -- ** MetricStructuredNameContext
+ , MetricStructuredNameContext
+ , metricStructuredNameContext
+ , msncAddtional
+
+ -- ** StreamingStageLocation
+ , StreamingStageLocation
+ , streamingStageLocation
+ , sslStreamId
+
+ -- ** DerivedSource
+ , DerivedSource
+ , derivedSource
+ , dsDerivationMode
+ , dsSource
+
+ -- ** JobMetrics
+ , JobMetrics
+ , jobMetrics
+ , jmMetrics
+ , jmMetricTime
+
+ -- ** WorkItemStatus
+ , WorkItemStatus
+ , workItemStatus
+ , wisProgress
+ , wisSourceOperationResponse
+ , wisStopPosition
+ , wisDynamicSourceSplit
+ , wisCompleted
+ , wisSourceFork
+ , wisReportIndex
+ , wisRequestedLeaseDuration
+ , wisErrors
+ , wisMetricUpdates
+ , wisWorkItemId
+
+ -- ** FlattenInstruction
+ , FlattenInstruction
+ , flattenInstruction
+ , fiInputs
+
+ -- ** JobTransformNameMApping
+ , JobTransformNameMApping
+ , jobTransformNameMApping
+ , jtnmaAddtional
+
+ -- ** SourceSpec
+ , SourceSpec
+ , sourceSpec
+ , ssAddtional
+
+ -- ** SourceMetadata
+ , SourceMetadata
+ , sourceMetadata
+ , smEstimatedSizeBytes
+ , smProducesSortedKeys
+ , smInfinite
+
+ -- ** EnvironmentInternalExperiments
+ , EnvironmentInternalExperiments
+ , environmentInternalExperiments
+ , eieAddtional
+
+ -- ** TaskRunnerSettings
+ , TaskRunnerSettings
+ , taskRunnerSettings
+ , trsContinueOnException
+ , trsHarnessCommand
+ , trsWorkflowFileName
+ , trsTaskGroup
+ , trsAlsologtostderr
+ , trsDataflowAPIVersion
+ , trsLogDir
+ , trsCommandlinesFileName
+ , trsVMId
+ , trsBaseURL
+ , trsOAuthScopes
+ , trsTaskUser
+ , trsStreamingWorkerMainClass
+ , trsBaseTaskDir
+ , trsLogUploadLocation
+ , trsTempStoragePrefix
+ , trsLogToSerialconsole
+ , trsParallelWorkerSettings
+ , trsLanguageHint
+
+ -- ** EnvironmentSdkPipelineOptions
+ , EnvironmentSdkPipelineOptions
+ , environmentSdkPipelineOptions
+ , espoAddtional
+
+ -- ** LeaseWorkItemRequest
+ , LeaseWorkItemRequest
+ , leaseWorkItemRequest
+ , lwirWorkItemTypes
+ , lwirCurrentWorkerTime
+ , lwirWorkerCapabilities
+ , lwirRequestedLeaseDuration
+ , lwirWorkerId
+
+ -- ** SourceOperationResponse
+ , SourceOperationResponse
+ , sourceOperationResponse
+ , sorSplit
+ , sorGetMetadata
+
+ -- ** TopologyConfigUserStageToComputationNameMap
+ , TopologyConfigUserStageToComputationNameMap
+ , topologyConfigUserStageToComputationNameMap
+ , tcustcnmAddtional
+
+ -- ** ShellTask
+ , ShellTask
+ , shellTask
+ , stCommand
+ , stExitCode
+
+ -- ** StatusDetailsItem
+ , StatusDetailsItem
+ , statusDetailsItem
+ , sdiAddtional
+
+ -- ** StepProperties
+ , StepProperties
+ , stepProperties
+ , spAddtional
+
+ -- ** TopologyConfig
+ , TopologyConfig
+ , topologyConfig
+ , tcDataDiskAssignments
+ , tcUserStageToComputationNameMap
+ , tcComputations
+
+ -- ** WorkerSettings
+ , WorkerSettings
+ , workerSettings
+ , wsServicePath
+ , wsBaseURL
+ , wsShuffleServicePath
+ , wsTempStoragePrefix
+ , wsReportingEnabled
+ , wsWorkerId
+
+ -- ** WorkItemServiceStateHarnessData
+ , WorkItemServiceStateHarnessData
+ , workItemServiceStateHarnessData
+ , wisshdAddtional
+
+ -- ** DataDiskAssignment
+ , DataDiskAssignment
+ , dataDiskAssignment
+ , ddaVMInstance
+ , ddaDataDisks
+
+ -- ** WorkItemServiceState
+ , WorkItemServiceState
+ , workItemServiceState
+ , wissNextReportIndex
+ , wissReportStatusInterval
+ , wissHarnessData
+ , wissSuggestedStopPoint
+ , wissSuggestedStopPosition
+ , wissLeaseExpireTime
+
+ -- ** StreamingSetupTask
+ , StreamingSetupTask
+ , streamingSetupTask
+ , sstStreamingComputationTopology
+ , sstReceiveWorkPort
+ , sstWorkerHarnessPort
+
+ -- ** PartialGroupByKeyInstructionInputElementCodec
+ , PartialGroupByKeyInstructionInputElementCodec
+ , partialGroupByKeyInstructionInputElementCodec
+ , pgbkiiecAddtional
+
+ -- ** MapTask
+ , MapTask
+ , mapTask
+ , mtInstructions
+ , mtSystemName
+ , mtStageName
+
+ -- ** MountedDataDisk
+ , MountedDataDisk
+ , mountedDataDisk
+ , mddDataDisk
+
+ -- ** SinkCodec
+ , SinkCodec
+ , sinkCodec
+ , scAddtional
+
+ -- ** ParDoInstructionUserFn
+ , ParDoInstructionUserFn
+ , parDoInstructionUserFn
+ , pdiufAddtional
+
+ -- ** InstructionOutputCodec
+ , InstructionOutputCodec
+ , instructionOutputCodec
+ , iocAddtional
+
+ -- ** StreamLocation
+ , StreamLocation
+ , streamLocation
+ , slStreamingStageLocation
+ , slSideInputLocation
+ , slCustomSourceLocation
+ , slPubsubLocation
+
+ -- ** WorkerPoolPoolArgs
+ , WorkerPoolPoolArgs
+ , workerPoolPoolArgs
+ , wppaAddtional
+
+ -- ** StreamingSideInputLocation
+ , StreamingSideInputLocation
+ , streamingSideInputLocation
+ , ssilTag
+ , ssilStateFamily
+
+ -- ** StreamingComputationTask
+ , StreamingComputationTask
+ , streamingComputationTask
+ , sctTaskType
+ , sctDataDisks
+ , sctComputationRanges
+
+ -- ** JobMessage
+ , JobMessage
+ , jobMessage
+ , jmTime
+ , jmMessageText
+ , jmMessageImportance
+ , jmId
+
+ -- ** SeqMapTaskOutputInfo
+ , SeqMapTaskOutputInfo
+ , seqMapTaskOutputInfo
+ , smtoiSink
+ , smtoiTag
+
+ -- ** SourceGetMetadataRequest
+ , SourceGetMetadataRequest
+ , sourceGetMetadataRequest
+ , sgmrSource
+
+ -- ** SeqMapTaskUserFn
+ , SeqMapTaskUserFn
+ , seqMapTaskUserFn
+ , smtufAddtional
+
+ -- ** PartialGroupByKeyInstructionValueCombiningFn
+ , PartialGroupByKeyInstructionValueCombiningFn
+ , partialGroupByKeyInstructionValueCombiningFn
+ , pgbkivcfAddtional
+
+ -- ** Job
+ , Job
+ , job
+ , jRequestedState
+ , jEnvironment
+ , jClientRequestId
+ , jCurrentState
+ , jReplacedByJobId
+ , jSteps
+ , jExecutionInfo
+ , jName
+ , jTransformNameMApping
+ , jId
+ , jProjectId
+ , jType
+ , jCurrentStateTime
+ , jReplaceJobId
+ , jCreateTime
+
+ -- ** ReadInstruction
+ , ReadInstruction
+ , readInstruction
+ , riSource
+
+ -- ** SinkSpec
+ , SinkSpec
+ , sinkSpec
+ , sAddtional
+
+ -- ** WorkerPool
+ , WorkerPool
+ , workerPool
+ , wpAutoscalingSettings
+ , wpDiskSizeGb
+ , wpKind
+ , wpTaskrunnerSettings
+ , wpNumWorkers
+ , wpNetwork
+ , wpZone
+ , wpPackages
+ , wpOnHostMaintenance
+ , wpDiskSourceImage
+ , wpMachineType
+ , wpMetadata
+ , wpDiskType
+ , wpTeardownPolicy
+ , wpDefaultPackageSet
+ , wpPoolArgs
+ , wpDataDisks
+
+ -- ** Step
+ , Step
+ , step
+ , sKind
+ , sName
+ , sProperties
+
+ -- ** Package
+ , Package
+ , package
+ , pLocation
+ , pName
+
+ -- ** DynamicSourceSplit
+ , DynamicSourceSplit
+ , dynamicSourceSplit
+ , dssResidual
+ , dssPrimary
+
+ -- ** ReportWorkItemStatusResponse
+ , ReportWorkItemStatusResponse
+ , reportWorkItemStatusResponse
+ , rwisrWorkItemServiceStates
+
+ -- ** SourceFork
+ , SourceFork
+ , sourceFork
+ , sfResidual
+ , sfPrimarySource
+ , sfPrimary
+ , sfResidualSource
+
+ -- ** StreamingComputationRanges
+ , StreamingComputationRanges
+ , streamingComputationRanges
+ , scrRangeAssignments
+ , scrComputationId
+
+ -- ** ListJobsResponse
+ , ListJobsResponse
+ , listJobsResponse
+ , ljrNextPageToken
+ , ljrJobs
+
+ -- ** Source
+ , Source
+ , source
+ , souDoesNotNeedSplitting
+ , souBaseSpecs
+ , souCodec
+ , souSpec
+ , souMetadata
+
+ -- ** ApproximateProgress
+ , ApproximateProgress
+ , approximateProgress
+ , apRemainingTime
+ , apPercentComplete
+ , apPosition
+
+ -- ** KeyRangeLocation
+ , KeyRangeLocation
+ , keyRangeLocation
+ , krlPersistentDirectory
+ , krlDataDisk
+ , krlStart
+ , krlDeliveryEndpoint
+ , krlEnd
+
+ -- ** MultiOutputInfo
+ , MultiOutputInfo
+ , multiOutputInfo
+ , moiTag
+
+ -- ** PartialGroupByKeyInstruction
+ , PartialGroupByKeyInstruction
+ , partialGroupByKeyInstruction
+ , pgbkiValueCombiningFn
+ , pgbkiInput
+ , pgbkiInputElementCodec
+
+ -- ** ParDoInstruction
+ , ParDoInstruction
+ , parDoInstruction
+ , pdiNumOutputs
+ , pdiMultiOutputInfos
+ , pdiSideInputs
+ , pdiInput
+ , pdiUserFn
+
+ -- ** CustomSourceLocation
+ , CustomSourceLocation
+ , customSourceLocation
+ , cslStateful
+
+ -- ** SourceBaseSpecsItem
+ , SourceBaseSpecsItem
+ , sourceBaseSpecsItem
+ , sbsiAddtional
+
+ -- ** ParallelInstruction
+ , ParallelInstruction
+ , parallelInstruction
+ , piRead
+ , piWrite
+ , piParDo
+ , piPartialGroupByKey
+ , piOutputs
+ , piName
+ , piSystemName
+ , piFlatten
+
+ -- ** SideInputInfoKind
+ , SideInputInfoKind
+ , sideInputInfoKind
+ , siikAddtional
+
+ -- ** SourceSplitShard
+ , SourceSplitShard
+ , sourceSplitShard
+ , sssDerivationMode
+ , sssSource
+
+ -- ** SideInputInfo
+ , SideInputInfo
+ , sideInputInfo
+ , siiTag
+ , siiKind
+ , siiSources
+
+ -- ** JobExecutionInfo
+ , JobExecutionInfo
+ , jobExecutionInfo
+ , jeiStages
+
+ -- ** SourceCodec
+ , SourceCodec
+ , sourceCodec
+ , souAddtional
+
+ -- ** StateFamilyConfig
+ , StateFamilyConfig
+ , stateFamilyConfig
+ , sfcIsRead
+ , sfcStateFamily
+
+ -- ** KeyRangeDataDiskAssignment
+ , KeyRangeDataDiskAssignment
+ , keyRangeDataDiskAssignment
+ , krddaDataDisk
+ , krddaStart
+ , krddaEnd
+
+ -- ** SourceSplitRequest
+ , SourceSplitRequest
+ , sourceSplitRequest
+ , ssrSource
+ , ssrOptions
+
+ -- ** ListJobMessagesResponse
+ , ListJobMessagesResponse
+ , listJobMessagesResponse
+ , ljmrJobMessages
+ , ljmrNextPageToken
+
+ -- ** PubsubLocation
+ , PubsubLocation
+ , pubsubLocation
+ , plTrackingSubscription
+ , plDropLateData
+ , plTimestampLabel
+ , plIdLabel
+ , plTopic
+ , plSubscription
+
+ -- ** InstructionInput
+ , InstructionInput
+ , instructionInput
+ , iiProducerInstructionIndex
+ , iiOutputNum
+
+ -- ** SeqMapTask
+ , SeqMapTask
+ , seqMapTask
+ , smtInputs
+ , smtName
+ , smtOutputInfos
+ , smtSystemName
+ , smtStageName
+ , smtUserFn
+
+ -- ** SourceOperationRequest
+ , SourceOperationRequest
+ , sourceOperationRequest
+ , sSplit
+ , sGetMetadata
+
+ -- ** LeaseWorkItemResponse
+ , LeaseWorkItemResponse
+ , leaseWorkItemResponse
+ , lwirWorkItems
+
+ -- ** Position
+ , Position
+ , position
+ , pByteOffSet
+ , pConcatPosition
+ , pRecordIndex
+ , pShufflePosition
+ , pKey
+ , pEnd
+ ) where
+
+import Network.Google.Dataflow.Types
+import Network.Google.Prelude
+import Network.Google.Resource.Dataflow.Projects.Jobs.Create
+import Network.Google.Resource.Dataflow.Projects.Jobs.Get
+import Network.Google.Resource.Dataflow.Projects.Jobs.GetMetrics
+import Network.Google.Resource.Dataflow.Projects.Jobs.List
+import Network.Google.Resource.Dataflow.Projects.Jobs.Messages.List
+import Network.Google.Resource.Dataflow.Projects.Jobs.Update
+import Network.Google.Resource.Dataflow.Projects.Jobs.WorkItems.Lease
+import Network.Google.Resource.Dataflow.Projects.Jobs.WorkItems.ReportStatus
+
+{- $resources
+TODO
+-}
+
+-- | Represents the entirety of the methods and resources available for the Google Dataflow API service.
+type DataflowAPI =
+ ProjectsJobsWorkItemsLeaseResource :<|>
+ ProjectsJobsWorkItemsReportStatusResource
+ :<|> ProjectsJobsMessagesListResource
+ :<|> ProjectsJobsListResource
+ :<|> ProjectsJobsGetResource
+ :<|> ProjectsJobsCreateResource
+ :<|> ProjectsJobsUpdateResource
+ :<|> ProjectsJobsGetMetricsResource
diff --git a/gen/Network/Google/Dataflow/Types.hs b/gen/Network/Google/Dataflow/Types.hs
new file mode 100644
index 0000000..852ee89
--- /dev/null
+++ b/gen/Network/Google/Dataflow/Types.hs
@@ -0,0 +1,721 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# LANGUAGE OverloadedStrings #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- |
+-- Module : Network.Google.Dataflow.Types
+-- Copyright : (c) 2015 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+module Network.Google.Dataflow.Types
+ (
+ -- * Service Configuration
+ dataflowService
+
+ -- * OAuth Scopes
+ , userinfoEmailScope
+ , cloudPlatformScope
+
+ -- * JobExecutionInfoStages
+ , JobExecutionInfoStages
+ , jobExecutionInfoStages
+ , jeisAddtional
+
+ -- * ComputationTopology
+ , ComputationTopology
+ , computationTopology
+ , ctStateFamilies
+ , ctUserStageName
+ , ctInputs
+ , ctKeyRanges
+ , ctOutputs
+ , ctComputationId
+ , ctSystemStageName
+
+ -- * SourceSplitResponse
+ , SourceSplitResponse
+ , sourceSplitResponse
+ , ssrBundles
+ , ssrShards
+ , ssrOutcome
+
+ -- * Status
+ , Status
+ , status
+ , sDetails
+ , sCode
+ , sMessage
+
+ -- * WorkItem
+ , WorkItem
+ , workItem
+ , wiJobId
+ , wiReportStatusInterval
+ , wiShellTask
+ , wiStreamingSetupTask
+ , wiInitialReportIndex
+ , wiMapTask
+ , wiPackages
+ , wiStreamingComputationTask
+ , wiSourceOperationTask
+ , wiId
+ , wiProjectId
+ , wiLeaseExpireTime
+ , wiConfiguration
+ , wiSeqMapTask
+
+ -- * SourceSplitOptions
+ , SourceSplitOptions
+ , sourceSplitOptions
+ , ssoDesiredShardSizeBytes
+ , ssoDesiredBundleSizeBytes
+
+ -- * WorkerPoolMetadata
+ , WorkerPoolMetadata
+ , workerPoolMetadata
+ , wpmAddtional
+
+ -- * AutoscalingSettings
+ , AutoscalingSettings
+ , autoscalingSettings
+ , asMaxNumWorkers
+ , asAlgorithm
+
+ -- * JobExecutionStageInfo
+ , JobExecutionStageInfo
+ , jobExecutionStageInfo
+ , jesiStepName
+
+ -- * InstructionOutput
+ , InstructionOutput
+ , instructionOutput
+ , ioCodec
+ , ioName
+ , ioSystemName
+
+ -- * ReportWorkItemStatusRequest
+ , ReportWorkItemStatusRequest
+ , reportWorkItemStatusRequest
+ , rwisrCurrentWorkerTime
+ , rwisrWorkItemStatuses
+ , rwisrWorkerId
+
+ -- * EnvironmentVersion
+ , EnvironmentVersion
+ , environmentVersion
+ , evAddtional
+
+ -- * Sink
+ , Sink
+ , sink
+ , sCodec
+ , sSpec
+
+ -- * MetricStructuredName
+ , MetricStructuredName
+ , metricStructuredName
+ , msnOrigin
+ , msnContext
+ , msnName
+
+ -- * WriteInstruction
+ , WriteInstruction
+ , writeInstruction
+ , wiSink
+ , wiInput
+
+ -- * EnvironmentUserAgent
+ , EnvironmentUserAgent
+ , environmentUserAgent
+ , euaAddtional
+
+ -- * Disk
+ , Disk
+ , disk
+ , dSizeGb
+ , dDiskType
+ , dMountPoint
+
+ -- * MetricUpdate
+ , MetricUpdate
+ , metricUpdate
+ , muMeanSum
+ , muInternal
+ , muSet
+ , muCumulative
+ , muKind
+ , muUpdateTime
+ , muMeanCount
+ , muName
+ , muScalar
+
+ -- * SourceGetMetadataResponse
+ , SourceGetMetadataResponse
+ , sourceGetMetadataResponse
+ , sgmrMetadata
+
+ -- * Environment
+ , Environment
+ , environment
+ , eDataSet
+ , eExperiments
+ , eWorkerPools
+ , eClusterManagerAPIService
+ , eVersion
+ , eInternalExperiments
+ , eTempStoragePrefix
+ , eUserAgent
+ , eSdkPipelineOptions
+
+ -- * ConcatPosition
+ , ConcatPosition
+ , concatPosition
+ , cpIndex
+ , cpPosition
+
+ -- * MetricStructuredNameContext
+ , MetricStructuredNameContext
+ , metricStructuredNameContext
+ , msncAddtional
+
+ -- * StreamingStageLocation
+ , StreamingStageLocation
+ , streamingStageLocation
+ , sslStreamId
+
+ -- * DerivedSource
+ , DerivedSource
+ , derivedSource
+ , dsDerivationMode
+ , dsSource
+
+ -- * JobMetrics
+ , JobMetrics
+ , jobMetrics
+ , jmMetrics
+ , jmMetricTime
+
+ -- * WorkItemStatus
+ , WorkItemStatus
+ , workItemStatus
+ , wisProgress
+ , wisSourceOperationResponse
+ , wisStopPosition
+ , wisDynamicSourceSplit
+ , wisCompleted
+ , wisSourceFork
+ , wisReportIndex
+ , wisRequestedLeaseDuration
+ , wisErrors
+ , wisMetricUpdates
+ , wisWorkItemId
+
+ -- * FlattenInstruction
+ , FlattenInstruction
+ , flattenInstruction
+ , fiInputs
+
+ -- * JobTransformNameMApping
+ , JobTransformNameMApping
+ , jobTransformNameMApping
+ , jtnmaAddtional
+
+ -- * SourceSpec
+ , SourceSpec
+ , sourceSpec
+ , ssAddtional
+
+ -- * SourceMetadata
+ , SourceMetadata
+ , sourceMetadata
+ , smEstimatedSizeBytes
+ , smProducesSortedKeys
+ , smInfinite
+
+ -- * EnvironmentInternalExperiments
+ , EnvironmentInternalExperiments
+ , environmentInternalExperiments
+ , eieAddtional
+
+ -- * TaskRunnerSettings
+ , TaskRunnerSettings
+ , taskRunnerSettings
+ , trsContinueOnException
+ , trsHarnessCommand
+ , trsWorkflowFileName
+ , trsTaskGroup
+ , trsAlsologtostderr
+ , trsDataflowAPIVersion
+ , trsLogDir
+ , trsCommandlinesFileName
+ , trsVMId
+ , trsBaseURL
+ , trsOAuthScopes
+ , trsTaskUser
+ , trsStreamingWorkerMainClass
+ , trsBaseTaskDir
+ , trsLogUploadLocation
+ , trsTempStoragePrefix
+ , trsLogToSerialconsole
+ , trsParallelWorkerSettings
+ , trsLanguageHint
+
+ -- * EnvironmentSdkPipelineOptions
+ , EnvironmentSdkPipelineOptions
+ , environmentSdkPipelineOptions
+ , espoAddtional
+
+ -- * LeaseWorkItemRequest
+ , LeaseWorkItemRequest
+ , leaseWorkItemRequest
+ , lwirWorkItemTypes
+ , lwirCurrentWorkerTime
+ , lwirWorkerCapabilities
+ , lwirRequestedLeaseDuration
+ , lwirWorkerId
+
+ -- * SourceOperationResponse
+ , SourceOperationResponse
+ , sourceOperationResponse
+ , sorSplit
+ , sorGetMetadata
+
+ -- * TopologyConfigUserStageToComputationNameMap
+ , TopologyConfigUserStageToComputationNameMap
+ , topologyConfigUserStageToComputationNameMap
+ , tcustcnmAddtional
+
+ -- * ShellTask
+ , ShellTask
+ , shellTask
+ , stCommand
+ , stExitCode
+
+ -- * StatusDetailsItem
+ , StatusDetailsItem
+ , statusDetailsItem
+ , sdiAddtional
+
+ -- * StepProperties
+ , StepProperties
+ , stepProperties
+ , spAddtional
+
+ -- * TopologyConfig
+ , TopologyConfig
+ , topologyConfig
+ , tcDataDiskAssignments
+ , tcUserStageToComputationNameMap
+ , tcComputations
+
+ -- * WorkerSettings
+ , WorkerSettings
+ , workerSettings
+ , wsServicePath
+ , wsBaseURL
+ , wsShuffleServicePath
+ , wsTempStoragePrefix
+ , wsReportingEnabled
+ , wsWorkerId
+
+ -- * WorkItemServiceStateHarnessData
+ , WorkItemServiceStateHarnessData
+ , workItemServiceStateHarnessData
+ , wisshdAddtional
+
+ -- * DataDiskAssignment
+ , DataDiskAssignment
+ , dataDiskAssignment
+ , ddaVMInstance
+ , ddaDataDisks
+
+ -- * WorkItemServiceState
+ , WorkItemServiceState
+ , workItemServiceState
+ , wissNextReportIndex
+ , wissReportStatusInterval
+ , wissHarnessData
+ , wissSuggestedStopPoint
+ , wissSuggestedStopPosition
+ , wissLeaseExpireTime
+
+ -- * StreamingSetupTask
+ , StreamingSetupTask
+ , streamingSetupTask
+ , sstStreamingComputationTopology
+ , sstReceiveWorkPort
+ , sstWorkerHarnessPort
+
+ -- * PartialGroupByKeyInstructionInputElementCodec
+ , PartialGroupByKeyInstructionInputElementCodec
+ , partialGroupByKeyInstructionInputElementCodec
+ , pgbkiiecAddtional
+
+ -- * MapTask
+ , MapTask
+ , mapTask
+ , mtInstructions
+ , mtSystemName
+ , mtStageName
+
+ -- * MountedDataDisk
+ , MountedDataDisk
+ , mountedDataDisk
+ , mddDataDisk
+
+ -- * SinkCodec
+ , SinkCodec
+ , sinkCodec
+ , scAddtional
+
+ -- * ParDoInstructionUserFn
+ , ParDoInstructionUserFn
+ , parDoInstructionUserFn
+ , pdiufAddtional
+
+ -- * InstructionOutputCodec
+ , InstructionOutputCodec
+ , instructionOutputCodec
+ , iocAddtional
+
+ -- * StreamLocation
+ , StreamLocation
+ , streamLocation
+ , slStreamingStageLocation
+ , slSideInputLocation
+ , slCustomSourceLocation
+ , slPubsubLocation
+
+ -- * WorkerPoolPoolArgs
+ , WorkerPoolPoolArgs
+ , workerPoolPoolArgs
+ , wppaAddtional
+
+ -- * StreamingSideInputLocation
+ , StreamingSideInputLocation
+ , streamingSideInputLocation
+ , ssilTag
+ , ssilStateFamily
+
+ -- * StreamingComputationTask
+ , StreamingComputationTask
+ , streamingComputationTask
+ , sctTaskType
+ , sctDataDisks
+ , sctComputationRanges
+
+ -- * JobMessage
+ , JobMessage
+ , jobMessage
+ , jmTime
+ , jmMessageText
+ , jmMessageImportance
+ , jmId
+
+ -- * SeqMapTaskOutputInfo
+ , SeqMapTaskOutputInfo
+ , seqMapTaskOutputInfo
+ , smtoiSink
+ , smtoiTag
+
+ -- * SourceGetMetadataRequest
+ , SourceGetMetadataRequest
+ , sourceGetMetadataRequest
+ , sgmrSource
+
+ -- * SeqMapTaskUserFn
+ , SeqMapTaskUserFn
+ , seqMapTaskUserFn
+ , smtufAddtional
+
+ -- * PartialGroupByKeyInstructionValueCombiningFn
+ , PartialGroupByKeyInstructionValueCombiningFn
+ , partialGroupByKeyInstructionValueCombiningFn
+ , pgbkivcfAddtional
+
+ -- * Job
+ , Job
+ , job
+ , jRequestedState
+ , jEnvironment
+ , jClientRequestId
+ , jCurrentState
+ , jReplacedByJobId
+ , jSteps
+ , jExecutionInfo
+ , jName
+ , jTransformNameMApping
+ , jId
+ , jProjectId
+ , jType
+ , jCurrentStateTime
+ , jReplaceJobId
+ , jCreateTime
+
+ -- * ReadInstruction
+ , ReadInstruction
+ , readInstruction
+ , riSource
+
+ -- * SinkSpec
+ , SinkSpec
+ , sinkSpec
+ , sAddtional
+
+ -- * WorkerPool
+ , WorkerPool
+ , workerPool
+ , wpAutoscalingSettings
+ , wpDiskSizeGb
+ , wpKind
+ , wpTaskrunnerSettings
+ , wpNumWorkers
+ , wpNetwork
+ , wpZone
+ , wpPackages
+ , wpOnHostMaintenance
+ , wpDiskSourceImage
+ , wpMachineType
+ , wpMetadata
+ , wpDiskType
+ , wpTeardownPolicy
+ , wpDefaultPackageSet
+ , wpPoolArgs
+ , wpDataDisks
+
+ -- * Step
+ , Step
+ , step
+ , sKind
+ , sName
+ , sProperties
+
+ -- * Package
+ , Package
+ , package
+ , pLocation
+ , pName
+
+ -- * DynamicSourceSplit
+ , DynamicSourceSplit
+ , dynamicSourceSplit
+ , dssResidual
+ , dssPrimary
+
+ -- * ReportWorkItemStatusResponse
+ , ReportWorkItemStatusResponse
+ , reportWorkItemStatusResponse
+ , rwisrWorkItemServiceStates
+
+ -- * SourceFork
+ , SourceFork
+ , sourceFork
+ , sfResidual
+ , sfPrimarySource
+ , sfPrimary
+ , sfResidualSource
+
+ -- * StreamingComputationRanges
+ , StreamingComputationRanges
+ , streamingComputationRanges
+ , scrRangeAssignments
+ , scrComputationId
+
+ -- * ListJobsResponse
+ , ListJobsResponse
+ , listJobsResponse
+ , ljrNextPageToken
+ , ljrJobs
+
+ -- * Source
+ , Source
+ , source
+ , souDoesNotNeedSplitting
+ , souBaseSpecs
+ , souCodec
+ , souSpec
+ , souMetadata
+
+ -- * ApproximateProgress
+ , ApproximateProgress
+ , approximateProgress
+ , apRemainingTime
+ , apPercentComplete
+ , apPosition
+
+ -- * KeyRangeLocation
+ , KeyRangeLocation
+ , keyRangeLocation
+ , krlPersistentDirectory
+ , krlDataDisk
+ , krlStart
+ , krlDeliveryEndpoint
+ , krlEnd
+
+ -- * MultiOutputInfo
+ , MultiOutputInfo
+ , multiOutputInfo
+ , moiTag
+
+ -- * PartialGroupByKeyInstruction
+ , PartialGroupByKeyInstruction
+ , partialGroupByKeyInstruction
+ , pgbkiValueCombiningFn
+ , pgbkiInput
+ , pgbkiInputElementCodec
+
+ -- * ParDoInstruction
+ , ParDoInstruction
+ , parDoInstruction
+ , pdiNumOutputs
+ , pdiMultiOutputInfos
+ , pdiSideInputs
+ , pdiInput
+ , pdiUserFn
+
+ -- * CustomSourceLocation
+ , CustomSourceLocation
+ , customSourceLocation
+ , cslStateful
+
+ -- * SourceBaseSpecsItem
+ , SourceBaseSpecsItem
+ , sourceBaseSpecsItem
+ , sbsiAddtional
+
+ -- * ParallelInstruction
+ , ParallelInstruction
+ , parallelInstruction
+ , piRead
+ , piWrite
+ , piParDo
+ , piPartialGroupByKey
+ , piOutputs
+ , piName
+ , piSystemName
+ , piFlatten
+
+ -- * SideInputInfoKind
+ , SideInputInfoKind
+ , sideInputInfoKind
+ , siikAddtional
+
+ -- * SourceSplitShard
+ , SourceSplitShard
+ , sourceSplitShard
+ , sssDerivationMode
+ , sssSource
+
+ -- * SideInputInfo
+ , SideInputInfo
+ , sideInputInfo
+ , siiTag
+ , siiKind
+ , siiSources
+
+ -- * JobExecutionInfo
+ , JobExecutionInfo
+ , jobExecutionInfo
+ , jeiStages
+
+ -- * SourceCodec
+ , SourceCodec
+ , sourceCodec
+ , souAddtional
+
+ -- * StateFamilyConfig
+ , StateFamilyConfig
+ , stateFamilyConfig
+ , sfcIsRead
+ , sfcStateFamily
+
+ -- * KeyRangeDataDiskAssignment
+ , KeyRangeDataDiskAssignment
+ , keyRangeDataDiskAssignment
+ , krddaDataDisk
+ , krddaStart
+ , krddaEnd
+
+ -- * SourceSplitRequest
+ , SourceSplitRequest
+ , sourceSplitRequest
+ , ssrSource
+ , ssrOptions
+
+ -- * ListJobMessagesResponse
+ , ListJobMessagesResponse
+ , listJobMessagesResponse
+ , ljmrJobMessages
+ , ljmrNextPageToken
+
+ -- * PubsubLocation
+ , PubsubLocation
+ , pubsubLocation
+ , plTrackingSubscription
+ , plDropLateData
+ , plTimestampLabel
+ , plIdLabel
+ , plTopic
+ , plSubscription
+
+ -- * InstructionInput
+ , InstructionInput
+ , instructionInput
+ , iiProducerInstructionIndex
+ , iiOutputNum
+
+ -- * SeqMapTask
+ , SeqMapTask
+ , seqMapTask
+ , smtInputs
+ , smtName
+ , smtOutputInfos
+ , smtSystemName
+ , smtStageName
+ , smtUserFn
+
+ -- * SourceOperationRequest
+ , SourceOperationRequest
+ , sourceOperationRequest
+ , sSplit
+ , sGetMetadata
+
+ -- * LeaseWorkItemResponse
+ , LeaseWorkItemResponse
+ , leaseWorkItemResponse
+ , lwirWorkItems
+
+ -- * Position
+ , Position
+ , position
+ , pByteOffSet
+ , pConcatPosition
+ , pRecordIndex
+ , pShufflePosition
+ , pKey
+ , pEnd
+ ) where
+
+import Network.Google.Dataflow.Types.Product
+import Network.Google.Dataflow.Types.Sum
+import Network.Google.Prelude
+
+-- | Default request referring to version 'v1b3' of the Google Dataflow API. This contains the host and root path used as a starting point for constructing service requests.
+dataflowService :: Service
+dataflowService
+ = defaultService (ServiceId "dataflow:v1b3")
+ "dataflow.googleapis.com"
+
+-- | View your email address
+userinfoEmailScope :: OAuthScope
+userinfoEmailScope = "https://www.googleapis.com/auth/userinfo.email";
+
+-- | View and manage your data across Google Cloud Platform services
+cloudPlatformScope :: OAuthScope
+cloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform";
diff --git a/gen/Network/Google/Dataflow/Types/Product.hs b/gen/Network/Google/Dataflow/Types/Product.hs
new file mode 100644
index 0000000..3e0fac0
--- /dev/null
+++ b/gen/Network/Google/Dataflow/Types/Product.hs
@@ -0,0 +1,6244 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- |
+-- Module : Network.Google.Dataflow.Types.Product
+-- Copyright : (c) 2015 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+module Network.Google.Dataflow.Types.Product where
+
+import Network.Google.Dataflow.Types.Sum
+import Network.Google.Prelude
+
+-- | A mapping from each stage to the information about that stage.
+--
+-- /See:/ 'jobExecutionInfoStages' smart constructor.
+newtype JobExecutionInfoStages = JobExecutionInfoStages
+ { _jeisAddtional :: HashMap Text JobExecutionStageInfo
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'JobExecutionInfoStages' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'jeisAddtional'
+jobExecutionInfoStages
+ :: HashMap Text JobExecutionStageInfo -- ^ 'jeisAddtional'
+ -> JobExecutionInfoStages
+jobExecutionInfoStages pJeisAddtional_ =
+ JobExecutionInfoStages
+ { _jeisAddtional = _Coerce # pJeisAddtional_
+ }
+
+jeisAddtional :: Lens' JobExecutionInfoStages (HashMap Text JobExecutionStageInfo)
+jeisAddtional
+ = lens _jeisAddtional
+ (\ s a -> s{_jeisAddtional = a})
+ . _Coerce
+
+instance FromJSON JobExecutionInfoStages where
+ parseJSON
+ = withObject "JobExecutionInfoStages"
+ (\ o ->
+ JobExecutionInfoStages <$> (parseJSONObject o))
+
+instance ToJSON JobExecutionInfoStages where
+ toJSON = toJSON . _jeisAddtional
+
+-- | All configuration data for a particular Computation.
+--
+-- /See:/ 'computationTopology' smart constructor.
+data ComputationTopology = ComputationTopology
+ { _ctStateFamilies :: !(Maybe [StateFamilyConfig])
+ , _ctUserStageName :: !(Maybe Text)
+ , _ctInputs :: !(Maybe [StreamLocation])
+ , _ctKeyRanges :: !(Maybe [KeyRangeLocation])
+ , _ctOutputs :: !(Maybe [StreamLocation])
+ , _ctComputationId :: !(Maybe Text)
+ , _ctSystemStageName :: !(Maybe Text)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ComputationTopology' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ctStateFamilies'
+--
+-- * 'ctUserStageName'
+--
+-- * 'ctInputs'
+--
+-- * 'ctKeyRanges'
+--
+-- * 'ctOutputs'
+--
+-- * 'ctComputationId'
+--
+-- * 'ctSystemStageName'
+computationTopology
+ :: ComputationTopology
+computationTopology =
+ ComputationTopology
+ { _ctStateFamilies = Nothing
+ , _ctUserStageName = Nothing
+ , _ctInputs = Nothing
+ , _ctKeyRanges = Nothing
+ , _ctOutputs = Nothing
+ , _ctComputationId = Nothing
+ , _ctSystemStageName = Nothing
+ }
+
+-- | The state family values.
+ctStateFamilies :: Lens' ComputationTopology [StateFamilyConfig]
+ctStateFamilies
+ = lens _ctStateFamilies
+ (\ s a -> s{_ctStateFamilies = a})
+ . _Default
+ . _Coerce
+
+-- | The user stage name.
+ctUserStageName :: Lens' ComputationTopology (Maybe Text)
+ctUserStageName
+ = lens _ctUserStageName
+ (\ s a -> s{_ctUserStageName = a})
+
+-- | The inputs to the computation.
+ctInputs :: Lens' ComputationTopology [StreamLocation]
+ctInputs
+ = lens _ctInputs (\ s a -> s{_ctInputs = a}) .
+ _Default
+ . _Coerce
+
+-- | The key ranges processed by the computation.
+ctKeyRanges :: Lens' ComputationTopology [KeyRangeLocation]
+ctKeyRanges
+ = lens _ctKeyRanges (\ s a -> s{_ctKeyRanges = a}) .
+ _Default
+ . _Coerce
+
+-- | The outputs from the computation.
+ctOutputs :: Lens' ComputationTopology [StreamLocation]
+ctOutputs
+ = lens _ctOutputs (\ s a -> s{_ctOutputs = a}) .
+ _Default
+ . _Coerce
+
+-- | The ID of the computation.
+ctComputationId :: Lens' ComputationTopology (Maybe Text)
+ctComputationId
+ = lens _ctComputationId
+ (\ s a -> s{_ctComputationId = a})
+
+-- | The system stage name.
+ctSystemStageName :: Lens' ComputationTopology (Maybe Text)
+ctSystemStageName
+ = lens _ctSystemStageName
+ (\ s a -> s{_ctSystemStageName = a})
+
+instance FromJSON ComputationTopology where
+ parseJSON
+ = withObject "ComputationTopology"
+ (\ o ->
+ ComputationTopology <$>
+ (o .:? "stateFamilies" .!= mempty) <*>
+ (o .:? "userStageName")
+ <*> (o .:? "inputs" .!= mempty)
+ <*> (o .:? "keyRanges" .!= mempty)
+ <*> (o .:? "outputs" .!= mempty)
+ <*> (o .:? "computationId")
+ <*> (o .:? "systemStageName"))
+
+instance ToJSON ComputationTopology where
+ toJSON ComputationTopology{..}
+ = object
+ (catMaybes
+ [("stateFamilies" .=) <$> _ctStateFamilies,
+ ("userStageName" .=) <$> _ctUserStageName,
+ ("inputs" .=) <$> _ctInputs,
+ ("keyRanges" .=) <$> _ctKeyRanges,
+ ("outputs" .=) <$> _ctOutputs,
+ ("computationId" .=) <$> _ctComputationId,
+ ("systemStageName" .=) <$> _ctSystemStageName])
+
+-- | The response to a SourceSplitRequest.
+--
+-- /See:/ 'sourceSplitResponse' smart constructor.
+data SourceSplitResponse = SourceSplitResponse
+ { _ssrBundles :: !(Maybe [DerivedSource])
+ , _ssrShards :: !(Maybe [SourceSplitShard])
+ , _ssrOutcome :: !(Maybe Text)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SourceSplitResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ssrBundles'
+--
+-- * 'ssrShards'
+--
+-- * 'ssrOutcome'
+sourceSplitResponse
+ :: SourceSplitResponse
+sourceSplitResponse =
+ SourceSplitResponse
+ { _ssrBundles = Nothing
+ , _ssrShards = Nothing
+ , _ssrOutcome = Nothing
+ }
+
+-- | 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]
+ssrBundles
+ = lens _ssrBundles (\ s a -> s{_ssrBundles = a}) .
+ _Default
+ . _Coerce
+
+-- | DEPRECATED in favor of bundles.
+ssrShards :: Lens' SourceSplitResponse [SourceSplitShard]
+ssrShards
+ = lens _ssrShards (\ s a -> s{_ssrShards = a}) .
+ _Default
+ . _Coerce
+
+-- | 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)
+ssrOutcome
+ = lens _ssrOutcome (\ s a -> s{_ssrOutcome = a})
+
+instance FromJSON SourceSplitResponse where
+ parseJSON
+ = withObject "SourceSplitResponse"
+ (\ o ->
+ SourceSplitResponse <$>
+ (o .:? "bundles" .!= mempty) <*>
+ (o .:? "shards" .!= mempty)
+ <*> (o .:? "outcome"))
+
+instance ToJSON SourceSplitResponse where
+ toJSON SourceSplitResponse{..}
+ = object
+ (catMaybes
+ [("bundles" .=) <$> _ssrBundles,
+ ("shards" .=) <$> _ssrShards,
+ ("outcome" .=) <$> _ssrOutcome])
+
+-- | The \`Status\` type defines a logical error model that is suitable for
+-- different programming environments, including REST APIs and RPC APIs. It
+-- is used by [gRPC](https:\/\/github.com\/grpc). 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.
+--
+-- /See:/ 'status' smart constructor.
+data Status = Status
+ { _sDetails :: !(Maybe [StatusDetailsItem])
+ , _sCode :: !(Maybe (Textual Int32))
+ , _sMessage :: !(Maybe Text)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Status' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'sDetails'
+--
+-- * 'sCode'
+--
+-- * 'sMessage'
+status
+ :: Status
+status =
+ Status
+ { _sDetails = Nothing
+ , _sCode = Nothing
+ , _sMessage = Nothing
+ }
+
+-- | 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]
+sDetails
+ = lens _sDetails (\ s a -> s{_sDetails = a}) .
+ _Default
+ . _Coerce
+
+-- | The status code, which should be an enum value of [google.rpc.Code][].
+sCode :: Lens' Status (Maybe Int32)
+sCode
+ = lens _sCode (\ s a -> s{_sCode = a}) .
+ mapping _Coerce
+
+-- | 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][google.rpc.Status.details] field, or
+-- localized by the client.
+sMessage :: Lens' Status (Maybe Text)
+sMessage = lens _sMessage (\ s a -> s{_sMessage = a})
+
+instance FromJSON Status where
+ parseJSON
+ = withObject "Status"
+ (\ o ->
+ Status <$>
+ (o .:? "details" .!= mempty) <*> (o .:? "code") <*>
+ (o .:? "message"))
+
+instance ToJSON Status where
+ toJSON Status{..}
+ = object
+ (catMaybes
+ [("details" .=) <$> _sDetails,
+ ("code" .=) <$> _sCode,
+ ("message" .=) <$> _sMessage])
+
+-- | WorkItem represents basic information about a WorkItem to be executed in
+-- the cloud.
+--
+-- /See:/ 'workItem' smart constructor.
+data WorkItem = WorkItem
+ { _wiJobId :: !(Maybe Text)
+ , _wiReportStatusInterval :: !(Maybe Text)
+ , _wiShellTask :: !(Maybe ShellTask)
+ , _wiStreamingSetupTask :: !(Maybe StreamingSetupTask)
+ , _wiInitialReportIndex :: !(Maybe (Textual Int64))
+ , _wiMapTask :: !(Maybe MapTask)
+ , _wiPackages :: !(Maybe [Package])
+ , _wiStreamingComputationTask :: !(Maybe StreamingComputationTask)
+ , _wiSourceOperationTask :: !(Maybe SourceOperationRequest)
+ , _wiId :: !(Maybe (Textual Int64))
+ , _wiProjectId :: !(Maybe Text)
+ , _wiLeaseExpireTime :: !(Maybe Text)
+ , _wiConfiguration :: !(Maybe Text)
+ , _wiSeqMapTask :: !(Maybe SeqMapTask)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'WorkItem' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'wiJobId'
+--
+-- * 'wiReportStatusInterval'
+--
+-- * 'wiShellTask'
+--
+-- * 'wiStreamingSetupTask'
+--
+-- * 'wiInitialReportIndex'
+--
+-- * 'wiMapTask'
+--
+-- * 'wiPackages'
+--
+-- * 'wiStreamingComputationTask'
+--
+-- * 'wiSourceOperationTask'
+--
+-- * 'wiId'
+--
+-- * 'wiProjectId'
+--
+-- * 'wiLeaseExpireTime'
+--
+-- * 'wiConfiguration'
+--
+-- * 'wiSeqMapTask'
+workItem
+ :: WorkItem
+workItem =
+ WorkItem
+ { _wiJobId = Nothing
+ , _wiReportStatusInterval = Nothing
+ , _wiShellTask = Nothing
+ , _wiStreamingSetupTask = Nothing
+ , _wiInitialReportIndex = Nothing
+ , _wiMapTask = Nothing
+ , _wiPackages = Nothing
+ , _wiStreamingComputationTask = Nothing
+ , _wiSourceOperationTask = Nothing
+ , _wiId = Nothing
+ , _wiProjectId = Nothing
+ , _wiLeaseExpireTime = Nothing
+ , _wiConfiguration = Nothing
+ , _wiSeqMapTask = Nothing
+ }
+
+-- | Identifies the workflow job this WorkItem belongs to.
+wiJobId :: Lens' WorkItem (Maybe Text)
+wiJobId = lens _wiJobId (\ s a -> s{_wiJobId = a})
+
+-- | Recommended reporting interval.
+wiReportStatusInterval :: Lens' WorkItem (Maybe Text)
+wiReportStatusInterval
+ = lens _wiReportStatusInterval
+ (\ s a -> s{_wiReportStatusInterval = a})
+
+-- | Additional information for ShellTask WorkItems.
+wiShellTask :: Lens' WorkItem (Maybe ShellTask)
+wiShellTask
+ = lens _wiShellTask (\ s a -> s{_wiShellTask = a})
+
+-- | Additional information for StreamingSetupTask WorkItems.
+wiStreamingSetupTask :: Lens' WorkItem (Maybe StreamingSetupTask)
+wiStreamingSetupTask
+ = lens _wiStreamingSetupTask
+ (\ s a -> s{_wiStreamingSetupTask = a})
+
+-- | The initial index to use when reporting the status of the WorkItem.
+wiInitialReportIndex :: Lens' WorkItem (Maybe Int64)
+wiInitialReportIndex
+ = lens _wiInitialReportIndex
+ (\ s a -> s{_wiInitialReportIndex = a})
+ . mapping _Coerce
+
+-- | Additional information for MapTask WorkItems.
+wiMapTask :: Lens' WorkItem (Maybe MapTask)
+wiMapTask
+ = lens _wiMapTask (\ s a -> s{_wiMapTask = a})
+
+-- | Any required packages that need to be fetched in order to execute this
+-- WorkItem.
+wiPackages :: Lens' WorkItem [Package]
+wiPackages
+ = lens _wiPackages (\ s a -> s{_wiPackages = a}) .
+ _Default
+ . _Coerce
+
+-- | Additional information for StreamingComputationTask WorkItems.
+wiStreamingComputationTask :: Lens' WorkItem (Maybe StreamingComputationTask)
+wiStreamingComputationTask
+ = lens _wiStreamingComputationTask
+ (\ s a -> s{_wiStreamingComputationTask = a})
+
+-- | Additional information for source operation WorkItems.
+wiSourceOperationTask :: Lens' WorkItem (Maybe SourceOperationRequest)
+wiSourceOperationTask
+ = lens _wiSourceOperationTask
+ (\ s a -> s{_wiSourceOperationTask = a})
+
+-- | Identifies this WorkItem.
+wiId :: Lens' WorkItem (Maybe Int64)
+wiId
+ = lens _wiId (\ s a -> s{_wiId = a}) .
+ mapping _Coerce
+
+-- | Identifies the cloud project this WorkItem belongs to.
+wiProjectId :: Lens' WorkItem (Maybe Text)
+wiProjectId
+ = lens _wiProjectId (\ s a -> s{_wiProjectId = a})
+
+-- | Time when the lease on this [Work][] will expire.
+wiLeaseExpireTime :: Lens' WorkItem (Maybe Text)
+wiLeaseExpireTime
+ = lens _wiLeaseExpireTime
+ (\ s a -> s{_wiLeaseExpireTime = a})
+
+-- | Work item-specific configuration as an opaque blob.
+wiConfiguration :: Lens' WorkItem (Maybe Text)
+wiConfiguration
+ = lens _wiConfiguration
+ (\ s a -> s{_wiConfiguration = a})
+
+-- | Additional information for SeqMapTask WorkItems.
+wiSeqMapTask :: Lens' WorkItem (Maybe SeqMapTask)
+wiSeqMapTask
+ = lens _wiSeqMapTask (\ s a -> s{_wiSeqMapTask = a})
+
+instance FromJSON WorkItem where
+ parseJSON
+ = withObject "WorkItem"
+ (\ o ->
+ WorkItem <$>
+ (o .:? "jobId") <*> (o .:? "reportStatusInterval")
+ <*> (o .:? "shellTask")
+ <*> (o .:? "streamingSetupTask")
+ <*> (o .:? "initialReportIndex")
+ <*> (o .:? "mapTask")
+ <*> (o .:? "packages" .!= mempty)
+ <*> (o .:? "streamingComputationTask")
+ <*> (o .:? "sourceOperationTask")
+ <*> (o .:? "id")
+ <*> (o .:? "projectId")
+ <*> (o .:? "leaseExpireTime")
+ <*> (o .:? "configuration")
+ <*> (o .:? "seqMapTask"))
+
+instance ToJSON WorkItem where
+ toJSON WorkItem{..}
+ = object
+ (catMaybes
+ [("jobId" .=) <$> _wiJobId,
+ ("reportStatusInterval" .=) <$>
+ _wiReportStatusInterval,
+ ("shellTask" .=) <$> _wiShellTask,
+ ("streamingSetupTask" .=) <$> _wiStreamingSetupTask,
+ ("initialReportIndex" .=) <$> _wiInitialReportIndex,
+ ("mapTask" .=) <$> _wiMapTask,
+ ("packages" .=) <$> _wiPackages,
+ ("streamingComputationTask" .=) <$>
+ _wiStreamingComputationTask,
+ ("sourceOperationTask" .=) <$>
+ _wiSourceOperationTask,
+ ("id" .=) <$> _wiId,
+ ("projectId" .=) <$> _wiProjectId,
+ ("leaseExpireTime" .=) <$> _wiLeaseExpireTime,
+ ("configuration" .=) <$> _wiConfiguration,
+ ("seqMapTask" .=) <$> _wiSeqMapTask])
+
+-- | Hints for splitting a Source into bundles (parts for parallel
+-- processing) using SourceSplitRequest.
+--
+-- /See:/ 'sourceSplitOptions' smart constructor.
+data SourceSplitOptions = SourceSplitOptions
+ { _ssoDesiredShardSizeBytes :: !(Maybe (Textual Int64))
+ , _ssoDesiredBundleSizeBytes :: !(Maybe (Textual Int64))
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SourceSplitOptions' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ssoDesiredShardSizeBytes'
+--
+-- * 'ssoDesiredBundleSizeBytes'
+sourceSplitOptions
+ :: SourceSplitOptions
+sourceSplitOptions =
+ SourceSplitOptions
+ { _ssoDesiredShardSizeBytes = Nothing
+ , _ssoDesiredBundleSizeBytes = Nothing
+ }
+
+-- | DEPRECATED in favor of desired_bundle_size_bytes.
+ssoDesiredShardSizeBytes :: Lens' SourceSplitOptions (Maybe Int64)
+ssoDesiredShardSizeBytes
+ = lens _ssoDesiredShardSizeBytes
+ (\ s a -> s{_ssoDesiredShardSizeBytes = a})
+ . mapping _Coerce
+
+-- | 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)
+ssoDesiredBundleSizeBytes
+ = lens _ssoDesiredBundleSizeBytes
+ (\ s a -> s{_ssoDesiredBundleSizeBytes = a})
+ . mapping _Coerce
+
+instance FromJSON SourceSplitOptions where
+ parseJSON
+ = withObject "SourceSplitOptions"
+ (\ o ->
+ SourceSplitOptions <$>
+ (o .:? "desiredShardSizeBytes") <*>
+ (o .:? "desiredBundleSizeBytes"))
+
+instance ToJSON SourceSplitOptions where
+ toJSON SourceSplitOptions{..}
+ = object
+ (catMaybes
+ [("desiredShardSizeBytes" .=) <$>
+ _ssoDesiredShardSizeBytes,
+ ("desiredBundleSizeBytes" .=) <$>
+ _ssoDesiredBundleSizeBytes])
+
+-- | Metadata to set on the Google Compute Engine VMs.
+--
+-- /See:/ 'workerPoolMetadata' smart constructor.
+newtype WorkerPoolMetadata = WorkerPoolMetadata
+ { _wpmAddtional :: HashMap Text Text
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'WorkerPoolMetadata' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'wpmAddtional'
+workerPoolMetadata
+ :: HashMap Text Text -- ^ 'wpmAddtional'
+ -> WorkerPoolMetadata
+workerPoolMetadata pWpmAddtional_ =
+ WorkerPoolMetadata
+ { _wpmAddtional = _Coerce # pWpmAddtional_
+ }
+
+wpmAddtional :: Lens' WorkerPoolMetadata (HashMap Text Text)
+wpmAddtional
+ = lens _wpmAddtional (\ s a -> s{_wpmAddtional = a})
+ . _Coerce
+
+instance FromJSON WorkerPoolMetadata where
+ parseJSON
+ = withObject "WorkerPoolMetadata"
+ (\ o -> WorkerPoolMetadata <$> (parseJSONObject o))
+
+instance ToJSON WorkerPoolMetadata where
+ toJSON = toJSON . _wpmAddtional
+
+-- | Settings for WorkerPool autoscaling.
+--
+-- /See:/ 'autoscalingSettings' smart constructor.
+data AutoscalingSettings = AutoscalingSettings
+ { _asMaxNumWorkers :: !(Maybe (Textual Int32))
+ , _asAlgorithm :: !(Maybe Text)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AutoscalingSettings' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'asMaxNumWorkers'
+--
+-- * 'asAlgorithm'
+autoscalingSettings
+ :: AutoscalingSettings
+autoscalingSettings =
+ AutoscalingSettings
+ { _asMaxNumWorkers = Nothing
+ , _asAlgorithm = Nothing
+ }
+
+-- | The maximum number of workers to cap scaling at.
+asMaxNumWorkers :: Lens' AutoscalingSettings (Maybe Int32)
+asMaxNumWorkers
+ = lens _asMaxNumWorkers
+ (\ s a -> s{_asMaxNumWorkers = a})
+ . mapping _Coerce
+
+-- | The algorithm to use for autoscaling.
+asAlgorithm :: Lens' AutoscalingSettings (Maybe Text)
+asAlgorithm
+ = lens _asAlgorithm (\ s a -> s{_asAlgorithm = a})
+
+instance FromJSON AutoscalingSettings where
+ parseJSON
+ = withObject "AutoscalingSettings"
+ (\ o ->
+ AutoscalingSettings <$>
+ (o .:? "maxNumWorkers") <*> (o .:? "algorithm"))
+
+instance ToJSON AutoscalingSettings where
+ toJSON AutoscalingSettings{..}
+ = object
+ (catMaybes
+ [("maxNumWorkers" .=) <$> _asMaxNumWorkers,
+ ("algorithm" .=) <$> _asAlgorithm])
+
+-- | Contains information about how a particular
+-- [google.dataflow.v1beta3.Step][google.dataflow.v1beta3.Step] will be
+-- executed.
+--
+-- /See:/ 'jobExecutionStageInfo' smart constructor.
+newtype JobExecutionStageInfo = JobExecutionStageInfo
+ { _jesiStepName :: Maybe [Text]
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'JobExecutionStageInfo' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'jesiStepName'
+jobExecutionStageInfo
+ :: JobExecutionStageInfo
+jobExecutionStageInfo =
+ JobExecutionStageInfo
+ { _jesiStepName = Nothing
+ }
+
+-- | 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]
+jesiStepName
+ = lens _jesiStepName (\ s a -> s{_jesiStepName = a})
+ . _Default
+ . _Coerce
+
+instance FromJSON JobExecutionStageInfo where
+ parseJSON
+ = withObject "JobExecutionStageInfo"
+ (\ o ->
+ JobExecutionStageInfo <$>
+ (o .:? "stepName" .!= mempty))
+
+instance ToJSON JobExecutionStageInfo where
+ toJSON JobExecutionStageInfo{..}
+ = object
+ (catMaybes [("stepName" .=) <$> _jesiStepName])
+
+-- | An output of an instruction.
+--
+-- /See:/ 'instructionOutput' smart constructor.
+data InstructionOutput = InstructionOutput
+ { _ioCodec :: !(Maybe InstructionOutputCodec)
+ , _ioName :: !(Maybe Text)
+ , _ioSystemName :: !(Maybe Text)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'InstructionOutput' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ioCodec'
+--
+-- * 'ioName'
+--
+-- * 'ioSystemName'
+instructionOutput
+ :: InstructionOutput
+instructionOutput =
+ InstructionOutput
+ { _ioCodec = Nothing
+ , _ioName = Nothing
+ , _ioSystemName = Nothing
+ }
+
+-- | The codec to use to encode data being written via this output.
+ioCodec :: Lens' InstructionOutput (Maybe InstructionOutputCodec)
+ioCodec = lens _ioCodec (\ s a -> s{_ioCodec = a})
+
+-- | The user-provided name of this output.
+ioName :: Lens' InstructionOutput (Maybe Text)
+ioName = lens _ioName (\ s a -> s{_ioName = a})
+
+-- | System-defined name of this output. Unique across the workflow.
+ioSystemName :: Lens' InstructionOutput (Maybe Text)
+ioSystemName
+ = lens _ioSystemName (\ s a -> s{_ioSystemName = a})
+
+instance FromJSON InstructionOutput where
+ parseJSON
+ = withObject "InstructionOutput"
+ (\ o ->
+ InstructionOutput <$>
+ (o .:? "codec") <*> (o .:? "name") <*>
+ (o .:? "systemName"))
+
+instance ToJSON InstructionOutput where
+ toJSON InstructionOutput{..}
+ = object
+ (catMaybes
+ [("codec" .=) <$> _ioCodec, ("name" .=) <$> _ioName,
+ ("systemName" .=) <$> _ioSystemName])
+
+-- | Request to report the status of WorkItems.
+--
+-- /See:/ 'reportWorkItemStatusRequest' smart constructor.
+data ReportWorkItemStatusRequest = ReportWorkItemStatusRequest
+ { _rwisrCurrentWorkerTime :: !(Maybe Text)
+ , _rwisrWorkItemStatuses :: !(Maybe [WorkItemStatus])
+ , _rwisrWorkerId :: !(Maybe Text)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ReportWorkItemStatusRequest' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rwisrCurrentWorkerTime'
+--
+-- * 'rwisrWorkItemStatuses'
+--
+-- * 'rwisrWorkerId'
+reportWorkItemStatusRequest
+ :: ReportWorkItemStatusRequest
+reportWorkItemStatusRequest =
+ ReportWorkItemStatusRequest
+ { _rwisrCurrentWorkerTime = Nothing
+ , _rwisrWorkItemStatuses = Nothing
+ , _rwisrWorkerId = Nothing
+ }
+
+-- | The current timestamp at the worker.
+rwisrCurrentWorkerTime :: Lens' ReportWorkItemStatusRequest (Maybe Text)
+rwisrCurrentWorkerTime
+ = lens _rwisrCurrentWorkerTime
+ (\ s a -> s{_rwisrCurrentWorkerTime = a})
+
+-- | 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]
+rwisrWorkItemStatuses
+ = lens _rwisrWorkItemStatuses
+ (\ s a -> s{_rwisrWorkItemStatuses = a})
+ . _Default
+ . _Coerce
+
+-- | 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)
+rwisrWorkerId
+ = lens _rwisrWorkerId
+ (\ s a -> s{_rwisrWorkerId = a})
+
+instance FromJSON ReportWorkItemStatusRequest where
+ parseJSON
+ = withObject "ReportWorkItemStatusRequest"
+ (\ o ->
+ ReportWorkItemStatusRequest <$>
+ (o .:? "currentWorkerTime") <*>
+ (o .:? "workItemStatuses" .!= mempty)
+ <*> (o .:? "workerId"))
+
+instance ToJSON ReportWorkItemStatusRequest where
+ toJSON ReportWorkItemStatusRequest{..}
+ = object
+ (catMaybes
+ [("currentWorkerTime" .=) <$>
+ _rwisrCurrentWorkerTime,
+ ("workItemStatuses" .=) <$> _rwisrWorkItemStatuses,
+ ("workerId" .=) <$> _rwisrWorkerId])
+
+-- | A structure describing which components and their versions of the
+-- service are required in order to run the job.
+--
+-- /See:/ 'environmentVersion' smart constructor.
+newtype EnvironmentVersion = EnvironmentVersion
+ { _evAddtional :: HashMap Text JSONValue
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'EnvironmentVersion' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'evAddtional'
+environmentVersion
+ :: HashMap Text JSONValue -- ^ 'evAddtional'
+ -> EnvironmentVersion
+environmentVersion pEvAddtional_ =
+ EnvironmentVersion
+ { _evAddtional = _Coerce # pEvAddtional_
+ }
+
+-- | Properties of the object.
+evAddtional :: Lens' EnvironmentVersion (HashMap Text JSONValue)
+evAddtional
+ = lens _evAddtional (\ s a -> s{_evAddtional = a}) .
+ _Coerce
+
+instance FromJSON EnvironmentVersion where
+ parseJSON
+ = withObject "EnvironmentVersion"
+ (\ o -> EnvironmentVersion <$> (parseJSONObject o))
+
+instance ToJSON EnvironmentVersion where
+ toJSON = toJSON . _evAddtional
+
+-- | A sink that records can be encoded and written to.
+--
+-- /See:/ 'sink' smart constructor.
+data Sink = Sink
+ { _sCodec :: !(Maybe SinkCodec)
+ , _sSpec :: !(Maybe SinkSpec)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Sink' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'sCodec'
+--
+-- * 'sSpec'
+sink
+ :: Sink
+sink =
+ Sink
+ { _sCodec = Nothing
+ , _sSpec = Nothing
+ }
+
+-- | The codec to use to encode data written to the sink.
+sCodec :: Lens' Sink (Maybe SinkCodec)
+sCodec = lens _sCodec (\ s a -> s{_sCodec = a})
+
+-- | The sink to write to, plus its parameters.
+sSpec :: Lens' Sink (Maybe SinkSpec)
+sSpec = lens _sSpec (\ s a -> s{_sSpec = a})
+
+instance FromJSON Sink where
+ parseJSON
+ = withObject "Sink"
+ (\ o -> Sink <$> (o .:? "codec") <*> (o .:? "spec"))
+
+instance ToJSON Sink where
+ toJSON Sink{..}
+ = object
+ (catMaybes
+ [("codec" .=) <$> _sCodec, ("spec" .=) <$> _sSpec])
+
+-- | Identifies a metric, by describing the source which generated the
+-- metric.
+--
+-- /See:/ 'metricStructuredName' smart constructor.
+data MetricStructuredName = MetricStructuredName
+ { _msnOrigin :: !(Maybe Text)
+ , _msnContext :: !(Maybe MetricStructuredNameContext)
+ , _msnName :: !(Maybe Text)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'MetricStructuredName' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'msnOrigin'
+--
+-- * 'msnContext'
+--
+-- * 'msnName'
+metricStructuredName
+ :: MetricStructuredName
+metricStructuredName =
+ MetricStructuredName
+ { _msnOrigin = Nothing
+ , _msnContext = Nothing
+ , _msnName = Nothing
+ }
+
+-- | 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)
+msnOrigin
+ = lens _msnOrigin (\ s a -> s{_msnOrigin = a})
+
+-- | 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)
+msnContext
+ = lens _msnContext (\ s a -> s{_msnContext = a})
+
+-- | Worker-defined metric name.
+msnName :: Lens' MetricStructuredName (Maybe Text)
+msnName = lens _msnName (\ s a -> s{_msnName = a})
+
+instance FromJSON MetricStructuredName where
+ parseJSON
+ = withObject "MetricStructuredName"
+ (\ o ->
+ MetricStructuredName <$>
+ (o .:? "origin") <*> (o .:? "context") <*>
+ (o .:? "name"))
+
+instance ToJSON MetricStructuredName where
+ toJSON MetricStructuredName{..}
+ = object
+ (catMaybes
+ [("origin" .=) <$> _msnOrigin,
+ ("context" .=) <$> _msnContext,
+ ("name" .=) <$> _msnName])
+
+-- | An instruction that writes records. Takes one input, produces no
+-- outputs.
+--
+-- /See:/ 'writeInstruction' smart constructor.
+data WriteInstruction = WriteInstruction
+ { _wiSink :: !(Maybe Sink)
+ , _wiInput :: !(Maybe InstructionInput)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'WriteInstruction' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'wiSink'
+--
+-- * 'wiInput'
+writeInstruction
+ :: WriteInstruction
+writeInstruction =
+ WriteInstruction
+ { _wiSink = Nothing
+ , _wiInput = Nothing
+ }
+
+-- | The sink to write to.
+wiSink :: Lens' WriteInstruction (Maybe Sink)
+wiSink = lens _wiSink (\ s a -> s{_wiSink = a})
+
+-- | The input.
+wiInput :: Lens' WriteInstruction (Maybe InstructionInput)
+wiInput = lens _wiInput (\ s a -> s{_wiInput = a})
+
+instance FromJSON WriteInstruction where
+ parseJSON
+ = withObject "WriteInstruction"
+ (\ o ->
+ WriteInstruction <$>
+ (o .:? "sink") <*> (o .:? "input"))
+
+instance ToJSON WriteInstruction where
+ toJSON WriteInstruction{..}
+ = object
+ (catMaybes
+ [("sink" .=) <$> _wiSink, ("input" .=) <$> _wiInput])
+
+-- | A description of the process that generated the request.
+--
+-- /See:/ 'environmentUserAgent' smart constructor.
+newtype EnvironmentUserAgent = EnvironmentUserAgent
+ { _euaAddtional :: HashMap Text JSONValue
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'EnvironmentUserAgent' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'euaAddtional'
+environmentUserAgent
+ :: HashMap Text JSONValue -- ^ 'euaAddtional'
+ -> EnvironmentUserAgent
+environmentUserAgent pEuaAddtional_ =
+ EnvironmentUserAgent
+ { _euaAddtional = _Coerce # pEuaAddtional_
+ }
+
+-- | Properties of the object.
+euaAddtional :: Lens' EnvironmentUserAgent (HashMap Text JSONValue)
+euaAddtional
+ = lens _euaAddtional (\ s a -> s{_euaAddtional = a})
+ . _Coerce
+
+instance FromJSON EnvironmentUserAgent where
+ parseJSON
+ = withObject "EnvironmentUserAgent"
+ (\ o -> EnvironmentUserAgent <$> (parseJSONObject o))
+
+instance ToJSON EnvironmentUserAgent where
+ toJSON = toJSON . _euaAddtional
+
+-- | Describes the data disk used by a workflow job.
+--
+-- /See:/ 'disk' smart constructor.
+data Disk = Disk
+ { _dSizeGb :: !(Maybe (Textual Int32))
+ , _dDiskType :: !(Maybe Text)
+ , _dMountPoint :: !(Maybe Text)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Disk' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dSizeGb'
+--
+-- * 'dDiskType'
+--
+-- * 'dMountPoint'
+disk
+ :: Disk
+disk =
+ Disk
+ { _dSizeGb = Nothing
+ , _dDiskType = Nothing
+ , _dMountPoint = Nothing
+ }
+
+-- | Size of disk in GB. If zero or unspecified, the service will attempt to
+-- choose a reasonable default.
+dSizeGb :: Lens' Disk (Maybe Int32)
+dSizeGb
+ = lens _dSizeGb (\ s a -> s{_dSizeGb = a}) .
+ mapping _Coerce
+
+-- | 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 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\/ \/zones\/\/diskTypes\/pd-standard
+dDiskType :: Lens' Disk (Maybe Text)
+dDiskType
+ = lens _dDiskType (\ s a -> s{_dDiskType = a})
+
+-- | Directory in a VM where disk is mounted.
+dMountPoint :: Lens' Disk (Maybe Text)
+dMountPoint
+ = lens _dMountPoint (\ s a -> s{_dMountPoint = a})
+
+instance FromJSON Disk where
+ parseJSON
+ = withObject "Disk"
+ (\ o ->
+ Disk <$>
+ (o .:? "sizeGb") <*> (o .:? "diskType") <*>
+ (o .:? "mountPoint"))
+
+instance ToJSON Disk where
+ toJSON Disk{..}
+ = object
+ (catMaybes
+ [("sizeGb" .=) <$> _dSizeGb,
+ ("diskType" .=) <$> _dDiskType,
+ ("mountPoint" .=) <$> _dMountPoint])
+
+-- | Describes the state of a metric.
+--
+-- /See:/ 'metricUpdate' smart constructor.
+data MetricUpdate = MetricUpdate
+ { _muMeanSum :: !(Maybe JSONValue)
+ , _muInternal :: !(Maybe JSONValue)
+ , _muSet :: !(Maybe JSONValue)
+ , _muCumulative :: !(Maybe Bool)
+ , _muKind :: !(Maybe Text)
+ , _muUpdateTime :: !(Maybe Text)
+ , _muMeanCount :: !(Maybe JSONValue)
+ , _muName :: !(Maybe MetricStructuredName)
+ , _muScalar :: !(Maybe JSONValue)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'MetricUpdate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'muMeanSum'
+--
+-- * 'muInternal'
+--
+-- * 'muSet'
+--
+-- * 'muCumulative'
+--
+-- * 'muKind'
+--
+-- * 'muUpdateTime'
+--
+-- * 'muMeanCount'
+--
+-- * 'muName'
+--
+-- * 'muScalar'
+metricUpdate
+ :: MetricUpdate
+metricUpdate =
+ MetricUpdate
+ { _muMeanSum = Nothing
+ , _muInternal = Nothing
+ , _muSet = Nothing
+ , _muCumulative = Nothing
+ , _muKind = Nothing
+ , _muUpdateTime = Nothing
+ , _muMeanCount = Nothing
+ , _muName = Nothing
+ , _muScalar = Nothing
+ }
+
+-- | 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)
+muMeanSum
+ = lens _muMeanSum (\ s a -> s{_muMeanSum = a})
+
+-- | Worker-computed aggregate value for internal use by the Dataflow
+-- service.
+muInternal :: Lens' MetricUpdate (Maybe JSONValue)
+muInternal
+ = lens _muInternal (\ s a -> s{_muInternal = a})
+
+-- | 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)
+muSet = lens _muSet (\ s a -> s{_muSet = a})
+
+-- | 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)
+muCumulative
+ = lens _muCumulative (\ s a -> s{_muCumulative = a})
+
+-- | 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)
+muKind = lens _muKind (\ s a -> s{_muKind = a})
+
+-- | 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)
+muUpdateTime
+ = lens _muUpdateTime (\ s a -> s{_muUpdateTime = a})
+
+-- | 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)
+muMeanCount
+ = lens _muMeanCount (\ s a -> s{_muMeanCount = a})
+
+-- | Name of the metric.
+muName :: Lens' MetricUpdate (Maybe MetricStructuredName)
+muName = lens _muName (\ s a -> s{_muName = a})
+
+-- | 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)
+muScalar = lens _muScalar (\ s a -> s{_muScalar = a})
+
+instance FromJSON MetricUpdate where
+ parseJSON
+ = withObject "MetricUpdate"
+ (\ o ->
+ MetricUpdate <$>
+ (o .:? "meanSum") <*> (o .:? "internal") <*>
+ (o .:? "set")
+ <*> (o .:? "cumulative")
+ <*> (o .:? "kind")
+ <*> (o .:? "updateTime")
+ <*> (o .:? "meanCount")
+ <*> (o .:? "name")
+ <*> (o .:? "scalar"))
+
+instance ToJSON MetricUpdate where
+ toJSON MetricUpdate{..}
+ = object
+ (catMaybes
+ [("meanSum" .=) <$> _muMeanSum,
+ ("internal" .=) <$> _muInternal,
+ ("set" .=) <$> _muSet,
+ ("cumulative" .=) <$> _muCumulative,
+ ("kind" .=) <$> _muKind,
+ ("updateTime" .=) <$> _muUpdateTime,
+ ("meanCount" .=) <$> _muMeanCount,
+ ("name" .=) <$> _muName,
+ ("scalar" .=) <$> _muScalar])
+
+-- | The result of a SourceGetMetadataOperation.
+--
+-- /See:/ 'sourceGetMetadataResponse' smart constructor.
+newtype SourceGetMetadataResponse = SourceGetMetadataResponse
+ { _sgmrMetadata :: Maybe SourceMetadata
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SourceGetMetadataResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'sgmrMetadata'
+sourceGetMetadataResponse
+ :: SourceGetMetadataResponse
+sourceGetMetadataResponse =
+ SourceGetMetadataResponse
+ { _sgmrMetadata = Nothing
+ }
+
+-- | The computed metadata.
+sgmrMetadata :: Lens' SourceGetMetadataResponse (Maybe SourceMetadata)
+sgmrMetadata
+ = lens _sgmrMetadata (\ s a -> s{_sgmrMetadata = a})
+
+instance FromJSON SourceGetMetadataResponse where
+ parseJSON
+ = withObject "SourceGetMetadataResponse"
+ (\ o ->
+ SourceGetMetadataResponse <$> (o .:? "metadata"))
+
+instance ToJSON SourceGetMetadataResponse where
+ toJSON SourceGetMetadataResponse{..}
+ = object
+ (catMaybes [("metadata" .=) <$> _sgmrMetadata])
+
+-- | Describes the environment in which a Dataflow Job runs.
+--
+-- /See:/ 'environment' smart constructor.
+data Environment = Environment
+ { _eDataSet :: !(Maybe Text)
+ , _eExperiments :: !(Maybe [Text])
+ , _eWorkerPools :: !(Maybe [WorkerPool])
+ , _eClusterManagerAPIService :: !(Maybe Text)
+ , _eVersion :: !(Maybe EnvironmentVersion)
+ , _eInternalExperiments :: !(Maybe EnvironmentInternalExperiments)
+ , _eTempStoragePrefix :: !(Maybe Text)
+ , _eUserAgent :: !(Maybe EnvironmentUserAgent)
+ , _eSdkPipelineOptions :: !(Maybe EnvironmentSdkPipelineOptions)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Environment' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'eDataSet'
+--
+-- * 'eExperiments'
+--
+-- * 'eWorkerPools'
+--
+-- * 'eClusterManagerAPIService'
+--
+-- * 'eVersion'
+--
+-- * 'eInternalExperiments'
+--
+-- * 'eTempStoragePrefix'
+--
+-- * 'eUserAgent'
+--
+-- * 'eSdkPipelineOptions'
+environment
+ :: Environment
+environment =
+ Environment
+ { _eDataSet = Nothing
+ , _eExperiments = Nothing
+ , _eWorkerPools = Nothing
+ , _eClusterManagerAPIService = Nothing
+ , _eVersion = Nothing
+ , _eInternalExperiments = Nothing
+ , _eTempStoragePrefix = Nothing
+ , _eUserAgent = Nothing
+ , _eSdkPipelineOptions = Nothing
+ }
+
+-- | 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)
+eDataSet = lens _eDataSet (\ s a -> s{_eDataSet = a})
+
+-- | The list of experiments to enable.
+eExperiments :: Lens' Environment [Text]
+eExperiments
+ = lens _eExperiments (\ s a -> s{_eExperiments = a})
+ . _Default
+ . _Coerce
+
+-- | Worker pools. At least one \"harness\" worker pool must be specified in
+-- order for the job to have workers.
+eWorkerPools :: Lens' Environment [WorkerPool]
+eWorkerPools
+ = lens _eWorkerPools (\ s a -> s{_eWorkerPools = a})
+ . _Default
+ . _Coerce
+
+-- | 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)
+eClusterManagerAPIService
+ = lens _eClusterManagerAPIService
+ (\ s a -> s{_eClusterManagerAPIService = a})
+
+-- | A structure describing which components and their versions of the
+-- service are required in order to run the job.
+eVersion :: Lens' Environment (Maybe EnvironmentVersion)
+eVersion = lens _eVersion (\ s a -> s{_eVersion = a})
+
+-- | Experimental settings.
+eInternalExperiments :: Lens' Environment (Maybe EnvironmentInternalExperiments)
+eInternalExperiments
+ = lens _eInternalExperiments
+ (\ s a -> s{_eInternalExperiments = a})
+
+-- | 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)
+eTempStoragePrefix
+ = lens _eTempStoragePrefix
+ (\ s a -> s{_eTempStoragePrefix = a})
+
+-- | A description of the process that generated the request.
+eUserAgent :: Lens' Environment (Maybe EnvironmentUserAgent)
+eUserAgent
+ = lens _eUserAgent (\ s a -> s{_eUserAgent = a})
+
+-- | The 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)
+eSdkPipelineOptions
+ = lens _eSdkPipelineOptions
+ (\ s a -> s{_eSdkPipelineOptions = a})
+
+instance FromJSON Environment where
+ parseJSON
+ = withObject "Environment"
+ (\ o ->
+ Environment <$>
+ (o .:? "dataset") <*>
+ (o .:? "experiments" .!= mempty)
+ <*> (o .:? "workerPools" .!= mempty)
+ <*> (o .:? "clusterManagerApiService")
+ <*> (o .:? "version")
+ <*> (o .:? "internalExperiments")
+ <*> (o .:? "tempStoragePrefix")
+ <*> (o .:? "userAgent")
+ <*> (o .:? "sdkPipelineOptions"))
+
+instance ToJSON Environment where
+ toJSON Environment{..}
+ = object
+ (catMaybes
+ [("dataset" .=) <$> _eDataSet,
+ ("experiments" .=) <$> _eExperiments,
+ ("workerPools" .=) <$> _eWorkerPools,
+ ("clusterManagerApiService" .=) <$>
+ _eClusterManagerAPIService,
+ ("version" .=) <$> _eVersion,
+ ("internalExperiments" .=) <$> _eInternalExperiments,
+ ("tempStoragePrefix" .=) <$> _eTempStoragePrefix,
+ ("userAgent" .=) <$> _eUserAgent,
+ ("sdkPipelineOptions" .=) <$> _eSdkPipelineOptions])
+
+-- | 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.
+--
+-- /See:/ 'concatPosition' smart constructor.
+data ConcatPosition = ConcatPosition
+ { _cpIndex :: !(Maybe (Textual Int32))
+ , _cpPosition :: !(Maybe Position)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ConcatPosition' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cpIndex'
+--
+-- * 'cpPosition'
+concatPosition
+ :: ConcatPosition
+concatPosition =
+ ConcatPosition
+ { _cpIndex = Nothing
+ , _cpPosition = Nothing
+ }
+
+-- | Index of the inner source.
+cpIndex :: Lens' ConcatPosition (Maybe Int32)
+cpIndex
+ = lens _cpIndex (\ s a -> s{_cpIndex = a}) .
+ mapping _Coerce
+
+-- | Position within the inner source.
+cpPosition :: Lens' ConcatPosition (Maybe Position)
+cpPosition
+ = lens _cpPosition (\ s a -> s{_cpPosition = a})
+
+instance FromJSON ConcatPosition where
+ parseJSON
+ = withObject "ConcatPosition"
+ (\ o ->
+ ConcatPosition <$>
+ (o .:? "index") <*> (o .:? "position"))
+
+instance ToJSON ConcatPosition where
+ toJSON ConcatPosition{..}
+ = object
+ (catMaybes
+ [("index" .=) <$> _cpIndex,
+ ("position" .=) <$> _cpPosition])
+
+-- | 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\'] = .
+--
+-- /See:/ 'metricStructuredNameContext' smart constructor.
+newtype MetricStructuredNameContext = MetricStructuredNameContext
+ { _msncAddtional :: HashMap Text Text
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'MetricStructuredNameContext' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'msncAddtional'
+metricStructuredNameContext
+ :: HashMap Text Text -- ^ 'msncAddtional'
+ -> MetricStructuredNameContext
+metricStructuredNameContext pMsncAddtional_ =
+ MetricStructuredNameContext
+ { _msncAddtional = _Coerce # pMsncAddtional_
+ }
+
+msncAddtional :: Lens' MetricStructuredNameContext (HashMap Text Text)
+msncAddtional
+ = lens _msncAddtional
+ (\ s a -> s{_msncAddtional = a})
+ . _Coerce
+
+instance FromJSON MetricStructuredNameContext where
+ parseJSON
+ = withObject "MetricStructuredNameContext"
+ (\ o ->
+ MetricStructuredNameContext <$> (parseJSONObject o))
+
+instance ToJSON MetricStructuredNameContext where
+ toJSON = toJSON . _msncAddtional
+
+-- | Identifies the location of a streaming computation stage, for
+-- stage-to-stage communication.
+--
+-- /See:/ 'streamingStageLocation' smart constructor.
+newtype StreamingStageLocation = StreamingStageLocation
+ { _sslStreamId :: Maybe Text
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'StreamingStageLocation' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'sslStreamId'
+streamingStageLocation
+ :: StreamingStageLocation
+streamingStageLocation =
+ StreamingStageLocation
+ { _sslStreamId = Nothing
+ }
+
+-- | Identifies the particular stream within the streaming Dataflow job.
+sslStreamId :: Lens' StreamingStageLocation (Maybe Text)
+sslStreamId
+ = lens _sslStreamId (\ s a -> s{_sslStreamId = a})
+
+instance FromJSON StreamingStageLocation where
+ parseJSON
+ = withObject "StreamingStageLocation"
+ (\ o ->
+ StreamingStageLocation <$> (o .:? "streamId"))
+
+instance ToJSON StreamingStageLocation where
+ toJSON StreamingStageLocation{..}
+ = object
+ (catMaybes [("streamId" .=) <$> _sslStreamId])
+
+-- | 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.
+--
+-- /See:/ 'derivedSource' smart constructor.
+data DerivedSource = DerivedSource
+ { _dsDerivationMode :: !(Maybe Text)
+ , _dsSource :: !(Maybe Source)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DerivedSource' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dsDerivationMode'
+--
+-- * 'dsSource'
+derivedSource
+ :: DerivedSource
+derivedSource =
+ DerivedSource
+ { _dsDerivationMode = Nothing
+ , _dsSource = Nothing
+ }
+
+-- | What source to base the produced source on (if any).
+dsDerivationMode :: Lens' DerivedSource (Maybe Text)
+dsDerivationMode
+ = lens _dsDerivationMode
+ (\ s a -> s{_dsDerivationMode = a})
+
+-- | Specification of the source.
+dsSource :: Lens' DerivedSource (Maybe Source)
+dsSource = lens _dsSource (\ s a -> s{_dsSource = a})
+
+instance FromJSON DerivedSource where
+ parseJSON
+ = withObject "DerivedSource"
+ (\ o ->
+ DerivedSource <$>
+ (o .:? "derivationMode") <*> (o .:? "source"))
+
+instance ToJSON DerivedSource where
+ toJSON DerivedSource{..}
+ = object
+ (catMaybes
+ [("derivationMode" .=) <$> _dsDerivationMode,
+ ("source" .=) <$> _dsSource])
+
+-- | 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.
+--
+-- /See:/ 'jobMetrics' smart constructor.
+data JobMetrics = JobMetrics
+ { _jmMetrics :: !(Maybe [MetricUpdate])
+ , _jmMetricTime :: !(Maybe Text)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'JobMetrics' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'jmMetrics'
+--
+-- * 'jmMetricTime'
+jobMetrics
+ :: JobMetrics
+jobMetrics =
+ JobMetrics
+ { _jmMetrics = Nothing
+ , _jmMetricTime = Nothing
+ }
+
+-- | All metrics for this job.
+jmMetrics :: Lens' JobMetrics [MetricUpdate]
+jmMetrics
+ = lens _jmMetrics (\ s a -> s{_jmMetrics = a}) .
+ _Default
+ . _Coerce
+
+-- | Timestamp as of which metric values are current.
+jmMetricTime :: Lens' JobMetrics (Maybe Text)
+jmMetricTime
+ = lens _jmMetricTime (\ s a -> s{_jmMetricTime = a})
+
+instance FromJSON JobMetrics where
+ parseJSON
+ = withObject "JobMetrics"
+ (\ o ->
+ JobMetrics <$>
+ (o .:? "metrics" .!= mempty) <*>
+ (o .:? "metricTime"))
+
+instance ToJSON JobMetrics where
+ toJSON JobMetrics{..}
+ = object
+ (catMaybes
+ [("metrics" .=) <$> _jmMetrics,
+ ("metricTime" .=) <$> _jmMetricTime])
+
+-- | Conveys a worker\'s progress through the work described by a WorkItem.
+--
+-- /See:/ 'workItemStatus' smart constructor.
+data WorkItemStatus = WorkItemStatus
+ { _wisProgress :: !(Maybe ApproximateProgress)
+ , _wisSourceOperationResponse :: !(Maybe SourceOperationResponse)
+ , _wisStopPosition :: !(Maybe Position)
+ , _wisDynamicSourceSplit :: !(Maybe DynamicSourceSplit)
+ , _wisCompleted :: !(Maybe Bool)
+ , _wisSourceFork :: !(Maybe SourceFork)
+ , _wisReportIndex :: !(Maybe (Textual Int64))
+ , _wisRequestedLeaseDuration :: !(Maybe Text)
+ , _wisErrors :: !(Maybe [Status])
+ , _wisMetricUpdates :: !(Maybe [MetricUpdate])
+ , _wisWorkItemId :: !(Maybe Text)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'WorkItemStatus' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'wisProgress'
+--
+-- * 'wisSourceOperationResponse'
+--
+-- * 'wisStopPosition'
+--
+-- * 'wisDynamicSourceSplit'
+--
+-- * 'wisCompleted'
+--
+-- * 'wisSourceFork'
+--
+-- * 'wisReportIndex'
+--
+-- * 'wisRequestedLeaseDuration'
+--
+-- * 'wisErrors'
+--
+-- * 'wisMetricUpdates'
+--
+-- * 'wisWorkItemId'
+workItemStatus
+ :: WorkItemStatus
+workItemStatus =
+ WorkItemStatus
+ { _wisProgress = Nothing
+ , _wisSourceOperationResponse = Nothing
+ , _wisStopPosition = Nothing
+ , _wisDynamicSourceSplit = Nothing
+ , _wisCompleted = Nothing
+ , _wisSourceFork = Nothing
+ , _wisReportIndex = Nothing
+ , _wisRequestedLeaseDuration = Nothing
+ , _wisErrors = Nothing
+ , _wisMetricUpdates = Nothing
+ , _wisWorkItemId = Nothing
+ }
+
+-- | The WorkItem\'s approximate progress.
+wisProgress :: Lens' WorkItemStatus (Maybe ApproximateProgress)
+wisProgress
+ = lens _wisProgress (\ s a -> s{_wisProgress = a})
+
+-- | If the work item represented a SourceOperationRequest, and the work is
+-- completed, contains the result of the operation.
+wisSourceOperationResponse :: Lens' WorkItemStatus (Maybe SourceOperationResponse)
+wisSourceOperationResponse
+ = lens _wisSourceOperationResponse
+ (\ s a -> s{_wisSourceOperationResponse = a})
+
+-- | 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)
+wisStopPosition
+ = lens _wisStopPosition
+ (\ s a -> s{_wisStopPosition = a})
+
+-- | See documentation of stop_position.
+wisDynamicSourceSplit :: Lens' WorkItemStatus (Maybe DynamicSourceSplit)
+wisDynamicSourceSplit
+ = lens _wisDynamicSourceSplit
+ (\ s a -> s{_wisDynamicSourceSplit = a})
+
+-- | True if the WorkItem was completed (successfully or unsuccessfully).
+wisCompleted :: Lens' WorkItemStatus (Maybe Bool)
+wisCompleted
+ = lens _wisCompleted (\ s a -> s{_wisCompleted = a})
+
+-- | DEPRECATED in favor of dynamic_source_split.
+wisSourceFork :: Lens' WorkItemStatus (Maybe SourceFork)
+wisSourceFork
+ = lens _wisSourceFork
+ (\ s a -> s{_wisSourceFork = a})
+
+-- | 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)
+wisReportIndex
+ = lens _wisReportIndex
+ (\ s a -> s{_wisReportIndex = a})
+ . mapping _Coerce
+
+-- | Amount of time the worker requests for its lease.
+wisRequestedLeaseDuration :: Lens' WorkItemStatus (Maybe Text)
+wisRequestedLeaseDuration
+ = lens _wisRequestedLeaseDuration
+ (\ s a -> s{_wisRequestedLeaseDuration = a})
+
+-- | 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]
+wisErrors
+ = lens _wisErrors (\ s a -> s{_wisErrors = a}) .
+ _Default
+ . _Coerce
+
+-- | Worker output metrics (counters) for this WorkItem.
+wisMetricUpdates :: Lens' WorkItemStatus [MetricUpdate]
+wisMetricUpdates
+ = lens _wisMetricUpdates
+ (\ s a -> s{_wisMetricUpdates = a})
+ . _Default
+ . _Coerce
+
+-- | Identifies the WorkItem.
+wisWorkItemId :: Lens' WorkItemStatus (Maybe Text)
+wisWorkItemId
+ = lens _wisWorkItemId
+ (\ s a -> s{_wisWorkItemId = a})
+
+instance FromJSON WorkItemStatus where
+ parseJSON
+ = withObject "WorkItemStatus"
+ (\ o ->
+ WorkItemStatus <$>
+ (o .:? "progress") <*>
+ (o .:? "sourceOperationResponse")
+ <*> (o .:? "stopPosition")
+ <*> (o .:? "dynamicSourceSplit")
+ <*> (o .:? "completed")
+ <*> (o .:? "sourceFork")
+ <*> (o .:? "reportIndex")
+ <*> (o .:? "requestedLeaseDuration")
+ <*> (o .:? "errors" .!= mempty)
+ <*> (o .:? "metricUpdates" .!= mempty)
+ <*> (o .:? "workItemId"))
+
+instance ToJSON WorkItemStatus where
+ toJSON WorkItemStatus{..}
+ = object
+ (catMaybes
+ [("progress" .=) <$> _wisProgress,
+ ("sourceOperationResponse" .=) <$>
+ _wisSourceOperationResponse,
+ ("stopPosition" .=) <$> _wisStopPosition,
+ ("dynamicSourceSplit" .=) <$> _wisDynamicSourceSplit,
+ ("completed" .=) <$> _wisCompleted,
+ ("sourceFork" .=) <$> _wisSourceFork,
+ ("reportIndex" .=) <$> _wisReportIndex,
+ ("requestedLeaseDuration" .=) <$>
+ _wisRequestedLeaseDuration,
+ ("errors" .=) <$> _wisErrors,
+ ("metricUpdates" .=) <$> _wisMetricUpdates,
+ ("workItemId" .=) <$> _wisWorkItemId])
+
+-- | An instruction that copies its inputs (zero or more) to its (single)
+-- output.
+--
+-- /See:/ 'flattenInstruction' smart constructor.
+newtype FlattenInstruction = FlattenInstruction
+ { _fiInputs :: Maybe [InstructionInput]
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FlattenInstruction' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fiInputs'
+flattenInstruction
+ :: FlattenInstruction
+flattenInstruction =
+ FlattenInstruction
+ { _fiInputs = Nothing
+ }
+
+-- | Describes the inputs to the flatten instruction.
+fiInputs :: Lens' FlattenInstruction [InstructionInput]
+fiInputs
+ = lens _fiInputs (\ s a -> s{_fiInputs = a}) .
+ _Default
+ . _Coerce
+
+instance FromJSON FlattenInstruction where
+ parseJSON
+ = withObject "FlattenInstruction"
+ (\ o ->
+ FlattenInstruction <$> (o .:? "inputs" .!= mempty))
+
+instance ToJSON FlattenInstruction where
+ toJSON FlattenInstruction{..}
+ = object (catMaybes [("inputs" .=) <$> _fiInputs])
+
+-- | Map of transform name prefixes of the job to be replaced to the
+-- corresponding name prefixes of the new job.
+--
+-- /See:/ 'jobTransformNameMApping' smart constructor.
+newtype JobTransformNameMApping = JobTransformNameMApping
+ { _jtnmaAddtional :: HashMap Text Text
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'JobTransformNameMApping' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'jtnmaAddtional'
+jobTransformNameMApping
+ :: HashMap Text Text -- ^ 'jtnmaAddtional'
+ -> JobTransformNameMApping
+jobTransformNameMApping pJtnmaAddtional_ =
+ JobTransformNameMApping
+ { _jtnmaAddtional = _Coerce # pJtnmaAddtional_
+ }
+
+jtnmaAddtional :: Lens' JobTransformNameMApping (HashMap Text Text)
+jtnmaAddtional
+ = lens _jtnmaAddtional
+ (\ s a -> s{_jtnmaAddtional = a})
+ . _Coerce
+
+instance FromJSON JobTransformNameMApping where
+ parseJSON
+ = withObject "JobTransformNameMApping"
+ (\ o ->
+ JobTransformNameMApping <$> (parseJSONObject o))
+
+instance ToJSON JobTransformNameMApping where
+ toJSON = toJSON . _jtnmaAddtional
+
+-- | The source to read from, plus its parameters.
+--
+-- /See:/ 'sourceSpec' smart constructor.
+newtype SourceSpec = SourceSpec
+ { _ssAddtional :: HashMap Text JSONValue
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SourceSpec' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ssAddtional'
+sourceSpec
+ :: HashMap Text JSONValue -- ^ 'ssAddtional'
+ -> SourceSpec
+sourceSpec pSsAddtional_ =
+ SourceSpec
+ { _ssAddtional = _Coerce # pSsAddtional_
+ }
+
+-- | Properties of the object.
+ssAddtional :: Lens' SourceSpec (HashMap Text JSONValue)
+ssAddtional
+ = lens _ssAddtional (\ s a -> s{_ssAddtional = a}) .
+ _Coerce
+
+instance FromJSON SourceSpec where
+ parseJSON
+ = withObject "SourceSpec"
+ (\ o -> SourceSpec <$> (parseJSONObject o))
+
+instance ToJSON SourceSpec where
+ toJSON = toJSON . _ssAddtional
+
+-- | Metadata about a Source useful for automatically optimizing and tuning
+-- the pipeline, etc.
+--
+-- /See:/ 'sourceMetadata' smart constructor.
+data SourceMetadata = SourceMetadata
+ { _smEstimatedSizeBytes :: !(Maybe (Textual Int64))
+ , _smProducesSortedKeys :: !(Maybe Bool)
+ , _smInfinite :: !(Maybe Bool)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SourceMetadata' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'smEstimatedSizeBytes'
+--
+-- * 'smProducesSortedKeys'
+--
+-- * 'smInfinite'
+sourceMetadata
+ :: SourceMetadata
+sourceMetadata =
+ SourceMetadata
+ { _smEstimatedSizeBytes = Nothing
+ , _smProducesSortedKeys = Nothing
+ , _smInfinite = Nothing
+ }
+
+-- | 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)
+smEstimatedSizeBytes
+ = lens _smEstimatedSizeBytes
+ (\ s a -> s{_smEstimatedSizeBytes = a})
+ . mapping _Coerce
+
+-- | Whether this source is known to produce key\/value pairs with the
+-- (encoded) keys in lexicographically sorted order.
+smProducesSortedKeys :: Lens' SourceMetadata (Maybe Bool)
+smProducesSortedKeys
+ = lens _smProducesSortedKeys
+ (\ s a -> s{_smProducesSortedKeys = a})
+
+-- | Specifies that the size of this source is known to be infinite (this is
+-- a streaming source).
+smInfinite :: Lens' SourceMetadata (Maybe Bool)
+smInfinite
+ = lens _smInfinite (\ s a -> s{_smInfinite = a})
+
+instance FromJSON SourceMetadata where
+ parseJSON
+ = withObject "SourceMetadata"
+ (\ o ->
+ SourceMetadata <$>
+ (o .:? "estimatedSizeBytes") <*>
+ (o .:? "producesSortedKeys")
+ <*> (o .:? "infinite"))
+
+instance ToJSON SourceMetadata where
+ toJSON SourceMetadata{..}
+ = object
+ (catMaybes
+ [("estimatedSizeBytes" .=) <$> _smEstimatedSizeBytes,
+ ("producesSortedKeys" .=) <$> _smProducesSortedKeys,
+ ("infinite" .=) <$> _smInfinite])
+
+-- | Experimental settings.
+--
+-- /See:/ 'environmentInternalExperiments' smart constructor.
+newtype EnvironmentInternalExperiments = EnvironmentInternalExperiments
+ { _eieAddtional :: HashMap Text JSONValue
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'EnvironmentInternalExperiments' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'eieAddtional'
+environmentInternalExperiments
+ :: HashMap Text JSONValue -- ^ 'eieAddtional'
+ -> EnvironmentInternalExperiments
+environmentInternalExperiments pEieAddtional_ =
+ EnvironmentInternalExperiments
+ { _eieAddtional = _Coerce # pEieAddtional_
+ }
+
+-- | Properties of the object. Contains field \'ype with type URL.
+eieAddtional :: Lens' EnvironmentInternalExperiments (HashMap Text JSONValue)
+eieAddtional
+ = lens _eieAddtional (\ s a -> s{_eieAddtional = a})
+ . _Coerce
+
+instance FromJSON EnvironmentInternalExperiments
+ where
+ parseJSON
+ = withObject "EnvironmentInternalExperiments"
+ (\ o ->
+ EnvironmentInternalExperiments <$>
+ (parseJSONObject o))
+
+instance ToJSON EnvironmentInternalExperiments where
+ toJSON = toJSON . _eieAddtional
+
+-- | Taskrunner configuration settings.
+--
+-- /See:/ 'taskRunnerSettings' smart constructor.
+data TaskRunnerSettings = TaskRunnerSettings
+ { _trsContinueOnException :: !(Maybe Bool)
+ , _trsHarnessCommand :: !(Maybe Text)
+ , _trsWorkflowFileName :: !(Maybe Text)
+ , _trsTaskGroup :: !(Maybe Text)
+ , _trsAlsologtostderr :: !(Maybe Bool)
+ , _trsDataflowAPIVersion :: !(Maybe Text)
+ , _trsLogDir :: !(Maybe Text)
+ , _trsCommandlinesFileName :: !(Maybe Text)
+ , _trsVMId :: !(Maybe Text)
+ , _trsBaseURL :: !(Maybe Text)
+ , _trsOAuthScopes :: !(Maybe [Text])
+ , _trsTaskUser :: !(Maybe Text)
+ , _trsStreamingWorkerMainClass :: !(Maybe Text)
+ , _trsBaseTaskDir :: !(Maybe Text)
+ , _trsLogUploadLocation :: !(Maybe Text)
+ , _trsTempStoragePrefix :: !(Maybe Text)
+ , _trsLogToSerialconsole :: !(Maybe Bool)
+ , _trsParallelWorkerSettings :: !(Maybe WorkerSettings)
+ , _trsLanguageHint :: !(Maybe Text)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'TaskRunnerSettings' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'trsContinueOnException'
+--
+-- * 'trsHarnessCommand'
+--
+-- * 'trsWorkflowFileName'
+--
+-- * 'trsTaskGroup'
+--
+-- * 'trsAlsologtostderr'
+--
+-- * 'trsDataflowAPIVersion'
+--
+-- * 'trsLogDir'
+--
+-- * 'trsCommandlinesFileName'
+--
+-- * 'trsVMId'
+--
+-- * 'trsBaseURL'
+--
+-- * 'trsOAuthScopes'
+--
+-- * 'trsTaskUser'
+--
+-- * 'trsStreamingWorkerMainClass'
+--
+-- * 'trsBaseTaskDir'
+--
+-- * 'trsLogUploadLocation'
+--
+-- * 'trsTempStoragePrefix'
+--
+-- * 'trsLogToSerialconsole'
+--
+-- * 'trsParallelWorkerSettings'
+--
+-- * 'trsLanguageHint'
+taskRunnerSettings
+ :: TaskRunnerSettings
+taskRunnerSettings =
+ TaskRunnerSettings
+ { _trsContinueOnException = Nothing
+ , _trsHarnessCommand = Nothing
+ , _trsWorkflowFileName = Nothing
+ , _trsTaskGroup = Nothing
+ , _trsAlsologtostderr = Nothing
+ , _trsDataflowAPIVersion = Nothing
+ , _trsLogDir = Nothing
+ , _trsCommandlinesFileName = Nothing
+ , _trsVMId = Nothing
+ , _trsBaseURL = Nothing
+ , _trsOAuthScopes = Nothing
+ , _trsTaskUser = Nothing
+ , _trsStreamingWorkerMainClass = Nothing
+ , _trsBaseTaskDir = Nothing
+ , _trsLogUploadLocation = Nothing
+ , _trsTempStoragePrefix = Nothing
+ , _trsLogToSerialconsole = Nothing
+ , _trsParallelWorkerSettings = Nothing
+ , _trsLanguageHint = Nothing
+ }
+
+-- | Do we continue taskrunner if an exception is hit?
+trsContinueOnException :: Lens' TaskRunnerSettings (Maybe Bool)
+trsContinueOnException
+ = lens _trsContinueOnException
+ (\ s a -> s{_trsContinueOnException = a})
+
+-- | Command to launch the worker harness.
+trsHarnessCommand :: Lens' TaskRunnerSettings (Maybe Text)
+trsHarnessCommand
+ = lens _trsHarnessCommand
+ (\ s a -> s{_trsHarnessCommand = a})
+
+-- | Store the workflow in this file.
+trsWorkflowFileName :: Lens' TaskRunnerSettings (Maybe Text)
+trsWorkflowFileName
+ = lens _trsWorkflowFileName
+ (\ s a -> s{_trsWorkflowFileName = a})
+
+-- | The UNIX group ID on the worker VM to use for tasks launched by
+-- taskrunner; e.g. \"wheel\".
+trsTaskGroup :: Lens' TaskRunnerSettings (Maybe Text)
+trsTaskGroup
+ = lens _trsTaskGroup (\ s a -> s{_trsTaskGroup = a})
+
+-- | Also send taskrunner log info to stderr?
+trsAlsologtostderr :: Lens' TaskRunnerSettings (Maybe Bool)
+trsAlsologtostderr
+ = lens _trsAlsologtostderr
+ (\ s a -> s{_trsAlsologtostderr = a})
+
+-- | API version of endpoint, e.g. \"v1b3\"
+trsDataflowAPIVersion :: Lens' TaskRunnerSettings (Maybe Text)
+trsDataflowAPIVersion
+ = lens _trsDataflowAPIVersion
+ (\ s a -> s{_trsDataflowAPIVersion = a})
+
+-- | Directory on the VM to store logs.
+trsLogDir :: Lens' TaskRunnerSettings (Maybe Text)
+trsLogDir
+ = lens _trsLogDir (\ s a -> s{_trsLogDir = a})
+
+-- | Store preprocessing commands in this file.
+trsCommandlinesFileName :: Lens' TaskRunnerSettings (Maybe Text)
+trsCommandlinesFileName
+ = lens _trsCommandlinesFileName
+ (\ s a -> s{_trsCommandlinesFileName = a})
+
+-- | ID string of VM.
+trsVMId :: Lens' TaskRunnerSettings (Maybe Text)
+trsVMId = lens _trsVMId (\ s a -> s{_trsVMId = a})
+
+-- | 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)
+trsBaseURL
+ = lens _trsBaseURL (\ s a -> s{_trsBaseURL = a})
+
+-- | OAuth2 scopes to be requested by the taskrunner in order to access the
+-- dataflow API.
+trsOAuthScopes :: Lens' TaskRunnerSettings [Text]
+trsOAuthScopes
+ = lens _trsOAuthScopes
+ (\ s a -> s{_trsOAuthScopes = a})
+ . _Default
+ . _Coerce
+
+-- | The UNIX user ID on the worker VM to use for tasks launched by
+-- taskrunner; e.g. \"root\".
+trsTaskUser :: Lens' TaskRunnerSettings (Maybe Text)
+trsTaskUser
+ = lens _trsTaskUser (\ s a -> s{_trsTaskUser = a})
+
+-- | Streaming worker main class name.
+trsStreamingWorkerMainClass :: Lens' TaskRunnerSettings (Maybe Text)
+trsStreamingWorkerMainClass
+ = lens _trsStreamingWorkerMainClass
+ (\ s a -> s{_trsStreamingWorkerMainClass = a})
+
+-- | Location on the worker for task-specific subdirectories.
+trsBaseTaskDir :: Lens' TaskRunnerSettings (Maybe Text)
+trsBaseTaskDir
+ = lens _trsBaseTaskDir
+ (\ s a -> s{_trsBaseTaskDir = a})
+
+-- | 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)
+trsLogUploadLocation
+ = lens _trsLogUploadLocation
+ (\ s a -> s{_trsLogUploadLocation = a})
+
+-- | 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)
+trsTempStoragePrefix
+ = lens _trsTempStoragePrefix
+ (\ s a -> s{_trsTempStoragePrefix = a})
+
+-- | Send taskrunner log into to Google Compute Engine VM serial console?
+trsLogToSerialconsole :: Lens' TaskRunnerSettings (Maybe Bool)
+trsLogToSerialconsole
+ = lens _trsLogToSerialconsole
+ (\ s a -> s{_trsLogToSerialconsole = a})
+
+-- | Settings to pass to the parallel worker harness.
+trsParallelWorkerSettings :: Lens' TaskRunnerSettings (Maybe WorkerSettings)
+trsParallelWorkerSettings
+ = lens _trsParallelWorkerSettings
+ (\ s a -> s{_trsParallelWorkerSettings = a})
+
+-- | Suggested backend language.
+trsLanguageHint :: Lens' TaskRunnerSettings (Maybe Text)
+trsLanguageHint
+ = lens _trsLanguageHint
+ (\ s a -> s{_trsLanguageHint = a})
+
+instance FromJSON TaskRunnerSettings where
+ parseJSON
+ = withObject "TaskRunnerSettings"
+ (\ o ->
+ TaskRunnerSettings <$>
+ (o .:? "continueOnException") <*>
+ (o .:? "harnessCommand")
+ <*> (o .:? "workflowFileName")
+ <*> (o .:? "taskGroup")
+ <*> (o .:? "alsologtostderr")
+ <*> (o .:? "dataflowApiVersion")
+ <*> (o .:? "logDir")
+ <*> (o .:? "commandlinesFileName")
+ <*> (o .:? "vmId")
+ <*> (o .:? "baseUrl")
+ <*> (o .:? "oauthScopes" .!= mempty)
+ <*> (o .:? "taskUser")
+ <*> (o .:? "streamingWorkerMainClass")
+ <*> (o .:? "baseTaskDir")
+ <*> (o .:? "logUploadLocation")
+ <*> (o .:? "tempStoragePrefix")
+ <*> (o .:? "logToSerialconsole")
+ <*> (o .:? "parallelWorkerSettings")
+ <*> (o .:? "languageHint"))
+
+instance ToJSON TaskRunnerSettings where
+ toJSON TaskRunnerSettings{..}
+ = object
+ (catMaybes
+ [("continueOnException" .=) <$>
+ _trsContinueOnException,
+ ("harnessCommand" .=) <$> _trsHarnessCommand,
+ ("workflowFileName" .=) <$> _trsWorkflowFileName,
+ ("taskGroup" .=) <$> _trsTaskGroup,
+ ("alsologtostderr" .=) <$> _trsAlsologtostderr,
+ ("dataflowApiVersion" .=) <$> _trsDataflowAPIVersion,
+ ("logDir" .=) <$> _trsLogDir,
+ ("commandlinesFileName" .=) <$>
+ _trsCommandlinesFileName,
+ ("vmId" .=) <$> _trsVMId,
+ ("baseUrl" .=) <$> _trsBaseURL,
+ ("oauthScopes" .=) <$> _trsOAuthScopes,
+ ("taskUser" .=) <$> _trsTaskUser,
+ ("streamingWorkerMainClass" .=) <$>
+ _trsStreamingWorkerMainClass,
+ ("baseTaskDir" .=) <$> _trsBaseTaskDir,
+ ("logUploadLocation" .=) <$> _trsLogUploadLocation,
+ ("tempStoragePrefix" .=) <$> _trsTempStoragePrefix,
+ ("logToSerialconsole" .=) <$> _trsLogToSerialconsole,
+ ("parallelWorkerSettings" .=) <$>
+ _trsParallelWorkerSettings,
+ ("languageHint" .=) <$> _trsLanguageHint])
+
+-- | The 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.
+--
+-- /See:/ 'environmentSdkPipelineOptions' smart constructor.
+newtype EnvironmentSdkPipelineOptions = EnvironmentSdkPipelineOptions
+ { _espoAddtional :: HashMap Text JSONValue
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'EnvironmentSdkPipelineOptions' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'espoAddtional'
+environmentSdkPipelineOptions
+ :: HashMap Text JSONValue -- ^ 'espoAddtional'
+ -> EnvironmentSdkPipelineOptions
+environmentSdkPipelineOptions pEspoAddtional_ =
+ EnvironmentSdkPipelineOptions
+ { _espoAddtional = _Coerce # pEspoAddtional_
+ }
+
+-- | Properties of the object.
+espoAddtional :: Lens' EnvironmentSdkPipelineOptions (HashMap Text JSONValue)
+espoAddtional
+ = lens _espoAddtional
+ (\ s a -> s{_espoAddtional = a})
+ . _Coerce
+
+instance FromJSON EnvironmentSdkPipelineOptions where
+ parseJSON
+ = withObject "EnvironmentSdkPipelineOptions"
+ (\ o ->
+ EnvironmentSdkPipelineOptions <$>
+ (parseJSONObject o))
+
+instance ToJSON EnvironmentSdkPipelineOptions where
+ toJSON = toJSON . _espoAddtional
+
+-- | Request to lease WorkItems.
+--
+-- /See:/ 'leaseWorkItemRequest' smart constructor.
+data LeaseWorkItemRequest = LeaseWorkItemRequest
+ { _lwirWorkItemTypes :: !(Maybe [Text])
+ , _lwirCurrentWorkerTime :: !(Maybe Text)
+ , _lwirWorkerCapabilities :: !(Maybe [Text])
+ , _lwirRequestedLeaseDuration :: !(Maybe Text)
+ , _lwirWorkerId :: !(Maybe Text)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'LeaseWorkItemRequest' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lwirWorkItemTypes'
+--
+-- * 'lwirCurrentWorkerTime'
+--
+-- * 'lwirWorkerCapabilities'
+--
+-- * 'lwirRequestedLeaseDuration'
+--
+-- * 'lwirWorkerId'
+leaseWorkItemRequest
+ :: LeaseWorkItemRequest
+leaseWorkItemRequest =
+ LeaseWorkItemRequest
+ { _lwirWorkItemTypes = Nothing
+ , _lwirCurrentWorkerTime = Nothing
+ , _lwirWorkerCapabilities = Nothing
+ , _lwirRequestedLeaseDuration = Nothing
+ , _lwirWorkerId = Nothing
+ }
+
+-- | Filter for WorkItem type.
+lwirWorkItemTypes :: Lens' LeaseWorkItemRequest [Text]
+lwirWorkItemTypes
+ = lens _lwirWorkItemTypes
+ (\ s a -> s{_lwirWorkItemTypes = a})
+ . _Default
+ . _Coerce
+
+-- | The current timestamp at the worker.
+lwirCurrentWorkerTime :: Lens' LeaseWorkItemRequest (Maybe Text)
+lwirCurrentWorkerTime
+ = lens _lwirCurrentWorkerTime
+ (\ s a -> s{_lwirCurrentWorkerTime = a})
+
+-- | Worker capabilities. WorkItems might be limited to workers with specific
+-- capabilities.
+lwirWorkerCapabilities :: Lens' LeaseWorkItemRequest [Text]
+lwirWorkerCapabilities
+ = lens _lwirWorkerCapabilities
+ (\ s a -> s{_lwirWorkerCapabilities = a})
+ . _Default
+ . _Coerce
+
+-- | The initial lease period.
+lwirRequestedLeaseDuration :: Lens' LeaseWorkItemRequest (Maybe Text)
+lwirRequestedLeaseDuration
+ = lens _lwirRequestedLeaseDuration
+ (\ s a -> s{_lwirRequestedLeaseDuration = a})
+
+-- | Identifies the worker leasing work -- typically the ID of the virtual
+-- machine running the worker.
+lwirWorkerId :: Lens' LeaseWorkItemRequest (Maybe Text)
+lwirWorkerId
+ = lens _lwirWorkerId (\ s a -> s{_lwirWorkerId = a})
+
+instance FromJSON LeaseWorkItemRequest where
+ parseJSON
+ = withObject "LeaseWorkItemRequest"
+ (\ o ->
+ LeaseWorkItemRequest <$>
+ (o .:? "workItemTypes" .!= mempty) <*>
+ (o .:? "currentWorkerTime")
+ <*> (o .:? "workerCapabilities" .!= mempty)
+ <*> (o .:? "requestedLeaseDuration")
+ <*> (o .:? "workerId"))
+
+instance ToJSON LeaseWorkItemRequest where
+ toJSON LeaseWorkItemRequest{..}
+ = object
+ (catMaybes
+ [("workItemTypes" .=) <$> _lwirWorkItemTypes,
+ ("currentWorkerTime" .=) <$> _lwirCurrentWorkerTime,
+ ("workerCapabilities" .=) <$>
+ _lwirWorkerCapabilities,
+ ("requestedLeaseDuration" .=) <$>
+ _lwirRequestedLeaseDuration,
+ ("workerId" .=) <$> _lwirWorkerId])
+
+-- | The result of a SourceOperationRequest, specified in
+-- ReportWorkItemStatusRequest.source_operation when the work item is
+-- completed.
+--
+-- /See:/ 'sourceOperationResponse' smart constructor.
+data SourceOperationResponse = SourceOperationResponse
+ { _sorSplit :: !(Maybe SourceSplitResponse)
+ , _sorGetMetadata :: !(Maybe SourceGetMetadataResponse)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SourceOperationResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'sorSplit'
+--
+-- * 'sorGetMetadata'
+sourceOperationResponse
+ :: SourceOperationResponse
+sourceOperationResponse =
+ SourceOperationResponse
+ { _sorSplit = Nothing
+ , _sorGetMetadata = Nothing
+ }
+
+-- | A response to a request to split a source.
+sorSplit :: Lens' SourceOperationResponse (Maybe SourceSplitResponse)
+sorSplit = lens _sorSplit (\ s a -> s{_sorSplit = a})
+
+-- | A response to a request to get metadata about a source.
+sorGetMetadata :: Lens' SourceOperationResponse (Maybe SourceGetMetadataResponse)
+sorGetMetadata
+ = lens _sorGetMetadata
+ (\ s a -> s{_sorGetMetadata = a})
+
+instance FromJSON SourceOperationResponse where
+ parseJSON
+ = withObject "SourceOperationResponse"
+ (\ o ->
+ SourceOperationResponse <$>
+ (o .:? "split") <*> (o .:? "getMetadata"))
+
+instance ToJSON SourceOperationResponse where
+ toJSON SourceOperationResponse{..}
+ = object
+ (catMaybes
+ [("split" .=) <$> _sorSplit,
+ ("getMetadata" .=) <$> _sorGetMetadata])
+
+-- | Maps user stage names to stable computation names.
+--
+-- /See:/ 'topologyConfigUserStageToComputationNameMap' smart constructor.
+newtype TopologyConfigUserStageToComputationNameMap = TopologyConfigUserStageToComputationNameMap
+ { _tcustcnmAddtional :: HashMap Text Text
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'TopologyConfigUserStageToComputationNameMap' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'tcustcnmAddtional'
+topologyConfigUserStageToComputationNameMap
+ :: HashMap Text Text -- ^ 'tcustcnmAddtional'
+ -> TopologyConfigUserStageToComputationNameMap
+topologyConfigUserStageToComputationNameMap pTcustcnmAddtional_ =
+ TopologyConfigUserStageToComputationNameMap
+ { _tcustcnmAddtional = _Coerce # pTcustcnmAddtional_
+ }
+
+tcustcnmAddtional :: Lens' TopologyConfigUserStageToComputationNameMap (HashMap Text Text)
+tcustcnmAddtional
+ = lens _tcustcnmAddtional
+ (\ s a -> s{_tcustcnmAddtional = a})
+ . _Coerce
+
+instance FromJSON
+ TopologyConfigUserStageToComputationNameMap where
+ parseJSON
+ = withObject
+ "TopologyConfigUserStageToComputationNameMap"
+ (\ o ->
+ TopologyConfigUserStageToComputationNameMap <$>
+ (parseJSONObject o))
+
+instance ToJSON
+ TopologyConfigUserStageToComputationNameMap where
+ toJSON = toJSON . _tcustcnmAddtional
+
+-- | A task which consists of a shell command for the worker to execute.
+--
+-- /See:/ 'shellTask' smart constructor.
+data ShellTask = ShellTask
+ { _stCommand :: !(Maybe Text)
+ , _stExitCode :: !(Maybe (Textual Int32))
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ShellTask' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'stCommand'
+--
+-- * 'stExitCode'
+shellTask
+ :: ShellTask
+shellTask =
+ ShellTask
+ { _stCommand = Nothing
+ , _stExitCode = Nothing
+ }
+
+-- | The shell command to run.
+stCommand :: Lens' ShellTask (Maybe Text)
+stCommand
+ = lens _stCommand (\ s a -> s{_stCommand = a})
+
+-- | Exit code for the task.
+stExitCode :: Lens' ShellTask (Maybe Int32)
+stExitCode
+ = lens _stExitCode (\ s a -> s{_stExitCode = a}) .
+ mapping _Coerce
+
+instance FromJSON ShellTask where
+ parseJSON
+ = withObject "ShellTask"
+ (\ o ->
+ ShellTask <$>
+ (o .:? "command") <*> (o .:? "exitCode"))
+
+instance ToJSON ShellTask where
+ toJSON ShellTask{..}
+ = object
+ (catMaybes
+ [("command" .=) <$> _stCommand,
+ ("exitCode" .=) <$> _stExitCode])
+
+--
+-- /See:/ 'statusDetailsItem' smart constructor.
+newtype StatusDetailsItem = StatusDetailsItem
+ { _sdiAddtional :: HashMap Text JSONValue
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'StatusDetailsItem' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'sdiAddtional'
+statusDetailsItem
+ :: HashMap Text JSONValue -- ^ 'sdiAddtional'
+ -> StatusDetailsItem
+statusDetailsItem pSdiAddtional_ =
+ StatusDetailsItem
+ { _sdiAddtional = _Coerce # pSdiAddtional_
+ }
+
+-- | Properties of the object. Contains field \'ype with type URL.
+sdiAddtional :: Lens' StatusDetailsItem (HashMap Text JSONValue)
+sdiAddtional
+ = lens _sdiAddtional (\ s a -> s{_sdiAddtional = a})
+ . _Coerce
+
+instance FromJSON StatusDetailsItem where
+ parseJSON
+ = withObject "StatusDetailsItem"
+ (\ o -> StatusDetailsItem <$> (parseJSONObject o))
+
+instance ToJSON StatusDetailsItem where
+ toJSON = toJSON . _sdiAddtional
+
+-- | Named properties associated with the step. Each kind of predefined step
+-- has its own required set of properties.
+--
+-- /See:/ 'stepProperties' smart constructor.
+newtype StepProperties = StepProperties
+ { _spAddtional :: HashMap Text JSONValue
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'StepProperties' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'spAddtional'
+stepProperties
+ :: HashMap Text JSONValue -- ^ 'spAddtional'
+ -> StepProperties
+stepProperties pSpAddtional_ =
+ StepProperties
+ { _spAddtional = _Coerce # pSpAddtional_
+ }
+
+-- | Properties of the object.
+spAddtional :: Lens' StepProperties (HashMap Text JSONValue)
+spAddtional
+ = lens _spAddtional (\ s a -> s{_spAddtional = a}) .
+ _Coerce
+
+instance FromJSON StepProperties where
+ parseJSON
+ = withObject "StepProperties"
+ (\ o -> StepProperties <$> (parseJSONObject o))
+
+instance ToJSON StepProperties where
+ toJSON = toJSON . _spAddtional
+
+-- | Global topology of the streaming Dataflow job, including all
+-- computations and their sharded locations.
+--
+-- /See:/ 'topologyConfig' smart constructor.
+data TopologyConfig = TopologyConfig
+ { _tcDataDiskAssignments :: !(Maybe [DataDiskAssignment])
+ , _tcUserStageToComputationNameMap :: !(Maybe TopologyConfigUserStageToComputationNameMap)
+ , _tcComputations :: !(Maybe [ComputationTopology])
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'TopologyConfig' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'tcDataDiskAssignments'
+--
+-- * 'tcUserStageToComputationNameMap'
+--
+-- * 'tcComputations'
+topologyConfig
+ :: TopologyConfig
+topologyConfig =
+ TopologyConfig
+ { _tcDataDiskAssignments = Nothing
+ , _tcUserStageToComputationNameMap = Nothing
+ , _tcComputations = Nothing
+ }
+
+-- | The disks assigned to a streaming Dataflow job.
+tcDataDiskAssignments :: Lens' TopologyConfig [DataDiskAssignment]
+tcDataDiskAssignments
+ = lens _tcDataDiskAssignments
+ (\ s a -> s{_tcDataDiskAssignments = a})
+ . _Default
+ . _Coerce
+
+-- | Maps user stage names to stable computation names.
+tcUserStageToComputationNameMap :: Lens' TopologyConfig (Maybe TopologyConfigUserStageToComputationNameMap)
+tcUserStageToComputationNameMap
+ = lens _tcUserStageToComputationNameMap
+ (\ s a -> s{_tcUserStageToComputationNameMap = a})
+
+-- | The computations associated with a streaming Dataflow job.
+tcComputations :: Lens' TopologyConfig [ComputationTopology]
+tcComputations
+ = lens _tcComputations
+ (\ s a -> s{_tcComputations = a})
+ . _Default
+ . _Coerce
+
+instance FromJSON TopologyConfig where
+ parseJSON
+ = withObject "TopologyConfig"
+ (\ o ->
+ TopologyConfig <$>
+ (o .:? "dataDiskAssignments" .!= mempty) <*>
+ (o .:? "userStageToComputationNameMap")
+ <*> (o .:? "computations" .!= mempty))
+
+instance ToJSON TopologyConfig where
+ toJSON TopologyConfig{..}
+ = object
+ (catMaybes
+ [("dataDiskAssignments" .=) <$>
+ _tcDataDiskAssignments,
+ ("userStageToComputationNameMap" .=) <$>
+ _tcUserStageToComputationNameMap,
+ ("computations" .=) <$> _tcComputations])
+
+-- | Provides data to pass through to the worker harness.
+--
+-- /See:/ 'workerSettings' smart constructor.
+data WorkerSettings = WorkerSettings
+ { _wsServicePath :: !(Maybe Text)
+ , _wsBaseURL :: !(Maybe Text)
+ , _wsShuffleServicePath :: !(Maybe Text)
+ , _wsTempStoragePrefix :: !(Maybe Text)
+ , _wsReportingEnabled :: !(Maybe Bool)
+ , _wsWorkerId :: !(Maybe Text)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'WorkerSettings' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'wsServicePath'
+--
+-- * 'wsBaseURL'
+--
+-- * 'wsShuffleServicePath'
+--
+-- * 'wsTempStoragePrefix'
+--
+-- * 'wsReportingEnabled'
+--
+-- * 'wsWorkerId'
+workerSettings
+ :: WorkerSettings
+workerSettings =
+ WorkerSettings
+ { _wsServicePath = Nothing
+ , _wsBaseURL = Nothing
+ , _wsShuffleServicePath = Nothing
+ , _wsTempStoragePrefix = Nothing
+ , _wsReportingEnabled = Nothing
+ , _wsWorkerId = Nothing
+ }
+
+-- | The Dataflow service path relative to the root URL, for example,
+-- \"dataflow\/v1b3\/projects\".
+wsServicePath :: Lens' WorkerSettings (Maybe Text)
+wsServicePath
+ = lens _wsServicePath
+ (\ s a -> s{_wsServicePath = a})
+
+-- | 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)
+wsBaseURL
+ = lens _wsBaseURL (\ s a -> s{_wsBaseURL = a})
+
+-- | The Shuffle service path relative to the root URL, for example,
+-- \"shuffle\/v1beta1\".
+wsShuffleServicePath :: Lens' WorkerSettings (Maybe Text)
+wsShuffleServicePath
+ = lens _wsShuffleServicePath
+ (\ s a -> s{_wsShuffleServicePath = a})
+
+-- | 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)
+wsTempStoragePrefix
+ = lens _wsTempStoragePrefix
+ (\ s a -> s{_wsTempStoragePrefix = a})
+
+-- | Send work progress updates to service.
+wsReportingEnabled :: Lens' WorkerSettings (Maybe Bool)
+wsReportingEnabled
+ = lens _wsReportingEnabled
+ (\ s a -> s{_wsReportingEnabled = a})
+
+-- | ID of the worker running this pipeline.
+wsWorkerId :: Lens' WorkerSettings (Maybe Text)
+wsWorkerId
+ = lens _wsWorkerId (\ s a -> s{_wsWorkerId = a})
+
+instance FromJSON WorkerSettings where
+ parseJSON
+ = withObject "WorkerSettings"
+ (\ o ->
+ WorkerSettings <$>
+ (o .:? "servicePath") <*> (o .:? "baseUrl") <*>
+ (o .:? "shuffleServicePath")
+ <*> (o .:? "tempStoragePrefix")
+ <*> (o .:? "reportingEnabled")
+ <*> (o .:? "workerId"))
+
+instance ToJSON WorkerSettings where
+ toJSON WorkerSettings{..}
+ = object
+ (catMaybes
+ [("servicePath" .=) <$> _wsServicePath,
+ ("baseUrl" .=) <$> _wsBaseURL,
+ ("shuffleServicePath" .=) <$> _wsShuffleServicePath,
+ ("tempStoragePrefix" .=) <$> _wsTempStoragePrefix,
+ ("reportingEnabled" .=) <$> _wsReportingEnabled,
+ ("workerId" .=) <$> _wsWorkerId])
+
+-- | Other data returned by the service, specific to the particular worker
+-- harness.
+--
+-- /See:/ 'workItemServiceStateHarnessData' smart constructor.
+newtype WorkItemServiceStateHarnessData = WorkItemServiceStateHarnessData
+ { _wisshdAddtional :: HashMap Text JSONValue
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'WorkItemServiceStateHarnessData' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'wisshdAddtional'
+workItemServiceStateHarnessData
+ :: HashMap Text JSONValue -- ^ 'wisshdAddtional'
+ -> WorkItemServiceStateHarnessData
+workItemServiceStateHarnessData pWisshdAddtional_ =
+ WorkItemServiceStateHarnessData
+ { _wisshdAddtional = _Coerce # pWisshdAddtional_
+ }
+
+-- | Properties of the object.
+wisshdAddtional :: Lens' WorkItemServiceStateHarnessData (HashMap Text JSONValue)
+wisshdAddtional
+ = lens _wisshdAddtional
+ (\ s a -> s{_wisshdAddtional = a})
+ . _Coerce
+
+instance FromJSON WorkItemServiceStateHarnessData
+ where
+ parseJSON
+ = withObject "WorkItemServiceStateHarnessData"
+ (\ o ->
+ WorkItemServiceStateHarnessData <$>
+ (parseJSONObject o))
+
+instance ToJSON WorkItemServiceStateHarnessData where
+ toJSON = toJSON . _wisshdAddtional
+
+-- | Data disk assignment for a given VM instance.
+--
+-- /See:/ 'dataDiskAssignment' smart constructor.
+data DataDiskAssignment = DataDiskAssignment
+ { _ddaVMInstance :: !(Maybe Text)
+ , _ddaDataDisks :: !(Maybe [Text])
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DataDiskAssignment' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ddaVMInstance'
+--
+-- * 'ddaDataDisks'
+dataDiskAssignment
+ :: DataDiskAssignment
+dataDiskAssignment =
+ DataDiskAssignment
+ { _ddaVMInstance = Nothing
+ , _ddaDataDisks = Nothing
+ }
+
+-- | VM instance name the data disks mounted to, for example
+-- \"myproject-1014-104817-4c2-harness-0\".
+ddaVMInstance :: Lens' DataDiskAssignment (Maybe Text)
+ddaVMInstance
+ = lens _ddaVMInstance
+ (\ s a -> s{_ddaVMInstance = a})
+
+-- | 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]
+ddaDataDisks
+ = lens _ddaDataDisks (\ s a -> s{_ddaDataDisks = a})
+ . _Default
+ . _Coerce
+
+instance FromJSON DataDiskAssignment where
+ parseJSON
+ = withObject "DataDiskAssignment"
+ (\ o ->
+ DataDiskAssignment <$>
+ (o .:? "vmInstance") <*>
+ (o .:? "dataDisks" .!= mempty))
+
+instance ToJSON DataDiskAssignment where
+ toJSON DataDiskAssignment{..}
+ = object
+ (catMaybes
+ [("vmInstance" .=) <$> _ddaVMInstance,
+ ("dataDisks" .=) <$> _ddaDataDisks])
+
+-- | The Dataflow service\'s idea of the current state of a WorkItem being
+-- processed by a worker.
+--
+-- /See:/ 'workItemServiceState' smart constructor.
+data WorkItemServiceState = WorkItemServiceState
+ { _wissNextReportIndex :: !(Maybe (Textual Int64))
+ , _wissReportStatusInterval :: !(Maybe Text)
+ , _wissHarnessData :: !(Maybe WorkItemServiceStateHarnessData)
+ , _wissSuggestedStopPoint :: !(Maybe ApproximateProgress)
+ , _wissSuggestedStopPosition :: !(Maybe Position)
+ , _wissLeaseExpireTime :: !(Maybe Text)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'WorkItemServiceState' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'wissNextReportIndex'
+--
+-- * 'wissReportStatusInterval'
+--
+-- * 'wissHarnessData'
+--
+-- * 'wissSuggestedStopPoint'
+--
+-- * 'wissSuggestedStopPosition'
+--
+-- * 'wissLeaseExpireTime'
+workItemServiceState
+ :: WorkItemServiceState
+workItemServiceState =
+ WorkItemServiceState
+ { _wissNextReportIndex = Nothing
+ , _wissReportStatusInterval = Nothing
+ , _wissHarnessData = Nothing
+ , _wissSuggestedStopPoint = Nothing
+ , _wissSuggestedStopPosition = Nothing
+ , _wissLeaseExpireTime = Nothing
+ }
+
+-- | 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)
+wissNextReportIndex
+ = lens _wissNextReportIndex
+ (\ s a -> s{_wissNextReportIndex = a})
+ . mapping _Coerce
+
+-- | New recommended reporting interval.
+wissReportStatusInterval :: Lens' WorkItemServiceState (Maybe Text)
+wissReportStatusInterval
+ = lens _wissReportStatusInterval
+ (\ s a -> s{_wissReportStatusInterval = a})
+
+-- | Other data returned by the service, specific to the particular worker
+-- harness.
+wissHarnessData :: Lens' WorkItemServiceState (Maybe WorkItemServiceStateHarnessData)
+wissHarnessData
+ = lens _wissHarnessData
+ (\ s a -> s{_wissHarnessData = a})
+
+-- | The progress point in the WorkItem where the Dataflow service suggests
+-- that the worker truncate the task.
+wissSuggestedStopPoint :: Lens' WorkItemServiceState (Maybe ApproximateProgress)
+wissSuggestedStopPoint
+ = lens _wissSuggestedStopPoint
+ (\ s a -> s{_wissSuggestedStopPoint = a})
+
+-- | Obsolete, always empty.
+wissSuggestedStopPosition :: Lens' WorkItemServiceState (Maybe Position)
+wissSuggestedStopPosition
+ = lens _wissSuggestedStopPosition
+ (\ s a -> s{_wissSuggestedStopPosition = a})
+
+-- | Time at which the current lease will expire.
+wissLeaseExpireTime :: Lens' WorkItemServiceState (Maybe Text)
+wissLeaseExpireTime
+ = lens _wissLeaseExpireTime
+ (\ s a -> s{_wissLeaseExpireTime = a})
+
+instance FromJSON WorkItemServiceState where
+ parseJSON
+ = withObject "WorkItemServiceState"
+ (\ o ->
+ WorkItemServiceState <$>
+ (o .:? "nextReportIndex") <*>
+ (o .:? "reportStatusInterval")
+ <*> (o .:? "harnessData")
+ <*> (o .:? "suggestedStopPoint")
+ <*> (o .:? "suggestedStopPosition")
+ <*> (o .:? "leaseExpireTime"))
+
+instance ToJSON WorkItemServiceState where
+ toJSON WorkItemServiceState{..}
+ = object
+ (catMaybes
+ [("nextReportIndex" .=) <$> _wissNextReportIndex,
+ ("reportStatusInterval" .=) <$>
+ _wissReportStatusInterval,
+ ("harnessData" .=) <$> _wissHarnessData,
+ ("suggestedStopPoint" .=) <$>
+ _wissSuggestedStopPoint,
+ ("suggestedStopPosition" .=) <$>
+ _wissSuggestedStopPosition,
+ ("leaseExpireTime" .=) <$> _wissLeaseExpireTime])
+
+-- | A task which initializes part of a streaming Dataflow job.
+--
+-- /See:/ 'streamingSetupTask' smart constructor.
+data StreamingSetupTask = StreamingSetupTask
+ { _sstStreamingComputationTopology :: !(Maybe TopologyConfig)
+ , _sstReceiveWorkPort :: !(Maybe (Textual Int32))
+ , _sstWorkerHarnessPort :: !(Maybe (Textual Int32))
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'StreamingSetupTask' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'sstStreamingComputationTopology'
+--
+-- * 'sstReceiveWorkPort'
+--
+-- * 'sstWorkerHarnessPort'
+streamingSetupTask
+ :: StreamingSetupTask
+streamingSetupTask =
+ StreamingSetupTask
+ { _sstStreamingComputationTopology = Nothing
+ , _sstReceiveWorkPort = Nothing
+ , _sstWorkerHarnessPort = Nothing
+ }
+
+-- | The global topology of the streaming Dataflow job.
+sstStreamingComputationTopology :: Lens' StreamingSetupTask (Maybe TopologyConfig)
+sstStreamingComputationTopology
+ = lens _sstStreamingComputationTopology
+ (\ s a -> s{_sstStreamingComputationTopology = a})
+
+-- | The TCP port on which the worker should listen for messages from other
+-- streaming computation workers.
+sstReceiveWorkPort :: Lens' StreamingSetupTask (Maybe Int32)
+sstReceiveWorkPort
+ = lens _sstReceiveWorkPort
+ (\ s a -> s{_sstReceiveWorkPort = a})
+ . mapping _Coerce
+
+-- | The TCP port used by the worker to communicate with the Dataflow worker
+-- harness.
+sstWorkerHarnessPort :: Lens' StreamingSetupTask (Maybe Int32)
+sstWorkerHarnessPort
+ = lens _sstWorkerHarnessPort
+ (\ s a -> s{_sstWorkerHarnessPort = a})
+ . mapping _Coerce
+
+instance FromJSON StreamingSetupTask where
+ parseJSON
+ = withObject "StreamingSetupTask"
+ (\ o ->
+ StreamingSetupTask <$>
+ (o .:? "streamingComputationTopology") <*>
+ (o .:? "receiveWorkPort")
+ <*> (o .:? "workerHarnessPort"))
+
+instance ToJSON StreamingSetupTask where
+ toJSON StreamingSetupTask{..}
+ = object
+ (catMaybes
+ [("streamingComputationTopology" .=) <$>
+ _sstStreamingComputationTopology,
+ ("receiveWorkPort" .=) <$> _sstReceiveWorkPort,
+ ("workerHarnessPort" .=) <$> _sstWorkerHarnessPort])
+
+-- | The codec to use for interpreting an element in the input PTable.
+--
+-- /See:/ 'partialGroupByKeyInstructionInputElementCodec' smart constructor.
+newtype PartialGroupByKeyInstructionInputElementCodec = PartialGroupByKeyInstructionInputElementCodec
+ { _pgbkiiecAddtional :: HashMap Text JSONValue
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PartialGroupByKeyInstructionInputElementCodec' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pgbkiiecAddtional'
+partialGroupByKeyInstructionInputElementCodec
+ :: HashMap Text JSONValue -- ^ 'pgbkiiecAddtional'
+ -> PartialGroupByKeyInstructionInputElementCodec
+partialGroupByKeyInstructionInputElementCodec pPgbkiiecAddtional_ =
+ PartialGroupByKeyInstructionInputElementCodec
+ { _pgbkiiecAddtional = _Coerce # pPgbkiiecAddtional_
+ }
+
+-- | Properties of the object.
+pgbkiiecAddtional :: Lens' PartialGroupByKeyInstructionInputElementCodec (HashMap Text JSONValue)
+pgbkiiecAddtional
+ = lens _pgbkiiecAddtional
+ (\ s a -> s{_pgbkiiecAddtional = a})
+ . _Coerce
+
+instance FromJSON
+ PartialGroupByKeyInstructionInputElementCodec where
+ parseJSON
+ = withObject
+ "PartialGroupByKeyInstructionInputElementCodec"
+ (\ o ->
+ PartialGroupByKeyInstructionInputElementCodec <$>
+ (parseJSONObject o))
+
+instance ToJSON
+ PartialGroupByKeyInstructionInputElementCodec where
+ toJSON = toJSON . _pgbkiiecAddtional
+
+-- | 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.
+--
+-- /See:/ 'mapTask' smart constructor.
+data MapTask = MapTask
+ { _mtInstructions :: !(Maybe [ParallelInstruction])
+ , _mtSystemName :: !(Maybe Text)
+ , _mtStageName :: !(Maybe Text)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'MapTask' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'mtInstructions'
+--
+-- * 'mtSystemName'
+--
+-- * 'mtStageName'
+mapTask
+ :: MapTask
+mapTask =
+ MapTask
+ { _mtInstructions = Nothing
+ , _mtSystemName = Nothing
+ , _mtStageName = Nothing
+ }
+
+-- | The instructions in the MapTask.
+mtInstructions :: Lens' MapTask [ParallelInstruction]
+mtInstructions
+ = lens _mtInstructions
+ (\ s a -> s{_mtInstructions = a})
+ . _Default
+ . _Coerce
+
+-- | System-defined name of this MapTask. Unique across the workflow.
+mtSystemName :: Lens' MapTask (Maybe Text)
+mtSystemName
+ = lens _mtSystemName (\ s a -> s{_mtSystemName = a})
+
+-- | System-defined name of the stage containing this MapTask. Unique across
+-- the workflow.
+mtStageName :: Lens' MapTask (Maybe Text)
+mtStageName
+ = lens _mtStageName (\ s a -> s{_mtStageName = a})
+
+instance FromJSON MapTask where
+ parseJSON
+ = withObject "MapTask"
+ (\ o ->
+ MapTask <$>
+ (o .:? "instructions" .!= mempty) <*>
+ (o .:? "systemName")
+ <*> (o .:? "stageName"))
+
+instance ToJSON MapTask where
+ toJSON MapTask{..}
+ = object
+ (catMaybes
+ [("instructions" .=) <$> _mtInstructions,
+ ("systemName" .=) <$> _mtSystemName,
+ ("stageName" .=) <$> _mtStageName])
+
+-- | Describes mounted data disk.
+--
+-- /See:/ 'mountedDataDisk' smart constructor.
+newtype MountedDataDisk = MountedDataDisk
+ { _mddDataDisk :: Maybe Text
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'MountedDataDisk' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'mddDataDisk'
+mountedDataDisk
+ :: MountedDataDisk
+mountedDataDisk =
+ MountedDataDisk
+ { _mddDataDisk = Nothing
+ }
+
+-- | 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)
+mddDataDisk
+ = lens _mddDataDisk (\ s a -> s{_mddDataDisk = a})
+
+instance FromJSON MountedDataDisk where
+ parseJSON
+ = withObject "MountedDataDisk"
+ (\ o -> MountedDataDisk <$> (o .:? "dataDisk"))
+
+instance ToJSON MountedDataDisk where
+ toJSON MountedDataDisk{..}
+ = object
+ (catMaybes [("dataDisk" .=) <$> _mddDataDisk])
+
+-- | The codec to use to encode data written to the sink.
+--
+-- /See:/ 'sinkCodec' smart constructor.
+newtype SinkCodec = SinkCodec
+ { _scAddtional :: HashMap Text JSONValue
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SinkCodec' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'scAddtional'
+sinkCodec
+ :: HashMap Text JSONValue -- ^ 'scAddtional'
+ -> SinkCodec
+sinkCodec pScAddtional_ =
+ SinkCodec
+ { _scAddtional = _Coerce # pScAddtional_
+ }
+
+-- | Properties of the object.
+scAddtional :: Lens' SinkCodec (HashMap Text JSONValue)
+scAddtional
+ = lens _scAddtional (\ s a -> s{_scAddtional = a}) .
+ _Coerce
+
+instance FromJSON SinkCodec where
+ parseJSON
+ = withObject "SinkCodec"
+ (\ o -> SinkCodec <$> (parseJSONObject o))
+
+instance ToJSON SinkCodec where
+ toJSON = toJSON . _scAddtional
+
+-- | The user function to invoke.
+--
+-- /See:/ 'parDoInstructionUserFn' smart constructor.
+newtype ParDoInstructionUserFn = ParDoInstructionUserFn
+ { _pdiufAddtional :: HashMap Text JSONValue
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ParDoInstructionUserFn' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pdiufAddtional'
+parDoInstructionUserFn
+ :: HashMap Text JSONValue -- ^ 'pdiufAddtional'
+ -> ParDoInstructionUserFn
+parDoInstructionUserFn pPdiufAddtional_ =
+ ParDoInstructionUserFn
+ { _pdiufAddtional = _Coerce # pPdiufAddtional_
+ }
+
+-- | Properties of the object.
+pdiufAddtional :: Lens' ParDoInstructionUserFn (HashMap Text JSONValue)
+pdiufAddtional
+ = lens _pdiufAddtional
+ (\ s a -> s{_pdiufAddtional = a})
+ . _Coerce
+
+instance FromJSON ParDoInstructionUserFn where
+ parseJSON
+ = withObject "ParDoInstructionUserFn"
+ (\ o ->
+ ParDoInstructionUserFn <$> (parseJSONObject o))
+
+instance ToJSON ParDoInstructionUserFn where
+ toJSON = toJSON . _pdiufAddtional
+
+-- | The codec to use to encode data being written via this output.
+--
+-- /See:/ 'instructionOutputCodec' smart constructor.
+newtype InstructionOutputCodec = InstructionOutputCodec
+ { _iocAddtional :: HashMap Text JSONValue
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'InstructionOutputCodec' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'iocAddtional'
+instructionOutputCodec
+ :: HashMap Text JSONValue -- ^ 'iocAddtional'
+ -> InstructionOutputCodec
+instructionOutputCodec pIocAddtional_ =
+ InstructionOutputCodec
+ { _iocAddtional = _Coerce # pIocAddtional_
+ }
+
+-- | Properties of the object.
+iocAddtional :: Lens' InstructionOutputCodec (HashMap Text JSONValue)
+iocAddtional
+ = lens _iocAddtional (\ s a -> s{_iocAddtional = a})
+ . _Coerce
+
+instance FromJSON InstructionOutputCodec where
+ parseJSON
+ = withObject "InstructionOutputCodec"
+ (\ o ->
+ InstructionOutputCodec <$> (parseJSONObject o))
+
+instance ToJSON InstructionOutputCodec where
+ toJSON = toJSON . _iocAddtional
+
+-- | Describes a stream of data, either as input to be processed or as output
+-- of a streaming Dataflow job.
+--
+-- /See:/ 'streamLocation' smart constructor.
+data StreamLocation = StreamLocation
+ { _slStreamingStageLocation :: !(Maybe StreamingStageLocation)
+ , _slSideInputLocation :: !(Maybe StreamingSideInputLocation)
+ , _slCustomSourceLocation :: !(Maybe CustomSourceLocation)
+ , _slPubsubLocation :: !(Maybe PubsubLocation)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'StreamLocation' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'slStreamingStageLocation'
+--
+-- * 'slSideInputLocation'
+--
+-- * 'slCustomSourceLocation'
+--
+-- * 'slPubsubLocation'
+streamLocation
+ :: StreamLocation
+streamLocation =
+ StreamLocation
+ { _slStreamingStageLocation = Nothing
+ , _slSideInputLocation = Nothing
+ , _slCustomSourceLocation = Nothing
+ , _slPubsubLocation = Nothing
+ }
+
+-- | The stream is part of another computation within the current streaming
+-- Dataflow job.
+slStreamingStageLocation :: Lens' StreamLocation (Maybe StreamingStageLocation)
+slStreamingStageLocation
+ = lens _slStreamingStageLocation
+ (\ s a -> s{_slStreamingStageLocation = a})
+
+-- | The stream is a streaming side input.
+slSideInputLocation :: Lens' StreamLocation (Maybe StreamingSideInputLocation)
+slSideInputLocation
+ = lens _slSideInputLocation
+ (\ s a -> s{_slSideInputLocation = a})
+
+-- | The stream is a custom source.
+slCustomSourceLocation :: Lens' StreamLocation (Maybe CustomSourceLocation)
+slCustomSourceLocation
+ = lens _slCustomSourceLocation
+ (\ s a -> s{_slCustomSourceLocation = a})
+
+-- | The stream is a pubsub stream.
+slPubsubLocation :: Lens' StreamLocation (Maybe PubsubLocation)
+slPubsubLocation
+ = lens _slPubsubLocation
+ (\ s a -> s{_slPubsubLocation = a})
+
+instance FromJSON StreamLocation where
+ parseJSON
+ = withObject "StreamLocation"
+ (\ o ->
+ StreamLocation <$>
+ (o .:? "streamingStageLocation") <*>
+ (o .:? "sideInputLocation")
+ <*> (o .:? "customSourceLocation")
+ <*> (o .:? "pubsubLocation"))
+
+instance ToJSON StreamLocation where
+ toJSON StreamLocation{..}
+ = object
+ (catMaybes
+ [("streamingStageLocation" .=) <$>
+ _slStreamingStageLocation,
+ ("sideInputLocation" .=) <$> _slSideInputLocation,
+ ("customSourceLocation" .=) <$>
+ _slCustomSourceLocation,
+ ("pubsubLocation" .=) <$> _slPubsubLocation])
+
+-- | Extra arguments for this worker pool.
+--
+-- /See:/ 'workerPoolPoolArgs' smart constructor.
+newtype WorkerPoolPoolArgs = WorkerPoolPoolArgs
+ { _wppaAddtional :: HashMap Text JSONValue
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'WorkerPoolPoolArgs' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'wppaAddtional'
+workerPoolPoolArgs
+ :: HashMap Text JSONValue -- ^ 'wppaAddtional'
+ -> WorkerPoolPoolArgs
+workerPoolPoolArgs pWppaAddtional_ =
+ WorkerPoolPoolArgs
+ { _wppaAddtional = _Coerce # pWppaAddtional_
+ }
+
+-- | Properties of the object. Contains field \'ype with type URL.
+wppaAddtional :: Lens' WorkerPoolPoolArgs (HashMap Text JSONValue)
+wppaAddtional
+ = lens _wppaAddtional
+ (\ s a -> s{_wppaAddtional = a})
+ . _Coerce
+
+instance FromJSON WorkerPoolPoolArgs where
+ parseJSON
+ = withObject "WorkerPoolPoolArgs"
+ (\ o -> WorkerPoolPoolArgs <$> (parseJSONObject o))
+
+instance ToJSON WorkerPoolPoolArgs where
+ toJSON = toJSON . _wppaAddtional
+
+-- | Identifies the location of a streaming side input.
+--
+-- /See:/ 'streamingSideInputLocation' smart constructor.
+data StreamingSideInputLocation = StreamingSideInputLocation
+ { _ssilTag :: !(Maybe Text)
+ , _ssilStateFamily :: !(Maybe Text)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'StreamingSideInputLocation' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ssilTag'
+--
+-- * 'ssilStateFamily'
+streamingSideInputLocation
+ :: StreamingSideInputLocation
+streamingSideInputLocation =
+ StreamingSideInputLocation
+ { _ssilTag = Nothing
+ , _ssilStateFamily = Nothing
+ }
+
+-- | Identifies the particular side input within the streaming Dataflow job.
+ssilTag :: Lens' StreamingSideInputLocation (Maybe Text)
+ssilTag = lens _ssilTag (\ s a -> s{_ssilTag = a})
+
+-- | Identifies the state family where this side input is stored.
+ssilStateFamily :: Lens' StreamingSideInputLocation (Maybe Text)
+ssilStateFamily
+ = lens _ssilStateFamily
+ (\ s a -> s{_ssilStateFamily = a})
+
+instance FromJSON StreamingSideInputLocation where
+ parseJSON
+ = withObject "StreamingSideInputLocation"
+ (\ o ->
+ StreamingSideInputLocation <$>
+ (o .:? "tag") <*> (o .:? "stateFamily"))
+
+instance ToJSON StreamingSideInputLocation where
+ toJSON StreamingSideInputLocation{..}
+ = object
+ (catMaybes
+ [("tag" .=) <$> _ssilTag,
+ ("stateFamily" .=) <$> _ssilStateFamily])
+
+-- | A task which describes what action should be performed for the specified
+-- streaming computation ranges.
+--
+-- /See:/ 'streamingComputationTask' smart constructor.
+data StreamingComputationTask = StreamingComputationTask
+ { _sctTaskType :: !(Maybe Text)
+ , _sctDataDisks :: !(Maybe [MountedDataDisk])
+ , _sctComputationRanges :: !(Maybe [StreamingComputationRanges])
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'StreamingComputationTask' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'sctTaskType'
+--
+-- * 'sctDataDisks'
+--
+-- * 'sctComputationRanges'
+streamingComputationTask
+ :: StreamingComputationTask
+streamingComputationTask =
+ StreamingComputationTask
+ { _sctTaskType = Nothing
+ , _sctDataDisks = Nothing
+ , _sctComputationRanges = Nothing
+ }
+
+-- | A type of streaming computation task.
+sctTaskType :: Lens' StreamingComputationTask (Maybe Text)
+sctTaskType
+ = lens _sctTaskType (\ s a -> s{_sctTaskType = a})
+
+-- | Describes the set of data disks this task should apply to.
+sctDataDisks :: Lens' StreamingComputationTask [MountedDataDisk]
+sctDataDisks
+ = lens _sctDataDisks (\ s a -> s{_sctDataDisks = a})
+ . _Default
+ . _Coerce
+
+-- | Contains ranges of a streaming computation this task should apply to.
+sctComputationRanges :: Lens' StreamingComputationTask [StreamingComputationRanges]
+sctComputationRanges
+ = lens _sctComputationRanges
+ (\ s a -> s{_sctComputationRanges = a})
+ . _Default
+ . _Coerce
+
+instance FromJSON StreamingComputationTask where
+ parseJSON
+ = withObject "StreamingComputationTask"
+ (\ o ->
+ StreamingComputationTask <$>
+ (o .:? "taskType") <*> (o .:? "dataDisks" .!= mempty)
+ <*> (o .:? "computationRanges" .!= mempty))
+
+instance ToJSON StreamingComputationTask where
+ toJSON StreamingComputationTask{..}
+ = object
+ (catMaybes
+ [("taskType" .=) <$> _sctTaskType,
+ ("dataDisks" .=) <$> _sctDataDisks,
+ ("computationRanges" .=) <$> _sctComputationRanges])
+
+-- | A particular message pertaining to a Dataflow job.
+--
+-- /See:/ 'jobMessage' smart constructor.
+data JobMessage = JobMessage
+ { _jmTime :: !(Maybe Text)
+ , _jmMessageText :: !(Maybe Text)
+ , _jmMessageImportance :: !(Maybe Text)
+ , _jmId :: !(Maybe Text)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'JobMessage' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'jmTime'
+--
+-- * 'jmMessageText'
+--
+-- * 'jmMessageImportance'
+--
+-- * 'jmId'
+jobMessage
+ :: JobMessage
+jobMessage =
+ JobMessage
+ { _jmTime = Nothing
+ , _jmMessageText = Nothing
+ , _jmMessageImportance = Nothing
+ , _jmId = Nothing
+ }
+
+-- | The timestamp of the message.
+jmTime :: Lens' JobMessage (Maybe Text)
+jmTime = lens _jmTime (\ s a -> s{_jmTime = a})
+
+-- | The text of the message.
+jmMessageText :: Lens' JobMessage (Maybe Text)
+jmMessageText
+ = lens _jmMessageText
+ (\ s a -> s{_jmMessageText = a})
+
+-- | Importance level of the message.
+jmMessageImportance :: Lens' JobMessage (Maybe Text)
+jmMessageImportance
+ = lens _jmMessageImportance
+ (\ s a -> s{_jmMessageImportance = a})
+
+-- | Identifies the message. This is automatically generated by the service;
+-- the caller should treat it as an opaque string.
+jmId :: Lens' JobMessage (Maybe Text)
+jmId = lens _jmId (\ s a -> s{_jmId = a})
+
+instance FromJSON JobMessage where
+ parseJSON
+ = withObject "JobMessage"
+ (\ o ->
+ JobMessage <$>
+ (o .:? "time") <*> (o .:? "messageText") <*>
+ (o .:? "messageImportance")
+ <*> (o .:? "id"))
+
+instance ToJSON JobMessage where
+ toJSON JobMessage{..}
+ = object
+ (catMaybes
+ [("time" .=) <$> _jmTime,
+ ("messageText" .=) <$> _jmMessageText,
+ ("messageImportance" .=) <$> _jmMessageImportance,
+ ("id" .=) <$> _jmId])
+
+-- | Information about an output of a SeqMapTask.
+--
+-- /See:/ 'seqMapTaskOutputInfo' smart constructor.
+data SeqMapTaskOutputInfo = SeqMapTaskOutputInfo
+ { _smtoiSink :: !(Maybe Sink)
+ , _smtoiTag :: !(Maybe Text)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SeqMapTaskOutputInfo' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'smtoiSink'
+--
+-- * 'smtoiTag'
+seqMapTaskOutputInfo
+ :: SeqMapTaskOutputInfo
+seqMapTaskOutputInfo =
+ SeqMapTaskOutputInfo
+ { _smtoiSink = Nothing
+ , _smtoiTag = Nothing
+ }
+
+-- | The sink to write the output value to.
+smtoiSink :: Lens' SeqMapTaskOutputInfo (Maybe Sink)
+smtoiSink
+ = lens _smtoiSink (\ s a -> s{_smtoiSink = a})
+
+-- | The id of the TupleTag the user code will tag the output value by.
+smtoiTag :: Lens' SeqMapTaskOutputInfo (Maybe Text)
+smtoiTag = lens _smtoiTag (\ s a -> s{_smtoiTag = a})
+
+instance FromJSON SeqMapTaskOutputInfo where
+ parseJSON
+ = withObject "SeqMapTaskOutputInfo"
+ (\ o ->
+ SeqMapTaskOutputInfo <$>
+ (o .:? "sink") <*> (o .:? "tag"))
+
+instance ToJSON SeqMapTaskOutputInfo where
+ toJSON SeqMapTaskOutputInfo{..}
+ = object
+ (catMaybes
+ [("sink" .=) <$> _smtoiSink,
+ ("tag" .=) <$> _smtoiTag])
+
+-- | A request to compute the SourceMetadata of a Source.
+--
+-- /See:/ 'sourceGetMetadataRequest' smart constructor.
+newtype SourceGetMetadataRequest = SourceGetMetadataRequest
+ { _sgmrSource :: Maybe Source
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SourceGetMetadataRequest' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'sgmrSource'
+sourceGetMetadataRequest
+ :: SourceGetMetadataRequest
+sourceGetMetadataRequest =
+ SourceGetMetadataRequest
+ { _sgmrSource = Nothing
+ }
+
+-- | Specification of the source whose metadata should be computed.
+sgmrSource :: Lens' SourceGetMetadataRequest (Maybe Source)
+sgmrSource
+ = lens _sgmrSource (\ s a -> s{_sgmrSource = a})
+
+instance FromJSON SourceGetMetadataRequest where
+ parseJSON
+ = withObject "SourceGetMetadataRequest"
+ (\ o ->
+ SourceGetMetadataRequest <$> (o .:? "source"))
+
+instance ToJSON SourceGetMetadataRequest where
+ toJSON SourceGetMetadataRequest{..}
+ = object (catMaybes [("source" .=) <$> _sgmrSource])
+
+-- | The user function to invoke.
+--
+-- /See:/ 'seqMapTaskUserFn' smart constructor.
+newtype SeqMapTaskUserFn = SeqMapTaskUserFn
+ { _smtufAddtional :: HashMap Text JSONValue
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SeqMapTaskUserFn' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'smtufAddtional'
+seqMapTaskUserFn
+ :: HashMap Text JSONValue -- ^ 'smtufAddtional'
+ -> SeqMapTaskUserFn
+seqMapTaskUserFn pSmtufAddtional_ =
+ SeqMapTaskUserFn
+ { _smtufAddtional = _Coerce # pSmtufAddtional_
+ }
+
+-- | Properties of the object.
+smtufAddtional :: Lens' SeqMapTaskUserFn (HashMap Text JSONValue)
+smtufAddtional
+ = lens _smtufAddtional
+ (\ s a -> s{_smtufAddtional = a})
+ . _Coerce
+
+instance FromJSON SeqMapTaskUserFn where
+ parseJSON
+ = withObject "SeqMapTaskUserFn"
+ (\ o -> SeqMapTaskUserFn <$> (parseJSONObject o))
+
+instance ToJSON SeqMapTaskUserFn where
+ toJSON = toJSON . _smtufAddtional
+
+-- | The value combining function to invoke.
+--
+-- /See:/ 'partialGroupByKeyInstructionValueCombiningFn' smart constructor.
+newtype PartialGroupByKeyInstructionValueCombiningFn = PartialGroupByKeyInstructionValueCombiningFn
+ { _pgbkivcfAddtional :: HashMap Text JSONValue
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PartialGroupByKeyInstructionValueCombiningFn' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pgbkivcfAddtional'
+partialGroupByKeyInstructionValueCombiningFn
+ :: HashMap Text JSONValue -- ^ 'pgbkivcfAddtional'
+ -> PartialGroupByKeyInstructionValueCombiningFn
+partialGroupByKeyInstructionValueCombiningFn pPgbkivcfAddtional_ =
+ PartialGroupByKeyInstructionValueCombiningFn
+ { _pgbkivcfAddtional = _Coerce # pPgbkivcfAddtional_
+ }
+
+-- | Properties of the object.
+pgbkivcfAddtional :: Lens' PartialGroupByKeyInstructionValueCombiningFn (HashMap Text JSONValue)
+pgbkivcfAddtional
+ = lens _pgbkivcfAddtional
+ (\ s a -> s{_pgbkivcfAddtional = a})
+ . _Coerce
+
+instance FromJSON
+ PartialGroupByKeyInstructionValueCombiningFn where
+ parseJSON
+ = withObject
+ "PartialGroupByKeyInstructionValueCombiningFn"
+ (\ o ->
+ PartialGroupByKeyInstructionValueCombiningFn <$>
+ (parseJSONObject o))
+
+instance ToJSON
+ PartialGroupByKeyInstructionValueCombiningFn where
+ toJSON = toJSON . _pgbkivcfAddtional
+
+-- | Defines a job to be run by the Dataflow service.
+--
+-- /See:/ 'job' smart constructor.
+data Job = Job
+ { _jRequestedState :: !(Maybe Text)
+ , _jEnvironment :: !(Maybe Environment)
+ , _jClientRequestId :: !(Maybe Text)
+ , _jCurrentState :: !(Maybe Text)
+ , _jReplacedByJobId :: !(Maybe Text)
+ , _jSteps :: !(Maybe [Step])
+ , _jExecutionInfo :: !(Maybe JobExecutionInfo)
+ , _jName :: !(Maybe Text)
+ , _jTransformNameMApping :: !(Maybe JobTransformNameMApping)
+ , _jId :: !(Maybe Text)
+ , _jProjectId :: !(Maybe Text)
+ , _jType :: !(Maybe Text)
+ , _jCurrentStateTime :: !(Maybe Text)
+ , _jReplaceJobId :: !(Maybe Text)
+ , _jCreateTime :: !(Maybe Text)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Job' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'jRequestedState'
+--
+-- * 'jEnvironment'
+--
+-- * 'jClientRequestId'
+--
+-- * 'jCurrentState'
+--
+-- * 'jReplacedByJobId'
+--
+-- * 'jSteps'
+--
+-- * 'jExecutionInfo'
+--
+-- * 'jName'
+--
+-- * 'jTransformNameMApping'
+--
+-- * 'jId'
+--
+-- * 'jProjectId'
+--
+-- * 'jType'
+--
+-- * 'jCurrentStateTime'
+--
+-- * 'jReplaceJobId'
+--
+-- * 'jCreateTime'
+job
+ :: Job
+job =
+ Job
+ { _jRequestedState = Nothing
+ , _jEnvironment = Nothing
+ , _jClientRequestId = Nothing
+ , _jCurrentState = Nothing
+ , _jReplacedByJobId = Nothing
+ , _jSteps = Nothing
+ , _jExecutionInfo = Nothing
+ , _jName = Nothing
+ , _jTransformNameMApping = Nothing
+ , _jId = Nothing
+ , _jProjectId = Nothing
+ , _jType = Nothing
+ , _jCurrentStateTime = Nothing
+ , _jReplaceJobId = Nothing
+ , _jCreateTime = Nothing
+ }
+
+-- | 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)
+jRequestedState
+ = lens _jRequestedState
+ (\ s a -> s{_jRequestedState = a})
+
+-- | Environment for the job.
+jEnvironment :: Lens' Job (Maybe Environment)
+jEnvironment
+ = lens _jEnvironment (\ s a -> s{_jEnvironment = a})
+
+-- | Client\'s unique identifier of the job, re-used by SDK across retried
+-- attempts. If this field is set, the service will ensure its uniqueness.
+-- That is, 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, for example, 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)
+jClientRequestId
+ = lens _jClientRequestId
+ (\ s a -> s{_jClientRequestId = a})
+
+-- | 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. Once a job has reached a
+-- terminal state, no further state updates may be made. This field may be
+-- mutated by the Dataflow service; callers cannot mutate it.
+jCurrentState :: Lens' Job (Maybe Text)
+jCurrentState
+ = lens _jCurrentState
+ (\ s a -> s{_jCurrentState = a})
+
+-- | If another job is an update of this job (and thus, this job is in
+-- JOB_STATE_UPDATED), this field will contain the ID of that job.
+jReplacedByJobId :: Lens' Job (Maybe Text)
+jReplacedByJobId
+ = lens _jReplacedByJobId
+ (\ s a -> s{_jReplacedByJobId = a})
+
+-- | The top-level steps that constitute the entire job.
+jSteps :: Lens' Job [Step]
+jSteps
+ = lens _jSteps (\ s a -> s{_jSteps = a}) . _Default .
+ _Coerce
+
+-- | Information about how the Dataflow service will actually run the job.
+jExecutionInfo :: Lens' Job (Maybe JobExecutionInfo)
+jExecutionInfo
+ = lens _jExecutionInfo
+ (\ s a -> s{_jExecutionInfo = a})
+
+-- | The user-specified 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 will
+-- return 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)
+jName = lens _jName (\ s a -> s{_jName = a})
+
+-- | 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)
+jTransformNameMApping
+ = lens _jTransformNameMApping
+ (\ s a -> s{_jTransformNameMApping = a})
+
+-- | The unique ID of this job. This field is set by the Dataflow service
+-- when the Job is created, and is immutable for the life of the Job.
+jId :: Lens' Job (Maybe Text)
+jId = lens _jId (\ s a -> s{_jId = a})
+
+-- | The project which owns the job.
+jProjectId :: Lens' Job (Maybe Text)
+jProjectId
+ = lens _jProjectId (\ s a -> s{_jProjectId = a})
+
+-- | The type of dataflow job.
+jType :: Lens' Job (Maybe Text)
+jType = lens _jType (\ s a -> s{_jType = a})
+
+-- | The timestamp associated with the current state.
+jCurrentStateTime :: Lens' Job (Maybe Text)
+jCurrentStateTime
+ = lens _jCurrentStateTime
+ (\ s a -> s{_jCurrentStateTime = a})
+
+-- | If this job is an update of an existing job, this field will be the ID
+-- of the job it replaced. When sending a CreateJobRequest, you can update
+-- a job by specifying it here. The job named here will be stopped, and its
+-- intermediate state transferred to this job.
+jReplaceJobId :: Lens' Job (Maybe Text)
+jReplaceJobId
+ = lens _jReplaceJobId
+ (\ s a -> s{_jReplaceJobId = a})
+
+-- | Timestamp when job was initially created. Immutable, set by the Dataflow
+-- service.
+jCreateTime :: Lens' Job (Maybe Text)
+jCreateTime
+ = lens _jCreateTime (\ s a -> s{_jCreateTime = a})
+
+instance FromJSON Job where
+ parseJSON
+ = withObject "Job"
+ (\ o ->
+ Job <$>
+ (o .:? "requestedState") <*> (o .:? "environment")
+ <*> (o .:? "clientRequestId")
+ <*> (o .:? "currentState")
+ <*> (o .:? "replacedByJobId")
+ <*> (o .:? "steps" .!= mempty)
+ <*> (o .:? "executionInfo")
+ <*> (o .:? "name")
+ <*> (o .:? "transformNameMapping")
+ <*> (o .:? "id")
+ <*> (o .:? "projectId")
+ <*> (o .:? "type")
+ <*> (o .:? "currentStateTime")
+ <*> (o .:? "replaceJobId")
+ <*> (o .:? "createTime"))
+
+instance ToJSON Job where
+ toJSON Job{..}
+ = object
+ (catMaybes
+ [("requestedState" .=) <$> _jRequestedState,
+ ("environment" .=) <$> _jEnvironment,
+ ("clientRequestId" .=) <$> _jClientRequestId,
+ ("currentState" .=) <$> _jCurrentState,
+ ("replacedByJobId" .=) <$> _jReplacedByJobId,
+ ("steps" .=) <$> _jSteps,
+ ("executionInfo" .=) <$> _jExecutionInfo,
+ ("name" .=) <$> _jName,
+ ("transformNameMapping" .=) <$>
+ _jTransformNameMApping,
+ ("id" .=) <$> _jId, ("projectId" .=) <$> _jProjectId,
+ ("type" .=) <$> _jType,
+ ("currentStateTime" .=) <$> _jCurrentStateTime,
+ ("replaceJobId" .=) <$> _jReplaceJobId,
+ ("createTime" .=) <$> _jCreateTime])
+
+-- | An instruction that reads records. Takes no inputs, produces one output.
+--
+-- /See:/ 'readInstruction' smart constructor.
+newtype ReadInstruction = ReadInstruction
+ { _riSource :: Maybe Source
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ReadInstruction' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'riSource'
+readInstruction
+ :: ReadInstruction
+readInstruction =
+ ReadInstruction
+ { _riSource = Nothing
+ }
+
+-- | The source to read from.
+riSource :: Lens' ReadInstruction (Maybe Source)
+riSource = lens _riSource (\ s a -> s{_riSource = a})
+
+instance FromJSON ReadInstruction where
+ parseJSON
+ = withObject "ReadInstruction"
+ (\ o -> ReadInstruction <$> (o .:? "source"))
+
+instance ToJSON ReadInstruction where
+ toJSON ReadInstruction{..}
+ = object (catMaybes [("source" .=) <$> _riSource])
+
+-- | The sink to write to, plus its parameters.
+--
+-- /See:/ 'sinkSpec' smart constructor.
+newtype SinkSpec = SinkSpec
+ { _sAddtional :: HashMap Text JSONValue
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SinkSpec' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'sAddtional'
+sinkSpec
+ :: HashMap Text JSONValue -- ^ 'sAddtional'
+ -> SinkSpec
+sinkSpec pSAddtional_ =
+ SinkSpec
+ { _sAddtional = _Coerce # pSAddtional_
+ }
+
+-- | Properties of the object.
+sAddtional :: Lens' SinkSpec (HashMap Text JSONValue)
+sAddtional
+ = lens _sAddtional (\ s a -> s{_sAddtional = a}) .
+ _Coerce
+
+instance FromJSON SinkSpec where
+ parseJSON
+ = withObject "SinkSpec"
+ (\ o -> SinkSpec <$> (parseJSONObject o))
+
+instance ToJSON SinkSpec where
+ toJSON = toJSON . _sAddtional
+
+-- | Describes one particular pool of Dataflow workers to be instantiated by
+-- the 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.
+--
+-- /See:/ 'workerPool' smart constructor.
+data WorkerPool = WorkerPool
+ { _wpAutoscalingSettings :: !(Maybe AutoscalingSettings)
+ , _wpDiskSizeGb :: !(Maybe (Textual Int32))
+ , _wpKind :: !(Maybe Text)
+ , _wpTaskrunnerSettings :: !(Maybe TaskRunnerSettings)
+ , _wpNumWorkers :: !(Maybe (Textual Int32))
+ , _wpNetwork :: !(Maybe Text)
+ , _wpZone :: !(Maybe Text)
+ , _wpPackages :: !(Maybe [Package])
+ , _wpOnHostMaintenance :: !(Maybe Text)
+ , _wpDiskSourceImage :: !(Maybe Text)
+ , _wpMachineType :: !(Maybe Text)
+ , _wpMetadata :: !(Maybe WorkerPoolMetadata)
+ , _wpDiskType :: !(Maybe Text)
+ , _wpTeardownPolicy :: !(Maybe Text)
+ , _wpDefaultPackageSet :: !(Maybe Text)
+ , _wpPoolArgs :: !(Maybe WorkerPoolPoolArgs)
+ , _wpDataDisks :: !(Maybe [Disk])
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'WorkerPool' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'wpAutoscalingSettings'
+--
+-- * 'wpDiskSizeGb'
+--
+-- * 'wpKind'
+--
+-- * 'wpTaskrunnerSettings'
+--
+-- * 'wpNumWorkers'
+--
+-- * 'wpNetwork'
+--
+-- * 'wpZone'
+--
+-- * 'wpPackages'
+--
+-- * 'wpOnHostMaintenance'
+--
+-- * 'wpDiskSourceImage'
+--
+-- * 'wpMachineType'
+--
+-- * 'wpMetadata'
+--
+-- * 'wpDiskType'
+--
+-- * 'wpTeardownPolicy'
+--
+-- * 'wpDefaultPackageSet'
+--
+-- * 'wpPoolArgs'
+--
+-- * 'wpDataDisks'
+workerPool
+ :: WorkerPool
+workerPool =
+ WorkerPool
+ { _wpAutoscalingSettings = Nothing
+ , _wpDiskSizeGb = Nothing
+ , _wpKind = Nothing
+ , _wpTaskrunnerSettings = Nothing
+ , _wpNumWorkers = Nothing
+ , _wpNetwork = Nothing
+ , _wpZone = Nothing
+ , _wpPackages = Nothing
+ , _wpOnHostMaintenance = Nothing
+ , _wpDiskSourceImage = Nothing
+ , _wpMachineType = Nothing
+ , _wpMetadata = Nothing
+ , _wpDiskType = Nothing
+ , _wpTeardownPolicy = Nothing
+ , _wpDefaultPackageSet = Nothing
+ , _wpPoolArgs = Nothing
+ , _wpDataDisks = Nothing
+ }
+
+-- | Settings for autoscaling of this WorkerPool.
+wpAutoscalingSettings :: Lens' WorkerPool (Maybe AutoscalingSettings)
+wpAutoscalingSettings
+ = lens _wpAutoscalingSettings
+ (\ s a -> s{_wpAutoscalingSettings = a})
+
+-- | 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)
+wpDiskSizeGb
+ = lens _wpDiskSizeGb (\ s a -> s{_wpDiskSizeGb = a})
+ . mapping _Coerce
+
+-- | The kind of the worker pool; currently only \'harness\' and \'shuffle\'
+-- are supported.
+wpKind :: Lens' WorkerPool (Maybe Text)
+wpKind = lens _wpKind (\ s a -> s{_wpKind = a})
+
+-- | 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)
+wpTaskrunnerSettings
+ = lens _wpTaskrunnerSettings
+ (\ s a -> s{_wpTaskrunnerSettings = a})
+
+-- | 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)
+wpNumWorkers
+ = lens _wpNumWorkers (\ s a -> s{_wpNumWorkers = a})
+ . mapping _Coerce
+
+-- | Network to which VMs will be assigned. If empty or unspecified, the
+-- service will use the network \"default\".
+wpNetwork :: Lens' WorkerPool (Maybe Text)
+wpNetwork
+ = lens _wpNetwork (\ s a -> s{_wpNetwork = a})
+
+-- | Zone to run the worker pools in (e.g. \"us-central1-b\"). If empty or
+-- unspecified, the service will attempt to choose a reasonable default.
+wpZone :: Lens' WorkerPool (Maybe Text)
+wpZone = lens _wpZone (\ s a -> s{_wpZone = a})
+
+-- | Packages to be installed on workers.
+wpPackages :: Lens' WorkerPool [Package]
+wpPackages
+ = lens _wpPackages (\ s a -> s{_wpPackages = a}) .
+ _Default
+ . _Coerce
+
+-- | The action to take on host maintenance, as defined by the Google Compute
+-- Engine API.
+wpOnHostMaintenance :: Lens' WorkerPool (Maybe Text)
+wpOnHostMaintenance
+ = lens _wpOnHostMaintenance
+ (\ s a -> s{_wpOnHostMaintenance = a})
+
+-- | Fully qualified source image for disks.
+wpDiskSourceImage :: Lens' WorkerPool (Maybe Text)
+wpDiskSourceImage
+ = lens _wpDiskSourceImage
+ (\ s a -> s{_wpDiskSourceImage = a})
+
+-- | 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)
+wpMachineType
+ = lens _wpMachineType
+ (\ s a -> s{_wpMachineType = a})
+
+-- | Metadata to set on the Google Compute Engine VMs.
+wpMetadata :: Lens' WorkerPool (Maybe WorkerPoolMetadata)
+wpMetadata
+ = lens _wpMetadata (\ s a -> s{_wpMetadata = a})
+
+-- | Type of root disk for VMs. If empty or unspecified, the service will
+-- attempt to choose a reasonable default.
+wpDiskType :: Lens' WorkerPool (Maybe Text)
+wpDiskType
+ = lens _wpDiskType (\ s a -> s{_wpDiskType = a})
+
+-- | 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)
+wpTeardownPolicy
+ = lens _wpTeardownPolicy
+ (\ s a -> s{_wpTeardownPolicy = a})
+
+-- | 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)
+wpDefaultPackageSet
+ = lens _wpDefaultPackageSet
+ (\ s a -> s{_wpDefaultPackageSet = a})
+
+-- | Extra arguments for this worker pool.
+wpPoolArgs :: Lens' WorkerPool (Maybe WorkerPoolPoolArgs)
+wpPoolArgs
+ = lens _wpPoolArgs (\ s a -> s{_wpPoolArgs = a})
+
+-- | Data disks that are used by a VM in this workflow.
+wpDataDisks :: Lens' WorkerPool [Disk]
+wpDataDisks
+ = lens _wpDataDisks (\ s a -> s{_wpDataDisks = a}) .
+ _Default
+ . _Coerce
+
+instance FromJSON WorkerPool where
+ parseJSON
+ = withObject "WorkerPool"
+ (\ o ->
+ WorkerPool <$>
+ (o .:? "autoscalingSettings") <*>
+ (o .:? "diskSizeGb")
+ <*> (o .:? "kind")
+ <*> (o .:? "taskrunnerSettings")
+ <*> (o .:? "numWorkers")
+ <*> (o .:? "network")
+ <*> (o .:? "zone")
+ <*> (o .:? "packages" .!= mempty)
+ <*> (o .:? "onHostMaintenance")
+ <*> (o .:? "diskSourceImage")
+ <*> (o .:? "machineType")
+ <*> (o .:? "metadata")
+ <*> (o .:? "diskType")
+ <*> (o .:? "teardownPolicy")
+ <*> (o .:? "defaultPackageSet")
+ <*> (o .:? "poolArgs")
+ <*> (o .:? "dataDisks" .!= mempty))
+
+instance ToJSON WorkerPool where
+ toJSON WorkerPool{..}
+ = object
+ (catMaybes
+ [("autoscalingSettings" .=) <$>
+ _wpAutoscalingSettings,
+ ("diskSizeGb" .=) <$> _wpDiskSizeGb,
+ ("kind" .=) <$> _wpKind,
+ ("taskrunnerSettings" .=) <$> _wpTaskrunnerSettings,
+ ("numWorkers" .=) <$> _wpNumWorkers,
+ ("network" .=) <$> _wpNetwork,
+ ("zone" .=) <$> _wpZone,
+ ("packages" .=) <$> _wpPackages,
+ ("onHostMaintenance" .=) <$> _wpOnHostMaintenance,
+ ("diskSourceImage" .=) <$> _wpDiskSourceImage,
+ ("machineType" .=) <$> _wpMachineType,
+ ("metadata" .=) <$> _wpMetadata,
+ ("diskType" .=) <$> _wpDiskType,
+ ("teardownPolicy" .=) <$> _wpTeardownPolicy,
+ ("defaultPackageSet" .=) <$> _wpDefaultPackageSet,
+ ("poolArgs" .=) <$> _wpPoolArgs,
+ ("dataDisks" .=) <$> _wpDataDisks])
+
+-- | Defines a particular step within a 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 Dataflow service may be
+-- used to run many different types of jobs, not just Map-Reduce).
+--
+-- /See:/ 'step' smart constructor.
+data Step = Step
+ { _sKind :: !(Maybe Text)
+ , _sName :: !(Maybe Text)
+ , _sProperties :: !(Maybe StepProperties)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Step' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'sKind'
+--
+-- * 'sName'
+--
+-- * 'sProperties'
+step
+ :: Step
+step =
+ Step
+ { _sKind = Nothing
+ , _sName = Nothing
+ , _sProperties = Nothing
+ }
+
+-- | The kind of step in the dataflow Job.
+sKind :: Lens' Step (Maybe Text)
+sKind = lens _sKind (\ s a -> s{_sKind = a})
+
+-- | Name identifying the step. This must be unique for each step with
+-- respect to all other steps in the dataflow Job.
+sName :: Lens' Step (Maybe Text)
+sName = lens _sName (\ s a -> s{_sName = a})
+
+-- | Named properties associated with the step. Each kind of predefined step
+-- has its own required set of properties.
+sProperties :: Lens' Step (Maybe StepProperties)
+sProperties
+ = lens _sProperties (\ s a -> s{_sProperties = a})
+
+instance FromJSON Step where
+ parseJSON
+ = withObject "Step"
+ (\ o ->
+ Step <$>
+ (o .:? "kind") <*> (o .:? "name") <*>
+ (o .:? "properties"))
+
+instance ToJSON Step where
+ toJSON Step{..}
+ = object
+ (catMaybes
+ [("kind" .=) <$> _sKind, ("name" .=) <$> _sName,
+ ("properties" .=) <$> _sProperties])
+
+-- | Packages that need to be installed in order for a worker to run the
+-- steps of the Dataflow job which will be assigned to its worker pool.
+-- This is the mechanism by which the SDK causes code to be loaded onto the
+-- workers. For example, the 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.
+--
+-- /See:/ 'package' smart constructor.
+data Package = Package
+ { _pLocation :: !(Maybe Text)
+ , _pName :: !(Maybe Text)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Package' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pLocation'
+--
+-- * 'pName'
+package
+ :: Package
+package =
+ Package
+ { _pLocation = Nothing
+ , _pName = Nothing
+ }
+
+-- | 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)
+pLocation
+ = lens _pLocation (\ s a -> s{_pLocation = a})
+
+-- | The name of the package.
+pName :: Lens' Package (Maybe Text)
+pName = lens _pName (\ s a -> s{_pName = a})
+
+instance FromJSON Package where
+ parseJSON
+ = withObject "Package"
+ (\ o ->
+ Package <$> (o .:? "location") <*> (o .:? "name"))
+
+instance ToJSON Package where
+ toJSON Package{..}
+ = object
+ (catMaybes
+ [("location" .=) <$> _pLocation,
+ ("name" .=) <$> _pName])
+
+-- | 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.
+--
+-- /See:/ 'dynamicSourceSplit' smart constructor.
+data DynamicSourceSplit = DynamicSourceSplit
+ { _dssResidual :: !(Maybe DerivedSource)
+ , _dssPrimary :: !(Maybe DerivedSource)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DynamicSourceSplit' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dssResidual'
+--
+-- * 'dssPrimary'
+dynamicSourceSplit
+ :: DynamicSourceSplit
+dynamicSourceSplit =
+ DynamicSourceSplit
+ { _dssResidual = Nothing
+ , _dssPrimary = Nothing
+ }
+
+-- | Residual part (returned to the pool of work). Specified relative to the
+-- previously-current source.
+dssResidual :: Lens' DynamicSourceSplit (Maybe DerivedSource)
+dssResidual
+ = lens _dssResidual (\ s a -> s{_dssResidual = a})
+
+-- | Primary part (continued to be processed by worker). Specified relative
+-- to the previously-current source. Becomes current.
+dssPrimary :: Lens' DynamicSourceSplit (Maybe DerivedSource)
+dssPrimary
+ = lens _dssPrimary (\ s a -> s{_dssPrimary = a})
+
+instance FromJSON DynamicSourceSplit where
+ parseJSON
+ = withObject "DynamicSourceSplit"
+ (\ o ->
+ DynamicSourceSplit <$>
+ (o .:? "residual") <*> (o .:? "primary"))
+
+instance ToJSON DynamicSourceSplit where
+ toJSON DynamicSourceSplit{..}
+ = object
+ (catMaybes
+ [("residual" .=) <$> _dssResidual,
+ ("primary" .=) <$> _dssPrimary])
+
+-- | Response from a request to report the status of WorkItems.
+--
+-- /See:/ 'reportWorkItemStatusResponse' smart constructor.
+newtype ReportWorkItemStatusResponse = ReportWorkItemStatusResponse
+ { _rwisrWorkItemServiceStates :: Maybe [WorkItemServiceState]
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ReportWorkItemStatusResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rwisrWorkItemServiceStates'
+reportWorkItemStatusResponse
+ :: ReportWorkItemStatusResponse
+reportWorkItemStatusResponse =
+ ReportWorkItemStatusResponse
+ { _rwisrWorkItemServiceStates = Nothing
+ }
+
+-- | 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]
+rwisrWorkItemServiceStates
+ = lens _rwisrWorkItemServiceStates
+ (\ s a -> s{_rwisrWorkItemServiceStates = a})
+ . _Default
+ . _Coerce
+
+instance FromJSON ReportWorkItemStatusResponse where
+ parseJSON
+ = withObject "ReportWorkItemStatusResponse"
+ (\ o ->
+ ReportWorkItemStatusResponse <$>
+ (o .:? "workItemServiceStates" .!= mempty))
+
+instance ToJSON ReportWorkItemStatusResponse where
+ toJSON ReportWorkItemStatusResponse{..}
+ = object
+ (catMaybes
+ [("workItemServiceStates" .=) <$>
+ _rwisrWorkItemServiceStates])
+
+-- | DEPRECATED in favor of DynamicSourceSplit.
+--
+-- /See:/ 'sourceFork' smart constructor.
+data SourceFork = SourceFork
+ { _sfResidual :: !(Maybe SourceSplitShard)
+ , _sfPrimarySource :: !(Maybe DerivedSource)
+ , _sfPrimary :: !(Maybe SourceSplitShard)
+ , _sfResidualSource :: !(Maybe DerivedSource)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SourceFork' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'sfResidual'
+--
+-- * 'sfPrimarySource'
+--
+-- * 'sfPrimary'
+--
+-- * 'sfResidualSource'
+sourceFork
+ :: SourceFork
+sourceFork =
+ SourceFork
+ { _sfResidual = Nothing
+ , _sfPrimarySource = Nothing
+ , _sfPrimary = Nothing
+ , _sfResidualSource = Nothing
+ }
+
+-- | DEPRECATED
+sfResidual :: Lens' SourceFork (Maybe SourceSplitShard)
+sfResidual
+ = lens _sfResidual (\ s a -> s{_sfResidual = a})
+
+-- | DEPRECATED
+sfPrimarySource :: Lens' SourceFork (Maybe DerivedSource)
+sfPrimarySource
+ = lens _sfPrimarySource
+ (\ s a -> s{_sfPrimarySource = a})
+
+-- | DEPRECATED
+sfPrimary :: Lens' SourceFork (Maybe SourceSplitShard)
+sfPrimary
+ = lens _sfPrimary (\ s a -> s{_sfPrimary = a})
+
+-- | DEPRECATED
+sfResidualSource :: Lens' SourceFork (Maybe DerivedSource)
+sfResidualSource
+ = lens _sfResidualSource
+ (\ s a -> s{_sfResidualSource = a})
+
+instance FromJSON SourceFork where
+ parseJSON
+ = withObject "SourceFork"
+ (\ o ->
+ SourceFork <$>
+ (o .:? "residual") <*> (o .:? "primarySource") <*>
+ (o .:? "primary")
+ <*> (o .:? "residualSource"))
+
+instance ToJSON SourceFork where
+ toJSON SourceFork{..}
+ = object
+ (catMaybes
+ [("residual" .=) <$> _sfResidual,
+ ("primarySource" .=) <$> _sfPrimarySource,
+ ("primary" .=) <$> _sfPrimary,
+ ("residualSource" .=) <$> _sfResidualSource])
+
+-- | Describes full or partial data disk assignment information of the
+-- computation ranges.
+--
+-- /See:/ 'streamingComputationRanges' smart constructor.
+data StreamingComputationRanges = StreamingComputationRanges
+ { _scrRangeAssignments :: !(Maybe [KeyRangeDataDiskAssignment])
+ , _scrComputationId :: !(Maybe Text)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'StreamingComputationRanges' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'scrRangeAssignments'
+--
+-- * 'scrComputationId'
+streamingComputationRanges
+ :: StreamingComputationRanges
+streamingComputationRanges =
+ StreamingComputationRanges
+ { _scrRangeAssignments = Nothing
+ , _scrComputationId = Nothing
+ }
+
+-- | Data disk assignments for ranges from this computation.
+scrRangeAssignments :: Lens' StreamingComputationRanges [KeyRangeDataDiskAssignment]
+scrRangeAssignments
+ = lens _scrRangeAssignments
+ (\ s a -> s{_scrRangeAssignments = a})
+ . _Default
+ . _Coerce
+
+-- | The ID of the computation.
+scrComputationId :: Lens' StreamingComputationRanges (Maybe Text)
+scrComputationId
+ = lens _scrComputationId
+ (\ s a -> s{_scrComputationId = a})
+
+instance FromJSON StreamingComputationRanges where
+ parseJSON
+ = withObject "StreamingComputationRanges"
+ (\ o ->
+ StreamingComputationRanges <$>
+ (o .:? "rangeAssignments" .!= mempty) <*>
+ (o .:? "computationId"))
+
+instance ToJSON StreamingComputationRanges where
+ toJSON StreamingComputationRanges{..}
+ = object
+ (catMaybes
+ [("rangeAssignments" .=) <$> _scrRangeAssignments,
+ ("computationId" .=) <$> _scrComputationId])
+
+-- | Response to a request to list Dataflow jobs. This may be a partial
+-- response, depending on the page size in the ListJobsRequest.
+--
+-- /See:/ 'listJobsResponse' smart constructor.
+data ListJobsResponse = ListJobsResponse
+ { _ljrNextPageToken :: !(Maybe Text)
+ , _ljrJobs :: !(Maybe [Job])
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListJobsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ljrNextPageToken'
+--
+-- * 'ljrJobs'
+listJobsResponse
+ :: ListJobsResponse
+listJobsResponse =
+ ListJobsResponse
+ { _ljrNextPageToken = Nothing
+ , _ljrJobs = Nothing
+ }
+
+-- | Set if there may be more results than fit in this response.
+ljrNextPageToken :: Lens' ListJobsResponse (Maybe Text)
+ljrNextPageToken
+ = lens _ljrNextPageToken
+ (\ s a -> s{_ljrNextPageToken = a})
+
+-- | A subset of the requested job information.
+ljrJobs :: Lens' ListJobsResponse [Job]
+ljrJobs
+ = lens _ljrJobs (\ s a -> s{_ljrJobs = a}) . _Default
+ . _Coerce
+
+instance FromJSON ListJobsResponse where
+ parseJSON
+ = withObject "ListJobsResponse"
+ (\ o ->
+ ListJobsResponse <$>
+ (o .:? "nextPageToken") <*>
+ (o .:? "jobs" .!= mempty))
+
+instance ToJSON ListJobsResponse where
+ toJSON ListJobsResponse{..}
+ = object
+ (catMaybes
+ [("nextPageToken" .=) <$> _ljrNextPageToken,
+ ("jobs" .=) <$> _ljrJobs])
+
+-- | A source that records can be read and decoded from.
+--
+-- /See:/ 'source' smart constructor.
+data Source = Source
+ { _souDoesNotNeedSplitting :: !(Maybe Bool)
+ , _souBaseSpecs :: !(Maybe [SourceBaseSpecsItem])
+ , _souCodec :: !(Maybe SourceCodec)
+ , _souSpec :: !(Maybe SourceSpec)
+ , _souMetadata :: !(Maybe SourceMetadata)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Source' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'souDoesNotNeedSplitting'
+--
+-- * 'souBaseSpecs'
+--
+-- * 'souCodec'
+--
+-- * 'souSpec'
+--
+-- * 'souMetadata'
+source
+ :: Source
+source =
+ Source
+ { _souDoesNotNeedSplitting = Nothing
+ , _souBaseSpecs = Nothing
+ , _souCodec = Nothing
+ , _souSpec = Nothing
+ , _souMetadata = Nothing
+ }
+
+-- | 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)
+souDoesNotNeedSplitting
+ = lens _souDoesNotNeedSplitting
+ (\ s a -> s{_souDoesNotNeedSplitting = a})
+
+-- | 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]
+souBaseSpecs
+ = lens _souBaseSpecs (\ s a -> s{_souBaseSpecs = a})
+ . _Default
+ . _Coerce
+
+-- | The codec to use to decode data read from the source.
+souCodec :: Lens' Source (Maybe SourceCodec)
+souCodec = lens _souCodec (\ s a -> s{_souCodec = a})
+
+-- | The source to read from, plus its parameters.
+souSpec :: Lens' Source (Maybe SourceSpec)
+souSpec = lens _souSpec (\ s a -> s{_souSpec = a})
+
+-- | 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)
+souMetadata
+ = lens _souMetadata (\ s a -> s{_souMetadata = a})
+
+instance FromJSON Source where
+ parseJSON
+ = withObject "Source"
+ (\ o ->
+ Source <$>
+ (o .:? "doesNotNeedSplitting") <*>
+ (o .:? "baseSpecs" .!= mempty)
+ <*> (o .:? "codec")
+ <*> (o .:? "spec")
+ <*> (o .:? "metadata"))
+
+instance ToJSON Source where
+ toJSON Source{..}
+ = object
+ (catMaybes
+ [("doesNotNeedSplitting" .=) <$>
+ _souDoesNotNeedSplitting,
+ ("baseSpecs" .=) <$> _souBaseSpecs,
+ ("codec" .=) <$> _souCodec, ("spec" .=) <$> _souSpec,
+ ("metadata" .=) <$> _souMetadata])
+
+-- | A progress measurement of a WorkItem by a worker.
+--
+-- /See:/ 'approximateProgress' smart constructor.
+data ApproximateProgress = ApproximateProgress
+ { _apRemainingTime :: !(Maybe Text)
+ , _apPercentComplete :: !(Maybe (Textual Double))
+ , _apPosition :: !(Maybe Position)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ApproximateProgress' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'apRemainingTime'
+--
+-- * 'apPercentComplete'
+--
+-- * 'apPosition'
+approximateProgress
+ :: ApproximateProgress
+approximateProgress =
+ ApproximateProgress
+ { _apRemainingTime = Nothing
+ , _apPercentComplete = Nothing
+ , _apPosition = Nothing
+ }
+
+-- | Completion as an estimated time remaining.
+apRemainingTime :: Lens' ApproximateProgress (Maybe Text)
+apRemainingTime
+ = lens _apRemainingTime
+ (\ s a -> s{_apRemainingTime = a})
+
+-- | Completion as percentage of the work, from 0.0 (beginning, nothing
+-- complete), to 1.0 (end of the work range, entire WorkItem complete).
+apPercentComplete :: Lens' ApproximateProgress (Maybe Double)
+apPercentComplete
+ = lens _apPercentComplete
+ (\ s a -> s{_apPercentComplete = a})
+ . mapping _Coerce
+
+-- | A Position within the work to represent a progress.
+apPosition :: Lens' ApproximateProgress (Maybe Position)
+apPosition
+ = lens _apPosition (\ s a -> s{_apPosition = a})
+
+instance FromJSON ApproximateProgress where
+ parseJSON
+ = withObject "ApproximateProgress"
+ (\ o ->
+ ApproximateProgress <$>
+ (o .:? "remainingTime") <*> (o .:? "percentComplete")
+ <*> (o .:? "position"))
+
+instance ToJSON ApproximateProgress where
+ toJSON ApproximateProgress{..}
+ = object
+ (catMaybes
+ [("remainingTime" .=) <$> _apRemainingTime,
+ ("percentComplete" .=) <$> _apPercentComplete,
+ ("position" .=) <$> _apPosition])
+
+-- | Location information for a specific key-range of a sharded computation.
+-- Currently we only support UTF-8 character splits to simplify encoding
+-- into JSON.
+--
+-- /See:/ 'keyRangeLocation' smart constructor.
+data KeyRangeLocation = KeyRangeLocation
+ { _krlPersistentDirectory :: !(Maybe Text)
+ , _krlDataDisk :: !(Maybe Text)
+ , _krlStart :: !(Maybe Text)
+ , _krlDeliveryEndpoint :: !(Maybe Text)
+ , _krlEnd :: !(Maybe Text)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'KeyRangeLocation' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'krlPersistentDirectory'
+--
+-- * 'krlDataDisk'
+--
+-- * 'krlStart'
+--
+-- * 'krlDeliveryEndpoint'
+--
+-- * 'krlEnd'
+keyRangeLocation
+ :: KeyRangeLocation
+keyRangeLocation =
+ KeyRangeLocation
+ { _krlPersistentDirectory = Nothing
+ , _krlDataDisk = Nothing
+ , _krlStart = Nothing
+ , _krlDeliveryEndpoint = Nothing
+ , _krlEnd = Nothing
+ }
+
+-- | The location of the persistent state for this range, as a persistent
+-- directory in the worker local filesystem.
+krlPersistentDirectory :: Lens' KeyRangeLocation (Maybe Text)
+krlPersistentDirectory
+ = lens _krlPersistentDirectory
+ (\ s a -> s{_krlPersistentDirectory = a})
+
+-- | 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)
+krlDataDisk
+ = lens _krlDataDisk (\ s a -> s{_krlDataDisk = a})
+
+-- | The start (inclusive) of the key range.
+krlStart :: Lens' KeyRangeLocation (Maybe Text)
+krlStart = lens _krlStart (\ s a -> s{_krlStart = a})
+
+-- | The physical location of this range assignment to be used for streaming
+-- computation cross-worker message delivery.
+krlDeliveryEndpoint :: Lens' KeyRangeLocation (Maybe Text)
+krlDeliveryEndpoint
+ = lens _krlDeliveryEndpoint
+ (\ s a -> s{_krlDeliveryEndpoint = a})
+
+-- | The end (exclusive) of the key range.
+krlEnd :: Lens' KeyRangeLocation (Maybe Text)
+krlEnd = lens _krlEnd (\ s a -> s{_krlEnd = a})
+
+instance FromJSON KeyRangeLocation where
+ parseJSON
+ = withObject "KeyRangeLocation"
+ (\ o ->
+ KeyRangeLocation <$>
+ (o .:? "persistentDirectory") <*> (o .:? "dataDisk")
+ <*> (o .:? "start")
+ <*> (o .:? "deliveryEndpoint")
+ <*> (o .:? "end"))
+
+instance ToJSON KeyRangeLocation where
+ toJSON KeyRangeLocation{..}
+ = object
+ (catMaybes
+ [("persistentDirectory" .=) <$>
+ _krlPersistentDirectory,
+ ("dataDisk" .=) <$> _krlDataDisk,
+ ("start" .=) <$> _krlStart,
+ ("deliveryEndpoint" .=) <$> _krlDeliveryEndpoint,
+ ("end" .=) <$> _krlEnd])
+
+-- | Information about an output of a multi-output DoFn.
+--
+-- /See:/ 'multiOutputInfo' smart constructor.
+newtype MultiOutputInfo = MultiOutputInfo
+ { _moiTag :: Maybe Text
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'MultiOutputInfo' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'moiTag'
+multiOutputInfo
+ :: MultiOutputInfo
+multiOutputInfo =
+ MultiOutputInfo
+ { _moiTag = Nothing
+ }
+
+-- | 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)
+moiTag = lens _moiTag (\ s a -> s{_moiTag = a})
+
+instance FromJSON MultiOutputInfo where
+ parseJSON
+ = withObject "MultiOutputInfo"
+ (\ o -> MultiOutputInfo <$> (o .:? "tag"))
+
+instance ToJSON MultiOutputInfo where
+ toJSON MultiOutputInfo{..}
+ = object (catMaybes [("tag" .=) <$> _moiTag])
+
+-- | An instruction that does a partial group-by-key. One input and one
+-- output.
+--
+-- /See:/ 'partialGroupByKeyInstruction' smart constructor.
+data PartialGroupByKeyInstruction = PartialGroupByKeyInstruction
+ { _pgbkiValueCombiningFn :: !(Maybe PartialGroupByKeyInstructionValueCombiningFn)
+ , _pgbkiInput :: !(Maybe InstructionInput)
+ , _pgbkiInputElementCodec :: !(Maybe PartialGroupByKeyInstructionInputElementCodec)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PartialGroupByKeyInstruction' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pgbkiValueCombiningFn'
+--
+-- * 'pgbkiInput'
+--
+-- * 'pgbkiInputElementCodec'
+partialGroupByKeyInstruction
+ :: PartialGroupByKeyInstruction
+partialGroupByKeyInstruction =
+ PartialGroupByKeyInstruction
+ { _pgbkiValueCombiningFn = Nothing
+ , _pgbkiInput = Nothing
+ , _pgbkiInputElementCodec = Nothing
+ }
+
+-- | The value combining function to invoke.
+pgbkiValueCombiningFn :: Lens' PartialGroupByKeyInstruction (Maybe PartialGroupByKeyInstructionValueCombiningFn)
+pgbkiValueCombiningFn
+ = lens _pgbkiValueCombiningFn
+ (\ s a -> s{_pgbkiValueCombiningFn = a})
+
+-- | Describes the input to the partial group-by-key instruction.
+pgbkiInput :: Lens' PartialGroupByKeyInstruction (Maybe InstructionInput)
+pgbkiInput
+ = lens _pgbkiInput (\ s a -> s{_pgbkiInput = a})
+
+-- | The codec to use for interpreting an element in the input PTable.
+pgbkiInputElementCodec :: Lens' PartialGroupByKeyInstruction (Maybe PartialGroupByKeyInstructionInputElementCodec)
+pgbkiInputElementCodec
+ = lens _pgbkiInputElementCodec
+ (\ s a -> s{_pgbkiInputElementCodec = a})
+
+instance FromJSON PartialGroupByKeyInstruction where
+ parseJSON
+ = withObject "PartialGroupByKeyInstruction"
+ (\ o ->
+ PartialGroupByKeyInstruction <$>
+ (o .:? "valueCombiningFn") <*> (o .:? "input") <*>
+ (o .:? "inputElementCodec"))
+
+instance ToJSON PartialGroupByKeyInstruction where
+ toJSON PartialGroupByKeyInstruction{..}
+ = object
+ (catMaybes
+ [("valueCombiningFn" .=) <$> _pgbkiValueCombiningFn,
+ ("input" .=) <$> _pgbkiInput,
+ ("inputElementCodec" .=) <$>
+ _pgbkiInputElementCodec])
+
+-- | 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.
+--
+-- /See:/ 'parDoInstruction' smart constructor.
+data ParDoInstruction = ParDoInstruction
+ { _pdiNumOutputs :: !(Maybe (Textual Int32))
+ , _pdiMultiOutputInfos :: !(Maybe [MultiOutputInfo])
+ , _pdiSideInputs :: !(Maybe [SideInputInfo])
+ , _pdiInput :: !(Maybe InstructionInput)
+ , _pdiUserFn :: !(Maybe ParDoInstructionUserFn)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ParDoInstruction' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pdiNumOutputs'
+--
+-- * 'pdiMultiOutputInfos'
+--
+-- * 'pdiSideInputs'
+--
+-- * 'pdiInput'
+--
+-- * 'pdiUserFn'
+parDoInstruction
+ :: ParDoInstruction
+parDoInstruction =
+ ParDoInstruction
+ { _pdiNumOutputs = Nothing
+ , _pdiMultiOutputInfos = Nothing
+ , _pdiSideInputs = Nothing
+ , _pdiInput = Nothing
+ , _pdiUserFn = Nothing
+ }
+
+-- | The number of outputs.
+pdiNumOutputs :: Lens' ParDoInstruction (Maybe Int32)
+pdiNumOutputs
+ = lens _pdiNumOutputs
+ (\ s a -> s{_pdiNumOutputs = a})
+ . mapping _Coerce
+
+-- | Information about each of the outputs, if user_fn is a MultiDoFn.
+pdiMultiOutputInfos :: Lens' ParDoInstruction [MultiOutputInfo]
+pdiMultiOutputInfos
+ = lens _pdiMultiOutputInfos
+ (\ s a -> s{_pdiMultiOutputInfos = a})
+ . _Default
+ . _Coerce
+
+-- | Zero or more side inputs.
+pdiSideInputs :: Lens' ParDoInstruction [SideInputInfo]
+pdiSideInputs
+ = lens _pdiSideInputs
+ (\ s a -> s{_pdiSideInputs = a})
+ . _Default
+ . _Coerce
+
+-- | The input.
+pdiInput :: Lens' ParDoInstruction (Maybe InstructionInput)
+pdiInput = lens _pdiInput (\ s a -> s{_pdiInput = a})
+
+-- | The user function to invoke.
+pdiUserFn :: Lens' ParDoInstruction (Maybe ParDoInstructionUserFn)
+pdiUserFn
+ = lens _pdiUserFn (\ s a -> s{_pdiUserFn = a})
+
+instance FromJSON ParDoInstruction where
+ parseJSON
+ = withObject "ParDoInstruction"
+ (\ o ->
+ ParDoInstruction <$>
+ (o .:? "numOutputs") <*>
+ (o .:? "multiOutputInfos" .!= mempty)
+ <*> (o .:? "sideInputs" .!= mempty)
+ <*> (o .:? "input")
+ <*> (o .:? "userFn"))
+
+instance ToJSON ParDoInstruction where
+ toJSON ParDoInstruction{..}
+ = object
+ (catMaybes
+ [("numOutputs" .=) <$> _pdiNumOutputs,
+ ("multiOutputInfos" .=) <$> _pdiMultiOutputInfos,
+ ("sideInputs" .=) <$> _pdiSideInputs,
+ ("input" .=) <$> _pdiInput,
+ ("userFn" .=) <$> _pdiUserFn])
+
+-- | Identifies the location of a custom souce.
+--
+-- /See:/ 'customSourceLocation' smart constructor.
+newtype CustomSourceLocation = CustomSourceLocation
+ { _cslStateful :: Maybe Bool
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CustomSourceLocation' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cslStateful'
+customSourceLocation
+ :: CustomSourceLocation
+customSourceLocation =
+ CustomSourceLocation
+ { _cslStateful = Nothing
+ }
+
+-- | Whether this source is stateful.
+cslStateful :: Lens' CustomSourceLocation (Maybe Bool)
+cslStateful
+ = lens _cslStateful (\ s a -> s{_cslStateful = a})
+
+instance FromJSON CustomSourceLocation where
+ parseJSON
+ = withObject "CustomSourceLocation"
+ (\ o -> CustomSourceLocation <$> (o .:? "stateful"))
+
+instance ToJSON CustomSourceLocation where
+ toJSON CustomSourceLocation{..}
+ = object
+ (catMaybes [("stateful" .=) <$> _cslStateful])
+
+--
+-- /See:/ 'sourceBaseSpecsItem' smart constructor.
+newtype SourceBaseSpecsItem = SourceBaseSpecsItem
+ { _sbsiAddtional :: HashMap Text JSONValue
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SourceBaseSpecsItem' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'sbsiAddtional'
+sourceBaseSpecsItem
+ :: HashMap Text JSONValue -- ^ 'sbsiAddtional'
+ -> SourceBaseSpecsItem
+sourceBaseSpecsItem pSbsiAddtional_ =
+ SourceBaseSpecsItem
+ { _sbsiAddtional = _Coerce # pSbsiAddtional_
+ }
+
+-- | Properties of the object.
+sbsiAddtional :: Lens' SourceBaseSpecsItem (HashMap Text JSONValue)
+sbsiAddtional
+ = lens _sbsiAddtional
+ (\ s a -> s{_sbsiAddtional = a})
+ . _Coerce
+
+instance FromJSON SourceBaseSpecsItem where
+ parseJSON
+ = withObject "SourceBaseSpecsItem"
+ (\ o -> SourceBaseSpecsItem <$> (parseJSONObject o))
+
+instance ToJSON SourceBaseSpecsItem where
+ toJSON = toJSON . _sbsiAddtional
+
+-- | Describes a particular operation comprising a MapTask.
+--
+-- /See:/ 'parallelInstruction' smart constructor.
+data ParallelInstruction = ParallelInstruction
+ { _piRead :: !(Maybe ReadInstruction)
+ , _piWrite :: !(Maybe WriteInstruction)
+ , _piParDo :: !(Maybe ParDoInstruction)
+ , _piPartialGroupByKey :: !(Maybe PartialGroupByKeyInstruction)
+ , _piOutputs :: !(Maybe [InstructionOutput])
+ , _piName :: !(Maybe Text)
+ , _piSystemName :: !(Maybe Text)
+ , _piFlatten :: !(Maybe FlattenInstruction)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ParallelInstruction' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'piRead'
+--
+-- * 'piWrite'
+--
+-- * 'piParDo'
+--
+-- * 'piPartialGroupByKey'
+--
+-- * 'piOutputs'
+--
+-- * 'piName'
+--
+-- * 'piSystemName'
+--
+-- * 'piFlatten'
+parallelInstruction
+ :: ParallelInstruction
+parallelInstruction =
+ ParallelInstruction
+ { _piRead = Nothing
+ , _piWrite = Nothing
+ , _piParDo = Nothing
+ , _piPartialGroupByKey = Nothing
+ , _piOutputs = Nothing
+ , _piName = Nothing
+ , _piSystemName = Nothing
+ , _piFlatten = Nothing
+ }
+
+-- | Additional information for Read instructions.
+piRead :: Lens' ParallelInstruction (Maybe ReadInstruction)
+piRead = lens _piRead (\ s a -> s{_piRead = a})
+
+-- | Additional information for Write instructions.
+piWrite :: Lens' ParallelInstruction (Maybe WriteInstruction)
+piWrite = lens _piWrite (\ s a -> s{_piWrite = a})
+
+-- | Additional information for ParDo instructions.
+piParDo :: Lens' ParallelInstruction (Maybe ParDoInstruction)
+piParDo = lens _piParDo (\ s a -> s{_piParDo = a})
+
+-- | Additional information for PartialGroupByKey instructions.
+piPartialGroupByKey :: Lens' ParallelInstruction (Maybe PartialGroupByKeyInstruction)
+piPartialGroupByKey
+ = lens _piPartialGroupByKey
+ (\ s a -> s{_piPartialGroupByKey = a})
+
+-- | Describes the outputs of the instruction.
+piOutputs :: Lens' ParallelInstruction [InstructionOutput]
+piOutputs
+ = lens _piOutputs (\ s a -> s{_piOutputs = a}) .
+ _Default
+ . _Coerce
+
+-- | User-provided name of this operation.
+piName :: Lens' ParallelInstruction (Maybe Text)
+piName = lens _piName (\ s a -> s{_piName = a})
+
+-- | System-defined name of this operation. Unique across the workflow.
+piSystemName :: Lens' ParallelInstruction (Maybe Text)
+piSystemName
+ = lens _piSystemName (\ s a -> s{_piSystemName = a})
+
+-- | Additional information for Flatten instructions.
+piFlatten :: Lens' ParallelInstruction (Maybe FlattenInstruction)
+piFlatten
+ = lens _piFlatten (\ s a -> s{_piFlatten = a})
+
+instance FromJSON ParallelInstruction where
+ parseJSON
+ = withObject "ParallelInstruction"
+ (\ o ->
+ ParallelInstruction <$>
+ (o .:? "read") <*> (o .:? "write") <*>
+ (o .:? "parDo")
+ <*> (o .:? "partialGroupByKey")
+ <*> (o .:? "outputs" .!= mempty)
+ <*> (o .:? "name")
+ <*> (o .:? "systemName")
+ <*> (o .:? "flatten"))
+
+instance ToJSON ParallelInstruction where
+ toJSON ParallelInstruction{..}
+ = object
+ (catMaybes
+ [("read" .=) <$> _piRead, ("write" .=) <$> _piWrite,
+ ("parDo" .=) <$> _piParDo,
+ ("partialGroupByKey" .=) <$> _piPartialGroupByKey,
+ ("outputs" .=) <$> _piOutputs,
+ ("name" .=) <$> _piName,
+ ("systemName" .=) <$> _piSystemName,
+ ("flatten" .=) <$> _piFlatten])
+
+-- | How to interpret the source element(s) as a side input value.
+--
+-- /See:/ 'sideInputInfoKind' smart constructor.
+newtype SideInputInfoKind = SideInputInfoKind
+ { _siikAddtional :: HashMap Text JSONValue
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SideInputInfoKind' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'siikAddtional'
+sideInputInfoKind
+ :: HashMap Text JSONValue -- ^ 'siikAddtional'
+ -> SideInputInfoKind
+sideInputInfoKind pSiikAddtional_ =
+ SideInputInfoKind
+ { _siikAddtional = _Coerce # pSiikAddtional_
+ }
+
+-- | Properties of the object.
+siikAddtional :: Lens' SideInputInfoKind (HashMap Text JSONValue)
+siikAddtional
+ = lens _siikAddtional
+ (\ s a -> s{_siikAddtional = a})
+ . _Coerce
+
+instance FromJSON SideInputInfoKind where
+ parseJSON
+ = withObject "SideInputInfoKind"
+ (\ o -> SideInputInfoKind <$> (parseJSONObject o))
+
+instance ToJSON SideInputInfoKind where
+ toJSON = toJSON . _siikAddtional
+
+-- | DEPRECATED in favor of DerivedSource.
+--
+-- /See:/ 'sourceSplitShard' smart constructor.
+data SourceSplitShard = SourceSplitShard
+ { _sssDerivationMode :: !(Maybe Text)
+ , _sssSource :: !(Maybe Source)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SourceSplitShard' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'sssDerivationMode'
+--
+-- * 'sssSource'
+sourceSplitShard
+ :: SourceSplitShard
+sourceSplitShard =
+ SourceSplitShard
+ { _sssDerivationMode = Nothing
+ , _sssSource = Nothing
+ }
+
+-- | DEPRECATED
+sssDerivationMode :: Lens' SourceSplitShard (Maybe Text)
+sssDerivationMode
+ = lens _sssDerivationMode
+ (\ s a -> s{_sssDerivationMode = a})
+
+-- | DEPRECATED
+sssSource :: Lens' SourceSplitShard (Maybe Source)
+sssSource
+ = lens _sssSource (\ s a -> s{_sssSource = a})
+
+instance FromJSON SourceSplitShard where
+ parseJSON
+ = withObject "SourceSplitShard"
+ (\ o ->
+ SourceSplitShard <$>
+ (o .:? "derivationMode") <*> (o .:? "source"))
+
+instance ToJSON SourceSplitShard where
+ toJSON SourceSplitShard{..}
+ = object
+ (catMaybes
+ [("derivationMode" .=) <$> _sssDerivationMode,
+ ("source" .=) <$> _sssSource])
+
+-- | Information about a side input of a DoFn or an input of a SeqDoFn.
+--
+-- /See:/ 'sideInputInfo' smart constructor.
+data SideInputInfo = SideInputInfo
+ { _siiTag :: !(Maybe Text)
+ , _siiKind :: !(Maybe SideInputInfoKind)
+ , _siiSources :: !(Maybe [Source])
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SideInputInfo' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'siiTag'
+--
+-- * 'siiKind'
+--
+-- * 'siiSources'
+sideInputInfo
+ :: SideInputInfo
+sideInputInfo =
+ SideInputInfo
+ { _siiTag = Nothing
+ , _siiKind = Nothing
+ , _siiSources = Nothing
+ }
+
+-- | 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)
+siiTag = lens _siiTag (\ s a -> s{_siiTag = a})
+
+-- | How to interpret the source element(s) as a side input value.
+siiKind :: Lens' SideInputInfo (Maybe SideInputInfoKind)
+siiKind = lens _siiKind (\ s a -> s{_siiKind = a})
+
+-- | 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]
+siiSources
+ = lens _siiSources (\ s a -> s{_siiSources = a}) .
+ _Default
+ . _Coerce
+
+instance FromJSON SideInputInfo where
+ parseJSON
+ = withObject "SideInputInfo"
+ (\ o ->
+ SideInputInfo <$>
+ (o .:? "tag") <*> (o .:? "kind") <*>
+ (o .:? "sources" .!= mempty))
+
+instance ToJSON SideInputInfo where
+ toJSON SideInputInfo{..}
+ = object
+ (catMaybes
+ [("tag" .=) <$> _siiTag, ("kind" .=) <$> _siiKind,
+ ("sources" .=) <$> _siiSources])
+
+-- | Additional information about how a Dataflow job will be executed which
+-- isn’t contained in the submitted job.
+--
+-- /See:/ 'jobExecutionInfo' smart constructor.
+newtype JobExecutionInfo = JobExecutionInfo
+ { _jeiStages :: Maybe JobExecutionInfoStages
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'JobExecutionInfo' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'jeiStages'
+jobExecutionInfo
+ :: JobExecutionInfo
+jobExecutionInfo =
+ JobExecutionInfo
+ { _jeiStages = Nothing
+ }
+
+-- | A mapping from each stage to the information about that stage.
+jeiStages :: Lens' JobExecutionInfo (Maybe JobExecutionInfoStages)
+jeiStages
+ = lens _jeiStages (\ s a -> s{_jeiStages = a})
+
+instance FromJSON JobExecutionInfo where
+ parseJSON
+ = withObject "JobExecutionInfo"
+ (\ o -> JobExecutionInfo <$> (o .:? "stages"))
+
+instance ToJSON JobExecutionInfo where
+ toJSON JobExecutionInfo{..}
+ = object (catMaybes [("stages" .=) <$> _jeiStages])
+
+-- | The codec to use to decode data read from the source.
+--
+-- /See:/ 'sourceCodec' smart constructor.
+newtype SourceCodec = SourceCodec
+ { _souAddtional :: HashMap Text JSONValue
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SourceCodec' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'souAddtional'
+sourceCodec
+ :: HashMap Text JSONValue -- ^ 'souAddtional'
+ -> SourceCodec
+sourceCodec pSouAddtional_ =
+ SourceCodec
+ { _souAddtional = _Coerce # pSouAddtional_
+ }
+
+-- | Properties of the object.
+souAddtional :: Lens' SourceCodec (HashMap Text JSONValue)
+souAddtional
+ = lens _souAddtional (\ s a -> s{_souAddtional = a})
+ . _Coerce
+
+instance FromJSON SourceCodec where
+ parseJSON
+ = withObject "SourceCodec"
+ (\ o -> SourceCodec <$> (parseJSONObject o))
+
+instance ToJSON SourceCodec where
+ toJSON = toJSON . _souAddtional
+
+-- | State family configuration.
+--
+-- /See:/ 'stateFamilyConfig' smart constructor.
+data StateFamilyConfig = StateFamilyConfig
+ { _sfcIsRead :: !(Maybe Bool)
+ , _sfcStateFamily :: !(Maybe Text)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'StateFamilyConfig' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'sfcIsRead'
+--
+-- * 'sfcStateFamily'
+stateFamilyConfig
+ :: StateFamilyConfig
+stateFamilyConfig =
+ StateFamilyConfig
+ { _sfcIsRead = Nothing
+ , _sfcStateFamily = Nothing
+ }
+
+-- | If true, this family corresponds to a read operation.
+sfcIsRead :: Lens' StateFamilyConfig (Maybe Bool)
+sfcIsRead
+ = lens _sfcIsRead (\ s a -> s{_sfcIsRead = a})
+
+-- | The state family value.
+sfcStateFamily :: Lens' StateFamilyConfig (Maybe Text)
+sfcStateFamily
+ = lens _sfcStateFamily
+ (\ s a -> s{_sfcStateFamily = a})
+
+instance FromJSON StateFamilyConfig where
+ parseJSON
+ = withObject "StateFamilyConfig"
+ (\ o ->
+ StateFamilyConfig <$>
+ (o .:? "isRead") <*> (o .:? "stateFamily"))
+
+instance ToJSON StateFamilyConfig where
+ toJSON StateFamilyConfig{..}
+ = object
+ (catMaybes
+ [("isRead" .=) <$> _sfcIsRead,
+ ("stateFamily" .=) <$> _sfcStateFamily])
+
+-- | 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.
+--
+-- /See:/ 'keyRangeDataDiskAssignment' smart constructor.
+data KeyRangeDataDiskAssignment = KeyRangeDataDiskAssignment
+ { _krddaDataDisk :: !(Maybe Text)
+ , _krddaStart :: !(Maybe Text)
+ , _krddaEnd :: !(Maybe Text)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'KeyRangeDataDiskAssignment' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'krddaDataDisk'
+--
+-- * 'krddaStart'
+--
+-- * 'krddaEnd'
+keyRangeDataDiskAssignment
+ :: KeyRangeDataDiskAssignment
+keyRangeDataDiskAssignment =
+ KeyRangeDataDiskAssignment
+ { _krddaDataDisk = Nothing
+ , _krddaStart = Nothing
+ , _krddaEnd = Nothing
+ }
+
+-- | 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)
+krddaDataDisk
+ = lens _krddaDataDisk
+ (\ s a -> s{_krddaDataDisk = a})
+
+-- | The start (inclusive) of the key range.
+krddaStart :: Lens' KeyRangeDataDiskAssignment (Maybe Text)
+krddaStart
+ = lens _krddaStart (\ s a -> s{_krddaStart = a})
+
+-- | The end (exclusive) of the key range.
+krddaEnd :: Lens' KeyRangeDataDiskAssignment (Maybe Text)
+krddaEnd = lens _krddaEnd (\ s a -> s{_krddaEnd = a})
+
+instance FromJSON KeyRangeDataDiskAssignment where
+ parseJSON
+ = withObject "KeyRangeDataDiskAssignment"
+ (\ o ->
+ KeyRangeDataDiskAssignment <$>
+ (o .:? "dataDisk") <*> (o .:? "start") <*>
+ (o .:? "end"))
+
+instance ToJSON KeyRangeDataDiskAssignment where
+ toJSON KeyRangeDataDiskAssignment{..}
+ = object
+ (catMaybes
+ [("dataDisk" .=) <$> _krddaDataDisk,
+ ("start" .=) <$> _krddaStart,
+ ("end" .=) <$> _krddaEnd])
+
+-- | 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.
+--
+-- /See:/ 'sourceSplitRequest' smart constructor.
+data SourceSplitRequest = SourceSplitRequest
+ { _ssrSource :: !(Maybe Source)
+ , _ssrOptions :: !(Maybe SourceSplitOptions)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SourceSplitRequest' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ssrSource'
+--
+-- * 'ssrOptions'
+sourceSplitRequest
+ :: SourceSplitRequest
+sourceSplitRequest =
+ SourceSplitRequest
+ { _ssrSource = Nothing
+ , _ssrOptions = Nothing
+ }
+
+-- | Specification of the source to be split.
+ssrSource :: Lens' SourceSplitRequest (Maybe Source)
+ssrSource
+ = lens _ssrSource (\ s a -> s{_ssrSource = a})
+
+-- | Hints for tuning the splitting process.
+ssrOptions :: Lens' SourceSplitRequest (Maybe SourceSplitOptions)
+ssrOptions
+ = lens _ssrOptions (\ s a -> s{_ssrOptions = a})
+
+instance FromJSON SourceSplitRequest where
+ parseJSON
+ = withObject "SourceSplitRequest"
+ (\ o ->
+ SourceSplitRequest <$>
+ (o .:? "source") <*> (o .:? "options"))
+
+instance ToJSON SourceSplitRequest where
+ toJSON SourceSplitRequest{..}
+ = object
+ (catMaybes
+ [("source" .=) <$> _ssrSource,
+ ("options" .=) <$> _ssrOptions])
+
+-- | Response to a request to list job messages.
+--
+-- /See:/ 'listJobMessagesResponse' smart constructor.
+data ListJobMessagesResponse = ListJobMessagesResponse
+ { _ljmrJobMessages :: !(Maybe [JobMessage])
+ , _ljmrNextPageToken :: !(Maybe Text)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListJobMessagesResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ljmrJobMessages'
+--
+-- * 'ljmrNextPageToken'
+listJobMessagesResponse
+ :: ListJobMessagesResponse
+listJobMessagesResponse =
+ ListJobMessagesResponse
+ { _ljmrJobMessages = Nothing
+ , _ljmrNextPageToken = Nothing
+ }
+
+-- | Messages in ascending timestamp order.
+ljmrJobMessages :: Lens' ListJobMessagesResponse [JobMessage]
+ljmrJobMessages
+ = lens _ljmrJobMessages
+ (\ s a -> s{_ljmrJobMessages = a})
+ . _Default
+ . _Coerce
+
+-- | The token to obtain the next page of results if there are more.
+ljmrNextPageToken :: Lens' ListJobMessagesResponse (Maybe Text)
+ljmrNextPageToken
+ = lens _ljmrNextPageToken
+ (\ s a -> s{_ljmrNextPageToken = a})
+
+instance FromJSON ListJobMessagesResponse where
+ parseJSON
+ = withObject "ListJobMessagesResponse"
+ (\ o ->
+ ListJobMessagesResponse <$>
+ (o .:? "jobMessages" .!= mempty) <*>
+ (o .:? "nextPageToken"))
+
+instance ToJSON ListJobMessagesResponse where
+ toJSON ListJobMessagesResponse{..}
+ = object
+ (catMaybes
+ [("jobMessages" .=) <$> _ljmrJobMessages,
+ ("nextPageToken" .=) <$> _ljmrNextPageToken])
+
+-- | Identifies a pubsub location to use for transferring data into or out of
+-- a streaming Dataflow job.
+--
+-- /See:/ 'pubsubLocation' smart constructor.
+data PubsubLocation = PubsubLocation
+ { _plTrackingSubscription :: !(Maybe Text)
+ , _plDropLateData :: !(Maybe Bool)
+ , _plTimestampLabel :: !(Maybe Text)
+ , _plIdLabel :: !(Maybe Text)
+ , _plTopic :: !(Maybe Text)
+ , _plSubscription :: !(Maybe Text)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PubsubLocation' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'plTrackingSubscription'
+--
+-- * 'plDropLateData'
+--
+-- * 'plTimestampLabel'
+--
+-- * 'plIdLabel'
+--
+-- * 'plTopic'
+--
+-- * 'plSubscription'
+pubsubLocation
+ :: PubsubLocation
+pubsubLocation =
+ PubsubLocation
+ { _plTrackingSubscription = Nothing
+ , _plDropLateData = Nothing
+ , _plTimestampLabel = Nothing
+ , _plIdLabel = Nothing
+ , _plTopic = Nothing
+ , _plSubscription = Nothing
+ }
+
+-- | If set, specifies the pubsub subscription that will be used for tracking
+-- custom time timestamps for watermark estimation.
+plTrackingSubscription :: Lens' PubsubLocation (Maybe Text)
+plTrackingSubscription
+ = lens _plTrackingSubscription
+ (\ s a -> s{_plTrackingSubscription = a})
+
+-- | Indicates whether the pipeline allows late-arriving data.
+plDropLateData :: Lens' PubsubLocation (Maybe Bool)
+plDropLateData
+ = lens _plDropLateData
+ (\ s a -> s{_plDropLateData = a})
+
+-- | 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)
+plTimestampLabel
+ = lens _plTimestampLabel
+ (\ s a -> s{_plTimestampLabel = a})
+
+-- | 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)
+plIdLabel
+ = lens _plIdLabel (\ s a -> s{_plIdLabel = a})
+
+-- | A pubsub topic, in the form of \"pubsub.googleapis.com\/topics\/ \/\"
+plTopic :: Lens' PubsubLocation (Maybe Text)
+plTopic = lens _plTopic (\ s a -> s{_plTopic = a})
+
+-- | A pubsub subscription, in the form of
+-- \"pubsub.googleapis.com\/subscriptions\/ \/\"
+plSubscription :: Lens' PubsubLocation (Maybe Text)
+plSubscription
+ = lens _plSubscription
+ (\ s a -> s{_plSubscription = a})
+
+instance FromJSON PubsubLocation where
+ parseJSON
+ = withObject "PubsubLocation"
+ (\ o ->
+ PubsubLocation <$>
+ (o .:? "trackingSubscription") <*>
+ (o .:? "dropLateData")
+ <*> (o .:? "timestampLabel")
+ <*> (o .:? "idLabel")
+ <*> (o .:? "topic")
+ <*> (o .:? "subscription"))
+
+instance ToJSON PubsubLocation where
+ toJSON PubsubLocation{..}
+ = object
+ (catMaybes
+ [("trackingSubscription" .=) <$>
+ _plTrackingSubscription,
+ ("dropLateData" .=) <$> _plDropLateData,
+ ("timestampLabel" .=) <$> _plTimestampLabel,
+ ("idLabel" .=) <$> _plIdLabel,
+ ("topic" .=) <$> _plTopic,
+ ("subscription" .=) <$> _plSubscription])
+
+-- | An input of an instruction, as a reference to an output of a producer
+-- instruction.
+--
+-- /See:/ 'instructionInput' smart constructor.
+data InstructionInput = InstructionInput
+ { _iiProducerInstructionIndex :: !(Maybe (Textual Int32))
+ , _iiOutputNum :: !(Maybe (Textual Int32))
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'InstructionInput' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'iiProducerInstructionIndex'
+--
+-- * 'iiOutputNum'
+instructionInput
+ :: InstructionInput
+instructionInput =
+ InstructionInput
+ { _iiProducerInstructionIndex = Nothing
+ , _iiOutputNum = Nothing
+ }
+
+-- | 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)
+iiProducerInstructionIndex
+ = lens _iiProducerInstructionIndex
+ (\ s a -> s{_iiProducerInstructionIndex = a})
+ . mapping _Coerce
+
+-- | The output index (origin zero) within the producer.
+iiOutputNum :: Lens' InstructionInput (Maybe Int32)
+iiOutputNum
+ = lens _iiOutputNum (\ s a -> s{_iiOutputNum = a}) .
+ mapping _Coerce
+
+instance FromJSON InstructionInput where
+ parseJSON
+ = withObject "InstructionInput"
+ (\ o ->
+ InstructionInput <$>
+ (o .:? "producerInstructionIndex") <*>
+ (o .:? "outputNum"))
+
+instance ToJSON InstructionInput where
+ toJSON InstructionInput{..}
+ = object
+ (catMaybes
+ [("producerInstructionIndex" .=) <$>
+ _iiProducerInstructionIndex,
+ ("outputNum" .=) <$> _iiOutputNum])
+
+-- | Describes a particular function to invoke.
+--
+-- /See:/ 'seqMapTask' smart constructor.
+data SeqMapTask = SeqMapTask
+ { _smtInputs :: !(Maybe [SideInputInfo])
+ , _smtName :: !(Maybe Text)
+ , _smtOutputInfos :: !(Maybe [SeqMapTaskOutputInfo])
+ , _smtSystemName :: !(Maybe Text)
+ , _smtStageName :: !(Maybe Text)
+ , _smtUserFn :: !(Maybe SeqMapTaskUserFn)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SeqMapTask' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'smtInputs'
+--
+-- * 'smtName'
+--
+-- * 'smtOutputInfos'
+--
+-- * 'smtSystemName'
+--
+-- * 'smtStageName'
+--
+-- * 'smtUserFn'
+seqMapTask
+ :: SeqMapTask
+seqMapTask =
+ SeqMapTask
+ { _smtInputs = Nothing
+ , _smtName = Nothing
+ , _smtOutputInfos = Nothing
+ , _smtSystemName = Nothing
+ , _smtStageName = Nothing
+ , _smtUserFn = Nothing
+ }
+
+-- | Information about each of the inputs.
+smtInputs :: Lens' SeqMapTask [SideInputInfo]
+smtInputs
+ = lens _smtInputs (\ s a -> s{_smtInputs = a}) .
+ _Default
+ . _Coerce
+
+-- | The user-provided name of the SeqDo operation.
+smtName :: Lens' SeqMapTask (Maybe Text)
+smtName = lens _smtName (\ s a -> s{_smtName = a})
+
+-- | Information about each of the outputs.
+smtOutputInfos :: Lens' SeqMapTask [SeqMapTaskOutputInfo]
+smtOutputInfos
+ = lens _smtOutputInfos
+ (\ s a -> s{_smtOutputInfos = a})
+ . _Default
+ . _Coerce
+
+-- | System-defined name of the SeqDo operation. Unique across the workflow.
+smtSystemName :: Lens' SeqMapTask (Maybe Text)
+smtSystemName
+ = lens _smtSystemName
+ (\ s a -> s{_smtSystemName = a})
+
+-- | System-defined name of the stage containing the SeqDo operation. Unique
+-- across the workflow.
+smtStageName :: Lens' SeqMapTask (Maybe Text)
+smtStageName
+ = lens _smtStageName (\ s a -> s{_smtStageName = a})
+
+-- | The user function to invoke.
+smtUserFn :: Lens' SeqMapTask (Maybe SeqMapTaskUserFn)
+smtUserFn
+ = lens _smtUserFn (\ s a -> s{_smtUserFn = a})
+
+instance FromJSON SeqMapTask where
+ parseJSON
+ = withObject "SeqMapTask"
+ (\ o ->
+ SeqMapTask <$>
+ (o .:? "inputs" .!= mempty) <*> (o .:? "name") <*>
+ (o .:? "outputInfos" .!= mempty)
+ <*> (o .:? "systemName")
+ <*> (o .:? "stageName")
+ <*> (o .:? "userFn"))
+
+instance ToJSON SeqMapTask where
+ toJSON SeqMapTask{..}
+ = object
+ (catMaybes
+ [("inputs" .=) <$> _smtInputs,
+ ("name" .=) <$> _smtName,
+ ("outputInfos" .=) <$> _smtOutputInfos,
+ ("systemName" .=) <$> _smtSystemName,
+ ("stageName" .=) <$> _smtStageName,
+ ("userFn" .=) <$> _smtUserFn])
+
+-- | A work item that represents the different operations that can be
+-- performed on a user-defined Source specification.
+--
+-- /See:/ 'sourceOperationRequest' smart constructor.
+data SourceOperationRequest = SourceOperationRequest
+ { _sSplit :: !(Maybe SourceSplitRequest)
+ , _sGetMetadata :: !(Maybe SourceGetMetadataRequest)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SourceOperationRequest' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'sSplit'
+--
+-- * 'sGetMetadata'
+sourceOperationRequest
+ :: SourceOperationRequest
+sourceOperationRequest =
+ SourceOperationRequest
+ { _sSplit = Nothing
+ , _sGetMetadata = Nothing
+ }
+
+-- | Information about a request to split a source.
+sSplit :: Lens' SourceOperationRequest (Maybe SourceSplitRequest)
+sSplit = lens _sSplit (\ s a -> s{_sSplit = a})
+
+-- | Information about a request to get metadata about a source.
+sGetMetadata :: Lens' SourceOperationRequest (Maybe SourceGetMetadataRequest)
+sGetMetadata
+ = lens _sGetMetadata (\ s a -> s{_sGetMetadata = a})
+
+instance FromJSON SourceOperationRequest where
+ parseJSON
+ = withObject "SourceOperationRequest"
+ (\ o ->
+ SourceOperationRequest <$>
+ (o .:? "split") <*> (o .:? "getMetadata"))
+
+instance ToJSON SourceOperationRequest where
+ toJSON SourceOperationRequest{..}
+ = object
+ (catMaybes
+ [("split" .=) <$> _sSplit,
+ ("getMetadata" .=) <$> _sGetMetadata])
+
+-- | Response to a request to lease WorkItems.
+--
+-- /See:/ 'leaseWorkItemResponse' smart constructor.
+newtype LeaseWorkItemResponse = LeaseWorkItemResponse
+ { _lwirWorkItems :: Maybe [WorkItem]
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'LeaseWorkItemResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lwirWorkItems'
+leaseWorkItemResponse
+ :: LeaseWorkItemResponse
+leaseWorkItemResponse =
+ LeaseWorkItemResponse
+ { _lwirWorkItems = Nothing
+ }
+
+-- | A list of the leased WorkItems.
+lwirWorkItems :: Lens' LeaseWorkItemResponse [WorkItem]
+lwirWorkItems
+ = lens _lwirWorkItems
+ (\ s a -> s{_lwirWorkItems = a})
+ . _Default
+ . _Coerce
+
+instance FromJSON LeaseWorkItemResponse where
+ parseJSON
+ = withObject "LeaseWorkItemResponse"
+ (\ o ->
+ LeaseWorkItemResponse <$>
+ (o .:? "workItems" .!= mempty))
+
+instance ToJSON LeaseWorkItemResponse where
+ toJSON LeaseWorkItemResponse{..}
+ = object
+ (catMaybes [("workItems" .=) <$> _lwirWorkItems])
+
+-- | 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.
+--
+-- /See:/ 'position' smart constructor.
+data Position = Position
+ { _pByteOffSet :: !(Maybe (Textual Int64))
+ , _pConcatPosition :: !(Maybe ConcatPosition)
+ , _pRecordIndex :: !(Maybe (Textual Int64))
+ , _pShufflePosition :: !(Maybe Text)
+ , _pKey :: !(Maybe Text)
+ , _pEnd :: !(Maybe Bool)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Position' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pByteOffSet'
+--
+-- * 'pConcatPosition'
+--
+-- * 'pRecordIndex'
+--
+-- * 'pShufflePosition'
+--
+-- * 'pKey'
+--
+-- * 'pEnd'
+position
+ :: Position
+position =
+ Position
+ { _pByteOffSet = Nothing
+ , _pConcatPosition = Nothing
+ , _pRecordIndex = Nothing
+ , _pShufflePosition = Nothing
+ , _pKey = Nothing
+ , _pEnd = Nothing
+ }
+
+-- | Position is a byte offset.
+pByteOffSet :: Lens' Position (Maybe Int64)
+pByteOffSet
+ = lens _pByteOffSet (\ s a -> s{_pByteOffSet = a}) .
+ mapping _Coerce
+
+-- | CloudPosition is a concat position.
+pConcatPosition :: Lens' Position (Maybe ConcatPosition)
+pConcatPosition
+ = lens _pConcatPosition
+ (\ s a -> s{_pConcatPosition = a})
+
+-- | Position is a record index.
+pRecordIndex :: Lens' Position (Maybe Int64)
+pRecordIndex
+ = lens _pRecordIndex (\ s a -> s{_pRecordIndex = a})
+ . mapping _Coerce
+
+-- | CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
+-- sharding).
+pShufflePosition :: Lens' Position (Maybe Text)
+pShufflePosition
+ = lens _pShufflePosition
+ (\ s a -> s{_pShufflePosition = a})
+
+-- | Position is a string key, ordered lexicographically.
+pKey :: Lens' Position (Maybe Text)
+pKey = lens _pKey (\ s a -> s{_pKey = a})
+
+-- | Position is past all other positions. Also useful for the end position
+-- of an unbounded range.
+pEnd :: Lens' Position (Maybe Bool)
+pEnd = lens _pEnd (\ s a -> s{_pEnd = a})
+
+instance FromJSON Position where
+ parseJSON
+ = withObject "Position"
+ (\ o ->
+ Position <$>
+ (o .:? "byteOffset") <*> (o .:? "concatPosition") <*>
+ (o .:? "recordIndex")
+ <*> (o .:? "shufflePosition")
+ <*> (o .:? "key")
+ <*> (o .:? "end"))
+
+instance ToJSON Position where
+ toJSON Position{..}
+ = object
+ (catMaybes
+ [("byteOffset" .=) <$> _pByteOffSet,
+ ("concatPosition" .=) <$> _pConcatPosition,
+ ("recordIndex" .=) <$> _pRecordIndex,
+ ("shufflePosition" .=) <$> _pShufflePosition,
+ ("key" .=) <$> _pKey, ("end" .=) <$> _pEnd])
diff --git a/gen/Network/Google/Dataflow/Types/Sum.hs b/gen/Network/Google/Dataflow/Types/Sum.hs
new file mode 100644
index 0000000..3b5648e
--- /dev/null
+++ b/gen/Network/Google/Dataflow/Types/Sum.hs
@@ -0,0 +1,19 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# LANGUAGE OverloadedStrings #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- |
+-- Module : Network.Google.Dataflow.Types.Sum
+-- Copyright : (c) 2015 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+module Network.Google.Dataflow.Types.Sum where
+
+import Network.Google.Prelude
diff --git a/gen/Network/Google/Resource/Dataflow/Projects/Jobs/Create.hs b/gen/Network/Google/Resource/Dataflow/Projects/Jobs/Create.hs
new file mode 100644
index 0000000..749c467
--- /dev/null
+++ b/gen/Network/Google/Resource/Dataflow/Projects/Jobs/Create.hs
@@ -0,0 +1,206 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE TypeOperators #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- |
+-- Module : Network.Google.Resource.Dataflow.Projects.Jobs.Create
+-- Copyright : (c) 2015 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a dataflow job.
+--
+-- /See:/ <https://cloud.google.com/dataflow Google Dataflow API Reference> for @dataflow.projects.jobs.create@.
+module Network.Google.Resource.Dataflow.Projects.Jobs.Create
+ (
+ -- * REST Resource
+ ProjectsJobsCreateResource
+
+ -- * Creating a Request
+ , projectsJobsCreate
+ , ProjectsJobsCreate
+
+ -- * Request Lenses
+ , pjcXgafv
+ , pjcUploadProtocol
+ , pjcPp
+ , pjcAccessToken
+ , pjcUploadType
+ , pjcPayload
+ , pjcBearerToken
+ , pjcView
+ , pjcProjectId
+ , pjcReplaceJobId
+ , pjcCallback
+ ) where
+
+import Network.Google.Dataflow.Types
+import Network.Google.Prelude
+
+-- | A resource alias for @dataflow.projects.jobs.create@ method which the
+-- 'ProjectsJobsCreate' request conforms to.
+type ProjectsJobsCreateResource =
+ "v1b3" :>
+ "projects" :>
+ Capture "projectId" 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 dataflow job.
+--
+-- /See:/ 'projectsJobsCreate' smart constructor.
+data ProjectsJobsCreate = ProjectsJobsCreate
+ { _pjcXgafv :: !(Maybe Text)
+ , _pjcUploadProtocol :: !(Maybe Text)
+ , _pjcPp :: !Bool
+ , _pjcAccessToken :: !(Maybe Text)
+ , _pjcUploadType :: !(Maybe Text)
+ , _pjcPayload :: !Job
+ , _pjcBearerToken :: !(Maybe Text)
+ , _pjcView :: !(Maybe Text)
+ , _pjcProjectId :: !Text
+ , _pjcReplaceJobId :: !(Maybe Text)
+ , _pjcCallback :: !(Maybe Text)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsJobsCreate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pjcXgafv'
+--
+-- * 'pjcUploadProtocol'
+--
+-- * 'pjcPp'
+--
+-- * 'pjcAccessToken'
+--
+-- * 'pjcUploadType'
+--
+-- * 'pjcPayload'
+--
+-- * 'pjcBearerToken'
+--
+-- * 'pjcView'
+--
+-- * 'pjcProjectId'
+--
+-- * 'pjcReplaceJobId'
+--
+-- * 'pjcCallback'
+projectsJobsCreate
+ :: Job -- ^ 'pjcPayload'
+ -> Text -- ^ 'pjcProjectId'
+ -> ProjectsJobsCreate
+projectsJobsCreate pPjcPayload_ pPjcProjectId_ =
+ ProjectsJobsCreate
+ { _pjcXgafv = Nothing
+ , _pjcUploadProtocol = Nothing
+ , _pjcPp = True
+ , _pjcAccessToken = Nothing
+ , _pjcUploadType = Nothing
+ , _pjcPayload = pPjcPayload_
+ , _pjcBearerToken = Nothing
+ , _pjcView = Nothing
+ , _pjcProjectId = pPjcProjectId_
+ , _pjcReplaceJobId = Nothing
+ , _pjcCallback = Nothing
+ }
+
+-- | V1 error format.
+pjcXgafv :: Lens' ProjectsJobsCreate (Maybe Text)
+pjcXgafv = lens _pjcXgafv (\ s a -> s{_pjcXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+pjcUploadProtocol :: Lens' ProjectsJobsCreate (Maybe Text)
+pjcUploadProtocol
+ = lens _pjcUploadProtocol
+ (\ s a -> s{_pjcUploadProtocol = a})
+
+-- | Pretty-print response.
+pjcPp :: Lens' ProjectsJobsCreate Bool
+pjcPp = lens _pjcPp (\ s a -> s{_pjcPp = a})
+
+-- | OAuth access token.
+pjcAccessToken :: Lens' ProjectsJobsCreate (Maybe Text)
+pjcAccessToken
+ = lens _pjcAccessToken
+ (\ s a -> s{_pjcAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+pjcUploadType :: Lens' ProjectsJobsCreate (Maybe Text)
+pjcUploadType
+ = lens _pjcUploadType
+ (\ s a -> s{_pjcUploadType = a})
+
+-- | Multipart request metadata.
+pjcPayload :: Lens' ProjectsJobsCreate Job
+pjcPayload
+ = lens _pjcPayload (\ s a -> s{_pjcPayload = a})
+
+-- | OAuth bearer token.
+pjcBearerToken :: Lens' ProjectsJobsCreate (Maybe Text)
+pjcBearerToken
+ = lens _pjcBearerToken
+ (\ s a -> s{_pjcBearerToken = a})
+
+-- | Level of information requested in response.
+pjcView :: Lens' ProjectsJobsCreate (Maybe Text)
+pjcView = lens _pjcView (\ s a -> s{_pjcView = a})
+
+-- | The project which owns the job.
+pjcProjectId :: Lens' ProjectsJobsCreate Text
+pjcProjectId
+ = lens _pjcProjectId (\ s a -> s{_pjcProjectId = a})
+
+-- | DEPRECATED. This field is now on the Job message.
+pjcReplaceJobId :: Lens' ProjectsJobsCreate (Maybe Text)
+pjcReplaceJobId
+ = lens _pjcReplaceJobId
+ (\ s a -> s{_pjcReplaceJobId = a})
+
+-- | JSONP
+pjcCallback :: Lens' ProjectsJobsCreate (Maybe Text)
+pjcCallback
+ = lens _pjcCallback (\ s a -> s{_pjcCallback = a})
+
+instance GoogleRequest ProjectsJobsCreate where
+ type Rs ProjectsJobsCreate = Job
+ requestClient ProjectsJobsCreate{..}
+ = go _pjcProjectId _pjcXgafv _pjcUploadProtocol
+ (Just _pjcPp)
+ _pjcAccessToken
+ _pjcUploadType
+ _pjcBearerToken
+ _pjcView
+ _pjcReplaceJobId
+ _pjcCallback
+ (Just AltJSON)
+ _pjcPayload
+ dataflowService
+ where go
+ = buildClient
+ (Proxy :: Proxy ProjectsJobsCreateResource)
+ mempty
diff --git a/gen/Network/Google/Resource/Dataflow/Projects/Jobs/Get.hs b/gen/Network/Google/Resource/Dataflow/Projects/Jobs/Get.hs
new file mode 100644
index 0000000..0a5f6b5
--- /dev/null
+++ b/gen/Network/Google/Resource/Dataflow/Projects/Jobs/Get.hs
@@ -0,0 +1,192 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE TypeOperators #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- |
+-- Module : Network.Google.Resource.Dataflow.Projects.Jobs.Get
+-- Copyright : (c) 2015 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets the state of the specified dataflow job.
+--
+-- /See:/ <https://cloud.google.com/dataflow Google Dataflow API Reference> for @dataflow.projects.jobs.get@.
+module Network.Google.Resource.Dataflow.Projects.Jobs.Get
+ (
+ -- * REST Resource
+ ProjectsJobsGetResource
+
+ -- * Creating a Request
+ , projectsJobsGet
+ , ProjectsJobsGet
+
+ -- * Request Lenses
+ , pjgXgafv
+ , pjgJobId
+ , pjgUploadProtocol
+ , pjgPp
+ , pjgAccessToken
+ , pjgUploadType
+ , pjgBearerToken
+ , pjgView
+ , pjgProjectId
+ , pjgCallback
+ ) where
+
+import Network.Google.Dataflow.Types
+import Network.Google.Prelude
+
+-- | A resource alias for @dataflow.projects.jobs.get@ method which the
+-- 'ProjectsJobsGet' request conforms to.
+type ProjectsJobsGetResource =
+ "v1b3" :>
+ "projects" :>
+ Capture "projectId" 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
+
+-- | Gets the state of the specified dataflow job.
+--
+-- /See:/ 'projectsJobsGet' smart constructor.
+data ProjectsJobsGet = ProjectsJobsGet
+ { _pjgXgafv :: !(Maybe Text)
+ , _pjgJobId :: !Text
+ , _pjgUploadProtocol :: !(Maybe Text)
+ , _pjgPp :: !Bool
+ , _pjgAccessToken :: !(Maybe Text)
+ , _pjgUploadType :: !(Maybe Text)
+ , _pjgBearerToken :: !(Maybe Text)
+ , _pjgView :: !(Maybe Text)
+ , _pjgProjectId :: !Text
+ , _pjgCallback :: !(Maybe Text)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsJobsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pjgXgafv'
+--
+-- * 'pjgJobId'
+--
+-- * 'pjgUploadProtocol'
+--
+-- * 'pjgPp'
+--
+-- * 'pjgAccessToken'
+--
+-- * 'pjgUploadType'
+--
+-- * 'pjgBearerToken'
+--
+-- * 'pjgView'
+--
+-- * 'pjgProjectId'
+--
+-- * 'pjgCallback'
+projectsJobsGet
+ :: Text -- ^ 'pjgJobId'
+ -> Text -- ^ 'pjgProjectId'
+ -> ProjectsJobsGet
+projectsJobsGet pPjgJobId_ pPjgProjectId_ =
+ ProjectsJobsGet
+ { _pjgXgafv = Nothing
+ , _pjgJobId = pPjgJobId_
+ , _pjgUploadProtocol = Nothing
+ , _pjgPp = True
+ , _pjgAccessToken = Nothing
+ , _pjgUploadType = Nothing
+ , _pjgBearerToken = Nothing
+ , _pjgView = Nothing
+ , _pjgProjectId = pPjgProjectId_
+ , _pjgCallback = Nothing
+ }
+
+-- | V1 error format.
+pjgXgafv :: Lens' ProjectsJobsGet (Maybe Text)
+pjgXgafv = lens _pjgXgafv (\ s a -> s{_pjgXgafv = a})
+
+-- | Identifies a single job.
+pjgJobId :: Lens' ProjectsJobsGet Text
+pjgJobId = lens _pjgJobId (\ s a -> s{_pjgJobId = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+pjgUploadProtocol :: Lens' ProjectsJobsGet (Maybe Text)
+pjgUploadProtocol
+ = lens _pjgUploadProtocol
+ (\ s a -> s{_pjgUploadProtocol = a})
+
+-- | Pretty-print response.
+pjgPp :: Lens' ProjectsJobsGet Bool
+pjgPp = lens _pjgPp (\ s a -> s{_pjgPp = a})
+
+-- | OAuth access token.
+pjgAccessToken :: Lens' ProjectsJobsGet (Maybe Text)
+pjgAccessToken
+ = lens _pjgAccessToken
+ (\ s a -> s{_pjgAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+pjgUploadType :: Lens' ProjectsJobsGet (Maybe Text)
+pjgUploadType
+ = lens _pjgUploadType
+ (\ s a -> s{_pjgUploadType = a})
+
+-- | OAuth bearer token.
+pjgBearerToken :: Lens' ProjectsJobsGet (Maybe Text)
+pjgBearerToken
+ = lens _pjgBearerToken
+ (\ s a -> s{_pjgBearerToken = a})
+
+-- | Level of information requested in response.
+pjgView :: Lens' ProjectsJobsGet (Maybe Text)
+pjgView = lens _pjgView (\ s a -> s{_pjgView = a})
+
+-- | The project which owns the job.
+pjgProjectId :: Lens' ProjectsJobsGet Text
+pjgProjectId
+ = lens _pjgProjectId (\ s a -> s{_pjgProjectId = a})
+
+-- | JSONP
+pjgCallback :: Lens' ProjectsJobsGet (Maybe Text)
+pjgCallback
+ = lens _pjgCallback (\ s a -> s{_pjgCallback = a})
+
+instance GoogleRequest ProjectsJobsGet where
+ type Rs ProjectsJobsGet = Job
+ requestClient ProjectsJobsGet{..}
+ = go _pjgProjectId _pjgJobId _pjgXgafv
+ _pjgUploadProtocol
+ (Just _pjgPp)
+ _pjgAccessToken
+ _pjgUploadType
+ _pjgBearerToken
+ _pjgView
+ _pjgCallback
+ (Just AltJSON)
+ dataflowService
+ where go
+ = buildClient
+ (Proxy :: Proxy ProjectsJobsGetResource)
+ mempty
diff --git a/gen/Network/Google/Resource/Dataflow/Projects/Jobs/GetMetrics.hs b/gen/Network/Google/Resource/Dataflow/Projects/Jobs/GetMetrics.hs
new file mode 100644
index 0000000..1792914
--- /dev/null
+++ b/gen/Network/Google/Resource/Dataflow/Projects/Jobs/GetMetrics.hs
@@ -0,0 +1,200 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE TypeOperators #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- |
+-- Module : Network.Google.Resource.Dataflow.Projects.Jobs.GetMetrics
+-- Copyright : (c) 2015 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Request the job status.
+--
+-- /See:/ <https://cloud.google.com/dataflow Google Dataflow API Reference> for @dataflow.projects.jobs.getMetrics@.
+module Network.Google.Resource.Dataflow.Projects.Jobs.GetMetrics
+ (
+ -- * REST Resource
+ ProjectsJobsGetMetricsResource
+
+ -- * Creating a Request
+ , projectsJobsGetMetrics
+ , ProjectsJobsGetMetrics
+
+ -- * Request Lenses
+ , pjgmXgafv
+ , pjgmJobId
+ , pjgmUploadProtocol
+ , pjgmStartTime
+ , pjgmPp
+ , pjgmAccessToken
+ , pjgmUploadType
+ , pjgmBearerToken
+ , pjgmProjectId
+ , pjgmCallback
+ ) where
+
+import Network.Google.Dataflow.Types
+import Network.Google.Prelude
+
+-- | A resource alias for @dataflow.projects.jobs.getMetrics@ method which the
+-- 'ProjectsJobsGetMetrics' request conforms to.
+type ProjectsJobsGetMetricsResource =
+ "v1b3" :>
+ "projects" :>
+ Capture "projectId" 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
+
+-- | Request the job status.
+--
+-- /See:/ 'projectsJobsGetMetrics' smart constructor.
+data ProjectsJobsGetMetrics = ProjectsJobsGetMetrics
+ { _pjgmXgafv :: !(Maybe Text)
+ , _pjgmJobId :: !Text
+ , _pjgmUploadProtocol :: !(Maybe Text)
+ , _pjgmStartTime :: !(Maybe Text)
+ , _pjgmPp :: !Bool
+ , _pjgmAccessToken :: !(Maybe Text)
+ , _pjgmUploadType :: !(Maybe Text)
+ , _pjgmBearerToken :: !(Maybe Text)
+ , _pjgmProjectId :: !Text
+ , _pjgmCallback :: !(Maybe Text)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsJobsGetMetrics' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pjgmXgafv'
+--
+-- * 'pjgmJobId'
+--
+-- * 'pjgmUploadProtocol'
+--
+-- * 'pjgmStartTime'
+--
+-- * 'pjgmPp'
+--
+-- * 'pjgmAccessToken'
+--
+-- * 'pjgmUploadType'
+--
+-- * 'pjgmBearerToken'
+--
+-- * 'pjgmProjectId'
+--
+-- * 'pjgmCallback'
+projectsJobsGetMetrics
+ :: Text -- ^ 'pjgmJobId'
+ -> Text -- ^ 'pjgmProjectId'
+ -> ProjectsJobsGetMetrics
+projectsJobsGetMetrics pPjgmJobId_ pPjgmProjectId_ =
+ ProjectsJobsGetMetrics
+ { _pjgmXgafv = Nothing
+ , _pjgmJobId = pPjgmJobId_
+ , _pjgmUploadProtocol = Nothing
+ , _pjgmStartTime = Nothing
+ , _pjgmPp = True
+ , _pjgmAccessToken = Nothing
+ , _pjgmUploadType = Nothing
+ , _pjgmBearerToken = Nothing
+ , _pjgmProjectId = pPjgmProjectId_
+ , _pjgmCallback = Nothing
+ }
+
+-- | V1 error format.
+pjgmXgafv :: Lens' ProjectsJobsGetMetrics (Maybe Text)
+pjgmXgafv
+ = lens _pjgmXgafv (\ s a -> s{_pjgmXgafv = a})
+
+-- | The job to get messages for.
+pjgmJobId :: Lens' ProjectsJobsGetMetrics Text
+pjgmJobId
+ = lens _pjgmJobId (\ s a -> s{_pjgmJobId = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+pjgmUploadProtocol :: Lens' ProjectsJobsGetMetrics (Maybe Text)
+pjgmUploadProtocol
+ = lens _pjgmUploadProtocol
+ (\ s a -> s{_pjgmUploadProtocol = a})
+
+-- | 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)
+pjgmStartTime
+ = lens _pjgmStartTime
+ (\ s a -> s{_pjgmStartTime = a})
+
+-- | Pretty-print response.
+pjgmPp :: Lens' ProjectsJobsGetMetrics Bool
+pjgmPp = lens _pjgmPp (\ s a -> s{_pjgmPp = a})
+
+-- | OAuth access token.
+pjgmAccessToken :: Lens' ProjectsJobsGetMetrics (Maybe Text)
+pjgmAccessToken
+ = lens _pjgmAccessToken
+ (\ s a -> s{_pjgmAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+pjgmUploadType :: Lens' ProjectsJobsGetMetrics (Maybe Text)
+pjgmUploadType
+ = lens _pjgmUploadType
+ (\ s a -> s{_pjgmUploadType = a})
+
+-- | OAuth bearer token.
+pjgmBearerToken :: Lens' ProjectsJobsGetMetrics (Maybe Text)
+pjgmBearerToken
+ = lens _pjgmBearerToken
+ (\ s a -> s{_pjgmBearerToken = a})
+
+-- | A project id.
+pjgmProjectId :: Lens' ProjectsJobsGetMetrics Text
+pjgmProjectId
+ = lens _pjgmProjectId
+ (\ s a -> s{_pjgmProjectId = a})
+
+-- | JSONP
+pjgmCallback :: Lens' ProjectsJobsGetMetrics (Maybe Text)
+pjgmCallback
+ = lens _pjgmCallback (\ s a -> s{_pjgmCallback = a})
+
+instance GoogleRequest ProjectsJobsGetMetrics where
+ type Rs ProjectsJobsGetMetrics = JobMetrics
+ requestClient ProjectsJobsGetMetrics{..}
+ = go _pjgmProjectId _pjgmJobId _pjgmXgafv
+ _pjgmUploadProtocol
+ _pjgmStartTime
+ (Just _pjgmPp)
+ _pjgmAccessToken
+ _pjgmUploadType
+ _pjgmBearerToken
+ _pjgmCallback
+ (Just AltJSON)
+ dataflowService
+ where go
+ = buildClient
+ (Proxy :: Proxy ProjectsJobsGetMetricsResource)
+ mempty
diff --git a/gen/Network/Google/Resource/Dataflow/Projects/Jobs/List.hs b/gen/Network/Google/Resource/Dataflow/Projects/Jobs/List.hs
new file mode 100644
index 0000000..3f62d90
--- /dev/null
+++ b/gen/Network/Google/Resource/Dataflow/Projects/Jobs/List.hs
@@ -0,0 +1,209 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE TypeOperators #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- |
+-- Module : Network.Google.Resource.Dataflow.Projects.Jobs.List
+-- Copyright : (c) 2015 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- List the jobs of a project
+--
+-- /See:/ <https://cloud.google.com/dataflow Google Dataflow API Reference> for @dataflow.projects.jobs.list@.
+module Network.Google.Resource.Dataflow.Projects.Jobs.List
+ (
+ -- * REST Resource
+ ProjectsJobsListResource
+
+ -- * Creating a Request
+ , projectsJobsList
+ , ProjectsJobsList
+
+ -- * Request Lenses
+ , pjlXgafv
+ , pjlUploadProtocol
+ , pjlPp
+ , pjlAccessToken
+ , pjlUploadType
+ , pjlBearerToken
+ , pjlView
+ , pjlPageToken
+ , pjlProjectId
+ , pjlPageSize
+ , pjlCallback
+ ) where
+
+import Network.Google.Dataflow.Types
+import Network.Google.Prelude
+
+-- | A resource alias for @dataflow.projects.jobs.list@ method which the
+-- 'ProjectsJobsList' request conforms to.
+type ProjectsJobsListResource =
+ "v1b3" :>
+ "projects" :>
+ Capture "projectId" 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 "pageToken" Text :>
+ QueryParam "pageSize" (Textual Int32) :>
+ QueryParam "callback" Text :>
+ QueryParam "alt" AltJSON :>
+ Get '[JSON] ListJobsResponse
+
+-- | List the jobs of a project
+--
+-- /See:/ 'projectsJobsList' smart constructor.
+data ProjectsJobsList = ProjectsJobsList
+ { _pjlXgafv :: !(Maybe Text)
+ , _pjlUploadProtocol :: !(Maybe Text)
+ , _pjlPp :: !Bool
+ , _pjlAccessToken :: !(Maybe Text)
+ , _pjlUploadType :: !(Maybe Text)
+ , _pjlBearerToken :: !(Maybe Text)
+ , _pjlView :: !(Maybe Text)
+ , _pjlPageToken :: !(Maybe Text)
+ , _pjlProjectId :: !Text
+ , _pjlPageSize :: !(Maybe (Textual Int32))
+ , _pjlCallback :: !(Maybe Text)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsJobsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pjlXgafv'
+--
+-- * 'pjlUploadProtocol'
+--
+-- * 'pjlPp'
+--
+-- * 'pjlAccessToken'
+--
+-- * 'pjlUploadType'
+--
+-- * 'pjlBearerToken'
+--
+-- * 'pjlView'
+--
+-- * 'pjlPageToken'
+--
+-- * 'pjlProjectId'
+--
+-- * 'pjlPageSize'
+--
+-- * 'pjlCallback'
+projectsJobsList
+ :: Text -- ^ 'pjlProjectId'
+ -> ProjectsJobsList
+projectsJobsList pPjlProjectId_ =
+ ProjectsJobsList
+ { _pjlXgafv = Nothing
+ , _pjlUploadProtocol = Nothing
+ , _pjlPp = True
+ , _pjlAccessToken = Nothing
+ , _pjlUploadType = Nothing
+ , _pjlBearerToken = Nothing
+ , _pjlView = Nothing
+ , _pjlPageToken = Nothing
+ , _pjlProjectId = pPjlProjectId_
+ , _pjlPageSize = Nothing
+ , _pjlCallback = Nothing
+ }
+
+-- | V1 error format.
+pjlXgafv :: Lens' ProjectsJobsList (Maybe Text)
+pjlXgafv = lens _pjlXgafv (\ s a -> s{_pjlXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+pjlUploadProtocol :: Lens' ProjectsJobsList (Maybe Text)
+pjlUploadProtocol
+ = lens _pjlUploadProtocol
+ (\ s a -> s{_pjlUploadProtocol = a})
+
+-- | Pretty-print response.
+pjlPp :: Lens' ProjectsJobsList Bool
+pjlPp = lens _pjlPp (\ s a -> s{_pjlPp = a})
+
+-- | OAuth access token.
+pjlAccessToken :: Lens' ProjectsJobsList (Maybe Text)
+pjlAccessToken
+ = lens _pjlAccessToken
+ (\ s a -> s{_pjlAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+pjlUploadType :: Lens' ProjectsJobsList (Maybe Text)
+pjlUploadType
+ = lens _pjlUploadType
+ (\ s a -> s{_pjlUploadType = a})
+
+-- | OAuth bearer token.
+pjlBearerToken :: Lens' ProjectsJobsList (Maybe Text)
+pjlBearerToken
+ = lens _pjlBearerToken
+ (\ s a -> s{_pjlBearerToken = a})
+
+-- | Level of information requested in response. Default is SUMMARY.
+pjlView :: Lens' ProjectsJobsList (Maybe Text)
+pjlView = lens _pjlView (\ s a -> s{_pjlView = a})
+
+-- | 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)
+pjlPageToken
+ = lens _pjlPageToken (\ s a -> s{_pjlPageToken = a})
+
+-- | The project which owns the jobs.
+pjlProjectId :: Lens' ProjectsJobsList Text
+pjlProjectId
+ = lens _pjlProjectId (\ s a -> s{_pjlProjectId = a})
+
+-- | 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)
+pjlPageSize
+ = lens _pjlPageSize (\ s a -> s{_pjlPageSize = a}) .
+ mapping _Coerce
+
+-- | JSONP
+pjlCallback :: Lens' ProjectsJobsList (Maybe Text)
+pjlCallback
+ = lens _pjlCallback (\ s a -> s{_pjlCallback = a})
+
+instance GoogleRequest ProjectsJobsList where
+ type Rs ProjectsJobsList = ListJobsResponse
+ requestClient ProjectsJobsList{..}
+ = go _pjlProjectId _pjlXgafv _pjlUploadProtocol
+ (Just _pjlPp)
+ _pjlAccessToken
+ _pjlUploadType
+ _pjlBearerToken
+ _pjlView
+ _pjlPageToken
+ _pjlPageSize
+ _pjlCallback
+ (Just AltJSON)
+ dataflowService
+ where go
+ = buildClient
+ (Proxy :: Proxy ProjectsJobsListResource)
+ mempty
diff --git a/gen/Network/Google/Resource/Dataflow/Projects/Jobs/Messages/List.hs b/gen/Network/Google/Resource/Dataflow/Projects/Jobs/Messages/List.hs
new file mode 100644
index 0000000..6c29fc0
--- /dev/null
+++ b/gen/Network/Google/Resource/Dataflow/Projects/Jobs/Messages/List.hs
@@ -0,0 +1,256 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE TypeOperators #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- |
+-- Module : Network.Google.Resource.Dataflow.Projects.Jobs.Messages.List
+-- Copyright : (c) 2015 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Request the job status.
+--
+-- /See:/ <https://cloud.google.com/dataflow Google Dataflow API Reference> for @dataflow.projects.jobs.messages.list@.
+module Network.Google.Resource.Dataflow.Projects.Jobs.Messages.List
+ (
+ -- * REST Resource
+ ProjectsJobsMessagesListResource
+
+ -- * Creating a Request
+ , projectsJobsMessagesList
+ , ProjectsJobsMessagesList
+
+ -- * Request Lenses
+ , pjmlXgafv
+ , pjmlJobId
+ , pjmlUploadProtocol
+ , pjmlStartTime
+ , pjmlPp
+ , pjmlAccessToken
+ , pjmlUploadType
+ , pjmlBearerToken
+ , pjmlEndTime
+ , pjmlMinimumImportance
+ , pjmlPageToken
+ , pjmlProjectId
+ , pjmlPageSize
+ , pjmlCallback
+ ) where
+
+import Network.Google.Dataflow.Types
+import Network.Google.Prelude
+
+-- | A resource alias for @dataflow.projects.jobs.messages.list@ method which the
+-- 'ProjectsJobsMessagesList' request conforms to.
+type ProjectsJobsMessagesListResource =
+ "v1b3" :>
+ "projects" :>
+ Capture "projectId" 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
+
+-- | Request the job status.
+--
+-- /See:/ 'projectsJobsMessagesList' smart constructor.
+data ProjectsJobsMessagesList = ProjectsJobsMessagesList
+ { _pjmlXgafv :: !(Maybe Text)
+ , _pjmlJobId :: !Text
+ , _pjmlUploadProtocol :: !(Maybe Text)
+ , _pjmlStartTime :: !(Maybe Text)
+ , _pjmlPp :: !Bool
+ , _pjmlAccessToken :: !(Maybe Text)
+ , _pjmlUploadType :: !(Maybe Text)
+ , _pjmlBearerToken :: !(Maybe Text)
+ , _pjmlEndTime :: !(Maybe Text)
+ , _pjmlMinimumImportance :: !(Maybe Text)
+ , _pjmlPageToken :: !(Maybe Text)
+ , _pjmlProjectId :: !Text
+ , _pjmlPageSize :: !(Maybe (Textual Int32))
+ , _pjmlCallback :: !(Maybe Text)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsJobsMessagesList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pjmlXgafv'
+--
+-- * 'pjmlJobId'
+--
+-- * 'pjmlUploadProtocol'
+--
+-- * 'pjmlStartTime'
+--
+-- * 'pjmlPp'
+--
+-- * 'pjmlAccessToken'
+--
+-- * 'pjmlUploadType'
+--
+-- * 'pjmlBearerToken'
+--
+-- * 'pjmlEndTime'
+--
+-- * 'pjmlMinimumImportance'
+--
+-- * 'pjmlPageToken'
+--
+-- * 'pjmlProjectId'
+--
+-- * 'pjmlPageSize'
+--
+-- * 'pjmlCallback'
+projectsJobsMessagesList
+ :: Text -- ^ 'pjmlJobId'
+ -> Text -- ^ 'pjmlProjectId'
+ -> ProjectsJobsMessagesList
+projectsJobsMessagesList pPjmlJobId_ pPjmlProjectId_ =
+ ProjectsJobsMessagesList
+ { _pjmlXgafv = Nothing
+ , _pjmlJobId = pPjmlJobId_
+ , _pjmlUploadProtocol = Nothing
+ , _pjmlStartTime = Nothing
+ , _pjmlPp = True
+ , _pjmlAccessToken = Nothing
+ , _pjmlUploadType = Nothing
+ , _pjmlBearerToken = Nothing
+ , _pjmlEndTime = Nothing
+ , _pjmlMinimumImportance = Nothing
+ , _pjmlPageToken = Nothing
+ , _pjmlProjectId = pPjmlProjectId_
+ , _pjmlPageSize = Nothing
+ , _pjmlCallback = Nothing
+ }
+
+-- | V1 error format.
+pjmlXgafv :: Lens' ProjectsJobsMessagesList (Maybe Text)
+pjmlXgafv
+ = lens _pjmlXgafv (\ s a -> s{_pjmlXgafv = a})
+
+-- | The job to get messages about.
+pjmlJobId :: Lens' ProjectsJobsMessagesList Text
+pjmlJobId
+ = lens _pjmlJobId (\ s a -> s{_pjmlJobId = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+pjmlUploadProtocol :: Lens' ProjectsJobsMessagesList (Maybe Text)
+pjmlUploadProtocol
+ = lens _pjmlUploadProtocol
+ (\ s a -> s{_pjmlUploadProtocol = a})
+
+-- | If specified, return only messages with timestamps >= start_time. The
+-- default is the job creation time (i.e. beginning of messages).
+pjmlStartTime :: Lens' ProjectsJobsMessagesList (Maybe Text)
+pjmlStartTime
+ = lens _pjmlStartTime
+ (\ s a -> s{_pjmlStartTime = a})
+
+-- | Pretty-print response.
+pjmlPp :: Lens' ProjectsJobsMessagesList Bool
+pjmlPp = lens _pjmlPp (\ s a -> s{_pjmlPp = a})
+
+-- | OAuth access token.
+pjmlAccessToken :: Lens' ProjectsJobsMessagesList (Maybe Text)
+pjmlAccessToken
+ = lens _pjmlAccessToken
+ (\ s a -> s{_pjmlAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+pjmlUploadType :: Lens' ProjectsJobsMessagesList (Maybe Text)
+pjmlUploadType
+ = lens _pjmlUploadType
+ (\ s a -> s{_pjmlUploadType = a})
+
+-- | OAuth bearer token.
+pjmlBearerToken :: Lens' ProjectsJobsMessagesList (Maybe Text)
+pjmlBearerToken
+ = lens _pjmlBearerToken
+ (\ s a -> s{_pjmlBearerToken = a})
+
+-- | Return only messages with timestamps \< end_time. The default is now
+-- (i.e. return up to the latest messages available).
+pjmlEndTime :: Lens' ProjectsJobsMessagesList (Maybe Text)
+pjmlEndTime
+ = lens _pjmlEndTime (\ s a -> s{_pjmlEndTime = a})
+
+-- | Filter to only get messages with importance >= level
+pjmlMinimumImportance :: Lens' ProjectsJobsMessagesList (Maybe Text)
+pjmlMinimumImportance
+ = lens _pjmlMinimumImportance
+ (\ s a -> s{_pjmlMinimumImportance = a})
+
+-- | 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)
+pjmlPageToken
+ = lens _pjmlPageToken
+ (\ s a -> s{_pjmlPageToken = a})
+
+-- | A project id.
+pjmlProjectId :: Lens' ProjectsJobsMessagesList Text
+pjmlProjectId
+ = lens _pjmlProjectId
+ (\ s a -> s{_pjmlProjectId = a})
+
+-- | 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)
+pjmlPageSize
+ = lens _pjmlPageSize (\ s a -> s{_pjmlPageSize = a})
+ . mapping _Coerce
+
+-- | JSONP
+pjmlCallback :: Lens' ProjectsJobsMessagesList (Maybe Text)
+pjmlCallback
+ = lens _pjmlCallback (\ s a -> s{_pjmlCallback = a})
+
+instance GoogleRequest ProjectsJobsMessagesList where
+ type Rs ProjectsJobsMessagesList =
+ ListJobMessagesResponse
+ requestClient ProjectsJobsMessagesList{..}
+ = go _pjmlProjectId _pjmlJobId _pjmlXgafv
+ _pjmlUploadProtocol
+ _pjmlStartTime
+ (Just _pjmlPp)
+ _pjmlAccessToken
+ _pjmlUploadType
+ _pjmlBearerToken
+ _pjmlEndTime
+ _pjmlMinimumImportance
+ _pjmlPageToken
+ _pjmlPageSize
+ _pjmlCallback
+ (Just AltJSON)
+ dataflowService
+ where go
+ = buildClient
+ (Proxy :: Proxy ProjectsJobsMessagesListResource)
+ mempty
diff --git a/gen/Network/Google/Resource/Dataflow/Projects/Jobs/Update.hs b/gen/Network/Google/Resource/Dataflow/Projects/Jobs/Update.hs
new file mode 100644
index 0000000..5a0e99f
--- /dev/null
+++ b/gen/Network/Google/Resource/Dataflow/Projects/Jobs/Update.hs
@@ -0,0 +1,194 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE TypeOperators #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- |
+-- Module : Network.Google.Resource.Dataflow.Projects.Jobs.Update
+-- Copyright : (c) 2015 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates the state of an existing dataflow job.
+--
+-- /See:/ <https://cloud.google.com/dataflow Google Dataflow API Reference> for @dataflow.projects.jobs.update@.
+module Network.Google.Resource.Dataflow.Projects.Jobs.Update
+ (
+ -- * REST Resource
+ ProjectsJobsUpdateResource
+
+ -- * Creating a Request
+ , projectsJobsUpdate
+ , ProjectsJobsUpdate
+
+ -- * Request Lenses
+ , pjuXgafv
+ , pjuJobId
+ , pjuUploadProtocol
+ , pjuPp
+ , pjuAccessToken
+ , pjuUploadType
+ , pjuPayload
+ , pjuBearerToken
+ , pjuProjectId
+ , pjuCallback
+ ) where
+
+import Network.Google.Dataflow.Types
+import Network.Google.Prelude
+
+-- | A resource alias for @dataflow.projects.jobs.update@ method which the
+-- 'ProjectsJobsUpdate' request conforms to.
+type ProjectsJobsUpdateResource =
+ "v1b3" :>
+ "projects" :>
+ Capture "projectId" 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
+
+-- | Updates the state of an existing dataflow job.
+--
+-- /See:/ 'projectsJobsUpdate' smart constructor.
+data ProjectsJobsUpdate = ProjectsJobsUpdate
+ { _pjuXgafv :: !(Maybe Text)
+ , _pjuJobId :: !Text
+ , _pjuUploadProtocol :: !(Maybe Text)
+ , _pjuPp :: !Bool
+ , _pjuAccessToken :: !(Maybe Text)
+ , _pjuUploadType :: !(Maybe Text)
+ , _pjuPayload :: !Job
+ , _pjuBearerToken :: !(Maybe Text)
+ , _pjuProjectId :: !Text
+ , _pjuCallback :: !(Maybe Text)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsJobsUpdate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pjuXgafv'
+--
+-- * 'pjuJobId'
+--
+-- * 'pjuUploadProtocol'
+--
+-- * 'pjuPp'
+--
+-- * 'pjuAccessToken'
+--
+-- * 'pjuUploadType'
+--
+-- * 'pjuPayload'
+--
+-- * 'pjuBearerToken'
+--
+-- * 'pjuProjectId'
+--
+-- * 'pjuCallback'
+projectsJobsUpdate
+ :: Text -- ^ 'pjuJobId'
+ -> Job -- ^ 'pjuPayload'
+ -> Text -- ^ 'pjuProjectId'
+ -> ProjectsJobsUpdate
+projectsJobsUpdate pPjuJobId_ pPjuPayload_ pPjuProjectId_ =
+ ProjectsJobsUpdate
+ { _pjuXgafv = Nothing
+ , _pjuJobId = pPjuJobId_
+ , _pjuUploadProtocol = Nothing
+ , _pjuPp = True
+ , _pjuAccessToken = Nothing
+ , _pjuUploadType = Nothing
+ , _pjuPayload = pPjuPayload_
+ , _pjuBearerToken = Nothing
+ , _pjuProjectId = pPjuProjectId_
+ , _pjuCallback = Nothing
+ }
+
+-- | V1 error format.
+pjuXgafv :: Lens' ProjectsJobsUpdate (Maybe Text)
+pjuXgafv = lens _pjuXgafv (\ s a -> s{_pjuXgafv = a})
+
+-- | Identifies a single job.
+pjuJobId :: Lens' ProjectsJobsUpdate Text
+pjuJobId = lens _pjuJobId (\ s a -> s{_pjuJobId = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+pjuUploadProtocol :: Lens' ProjectsJobsUpdate (Maybe Text)
+pjuUploadProtocol
+ = lens _pjuUploadProtocol
+ (\ s a -> s{_pjuUploadProtocol = a})
+
+-- | Pretty-print response.
+pjuPp :: Lens' ProjectsJobsUpdate Bool
+pjuPp = lens _pjuPp (\ s a -> s{_pjuPp = a})
+
+-- | OAuth access token.
+pjuAccessToken :: Lens' ProjectsJobsUpdate (Maybe Text)
+pjuAccessToken
+ = lens _pjuAccessToken
+ (\ s a -> s{_pjuAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+pjuUploadType :: Lens' ProjectsJobsUpdate (Maybe Text)
+pjuUploadType
+ = lens _pjuUploadType
+ (\ s a -> s{_pjuUploadType = a})
+
+-- | Multipart request metadata.
+pjuPayload :: Lens' ProjectsJobsUpdate Job
+pjuPayload
+ = lens _pjuPayload (\ s a -> s{_pjuPayload = a})
+
+-- | OAuth bearer token.
+pjuBearerToken :: Lens' ProjectsJobsUpdate (Maybe Text)
+pjuBearerToken
+ = lens _pjuBearerToken
+ (\ s a -> s{_pjuBearerToken = a})
+
+-- | The project which owns the job.
+pjuProjectId :: Lens' ProjectsJobsUpdate Text
+pjuProjectId
+ = lens _pjuProjectId (\ s a -> s{_pjuProjectId = a})
+
+-- | JSONP
+pjuCallback :: Lens' ProjectsJobsUpdate (Maybe Text)
+pjuCallback
+ = lens _pjuCallback (\ s a -> s{_pjuCallback = a})
+
+instance GoogleRequest ProjectsJobsUpdate where
+ type Rs ProjectsJobsUpdate = Job
+ requestClient ProjectsJobsUpdate{..}
+ = go _pjuProjectId _pjuJobId _pjuXgafv
+ _pjuUploadProtocol
+ (Just _pjuPp)
+ _pjuAccessToken
+ _pjuUploadType
+ _pjuBearerToken
+ _pjuCallback
+ (Just AltJSON)
+ _pjuPayload
+ dataflowService
+ where go
+ = buildClient
+ (Proxy :: Proxy ProjectsJobsUpdateResource)
+ mempty
diff --git a/gen/Network/Google/Resource/Dataflow/Projects/Jobs/WorkItems/Lease.hs b/gen/Network/Google/Resource/Dataflow/Projects/Jobs/WorkItems/Lease.hs
new file mode 100644
index 0000000..d2389a1
--- /dev/null
+++ b/gen/Network/Google/Resource/Dataflow/Projects/Jobs/WorkItems/Lease.hs
@@ -0,0 +1,202 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE TypeOperators #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- |
+-- Module : Network.Google.Resource.Dataflow.Projects.Jobs.WorkItems.Lease
+-- Copyright : (c) 2015 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Leases a dataflow WorkItem to run.
+--
+-- /See:/ <https://cloud.google.com/dataflow Google Dataflow API Reference> for @dataflow.projects.jobs.workItems.lease@.
+module Network.Google.Resource.Dataflow.Projects.Jobs.WorkItems.Lease
+ (
+ -- * REST Resource
+ ProjectsJobsWorkItemsLeaseResource
+
+ -- * Creating a Request
+ , projectsJobsWorkItemsLease
+ , ProjectsJobsWorkItemsLease
+
+ -- * Request Lenses
+ , pjwilXgafv
+ , pjwilJobId
+ , pjwilUploadProtocol
+ , pjwilPp
+ , pjwilAccessToken
+ , pjwilUploadType
+ , pjwilPayload
+ , pjwilBearerToken
+ , pjwilProjectId
+ , pjwilCallback
+ ) where
+
+import Network.Google.Dataflow.Types
+import Network.Google.Prelude
+
+-- | A resource alias for @dataflow.projects.jobs.workItems.lease@ method which the
+-- 'ProjectsJobsWorkItemsLease' 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
+
+-- | Leases a dataflow WorkItem to run.
+--
+-- /See:/ 'projectsJobsWorkItemsLease' smart constructor.
+data ProjectsJobsWorkItemsLease = ProjectsJobsWorkItemsLease
+ { _pjwilXgafv :: !(Maybe Text)
+ , _pjwilJobId :: !Text
+ , _pjwilUploadProtocol :: !(Maybe Text)
+ , _pjwilPp :: !Bool
+ , _pjwilAccessToken :: !(Maybe Text)
+ , _pjwilUploadType :: !(Maybe Text)
+ , _pjwilPayload :: !LeaseWorkItemRequest
+ , _pjwilBearerToken :: !(Maybe Text)
+ , _pjwilProjectId :: !Text
+ , _pjwilCallback :: !(Maybe Text)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsJobsWorkItemsLease' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pjwilXgafv'
+--
+-- * 'pjwilJobId'
+--
+-- * 'pjwilUploadProtocol'
+--
+-- * 'pjwilPp'
+--
+-- * 'pjwilAccessToken'
+--
+-- * 'pjwilUploadType'
+--
+-- * 'pjwilPayload'
+--
+-- * 'pjwilBearerToken'
+--
+-- * 'pjwilProjectId'
+--
+-- * 'pjwilCallback'
+projectsJobsWorkItemsLease
+ :: Text -- ^ 'pjwilJobId'
+ -> LeaseWorkItemRequest -- ^ 'pjwilPayload'
+ -> Text -- ^ 'pjwilProjectId'
+ -> ProjectsJobsWorkItemsLease
+projectsJobsWorkItemsLease pPjwilJobId_ pPjwilPayload_ pPjwilProjectId_ =
+ ProjectsJobsWorkItemsLease
+ { _pjwilXgafv = Nothing
+ , _pjwilJobId = pPjwilJobId_
+ , _pjwilUploadProtocol = Nothing
+ , _pjwilPp = True
+ , _pjwilAccessToken = Nothing
+ , _pjwilUploadType = Nothing
+ , _pjwilPayload = pPjwilPayload_
+ , _pjwilBearerToken = Nothing
+ , _pjwilProjectId = pPjwilProjectId_
+ , _pjwilCallback = Nothing
+ }
+
+-- | V1 error format.
+pjwilXgafv :: Lens' ProjectsJobsWorkItemsLease (Maybe Text)
+pjwilXgafv
+ = lens _pjwilXgafv (\ s a -> s{_pjwilXgafv = a})
+
+-- | Identifies the workflow job this worker belongs to.
+pjwilJobId :: Lens' ProjectsJobsWorkItemsLease Text
+pjwilJobId
+ = lens _pjwilJobId (\ s a -> s{_pjwilJobId = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+pjwilUploadProtocol :: Lens' ProjectsJobsWorkItemsLease (Maybe Text)
+pjwilUploadProtocol
+ = lens _pjwilUploadProtocol
+ (\ s a -> s{_pjwilUploadProtocol = a})
+
+-- | Pretty-print response.
+pjwilPp :: Lens' ProjectsJobsWorkItemsLease Bool
+pjwilPp = lens _pjwilPp (\ s a -> s{_pjwilPp = a})
+
+-- | OAuth access token.
+pjwilAccessToken :: Lens' ProjectsJobsWorkItemsLease (Maybe Text)
+pjwilAccessToken
+ = lens _pjwilAccessToken
+ (\ s a -> s{_pjwilAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+pjwilUploadType :: Lens' ProjectsJobsWorkItemsLease (Maybe Text)
+pjwilUploadType
+ = lens _pjwilUploadType
+ (\ s a -> s{_pjwilUploadType = a})
+
+-- | Multipart request metadata.
+pjwilPayload :: Lens' ProjectsJobsWorkItemsLease LeaseWorkItemRequest
+pjwilPayload
+ = lens _pjwilPayload (\ s a -> s{_pjwilPayload = a})
+
+-- | OAuth bearer token.
+pjwilBearerToken :: Lens' ProjectsJobsWorkItemsLease (Maybe Text)
+pjwilBearerToken
+ = lens _pjwilBearerToken
+ (\ s a -> s{_pjwilBearerToken = a})
+
+-- | Identifies the project this worker belongs to.
+pjwilProjectId :: Lens' ProjectsJobsWorkItemsLease Text
+pjwilProjectId
+ = lens _pjwilProjectId
+ (\ s a -> s{_pjwilProjectId = a})
+
+-- | JSONP
+pjwilCallback :: Lens' ProjectsJobsWorkItemsLease (Maybe Text)
+pjwilCallback
+ = lens _pjwilCallback
+ (\ s a -> s{_pjwilCallback = a})
+
+instance GoogleRequest ProjectsJobsWorkItemsLease
+ where
+ type Rs ProjectsJobsWorkItemsLease =
+ LeaseWorkItemResponse
+ requestClient ProjectsJobsWorkItemsLease{..}
+ = go _pjwilProjectId _pjwilJobId _pjwilXgafv
+ _pjwilUploadProtocol
+ (Just _pjwilPp)
+ _pjwilAccessToken
+ _pjwilUploadType
+ _pjwilBearerToken
+ _pjwilCallback
+ (Just AltJSON)
+ _pjwilPayload
+ dataflowService
+ where go
+ = buildClient
+ (Proxy :: Proxy ProjectsJobsWorkItemsLeaseResource)
+ mempty
diff --git a/gen/Network/Google/Resource/Dataflow/Projects/Jobs/WorkItems/ReportStatus.hs b/gen/Network/Google/Resource/Dataflow/Projects/Jobs/WorkItems/ReportStatus.hs
new file mode 100644
index 0000000..1546938
--- /dev/null
+++ b/gen/Network/Google/Resource/Dataflow/Projects/Jobs/WorkItems/ReportStatus.hs
@@ -0,0 +1,204 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE TypeOperators #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- |
+-- Module : Network.Google.Resource.Dataflow.Projects.Jobs.WorkItems.ReportStatus
+-- Copyright : (c) 2015 Brendan Hay
+-- License : Mozilla Public License, v. 2.0.
+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Reports the status of dataflow WorkItems leased by a worker.
+--
+-- /See:/ <https://cloud.google.com/dataflow Google Dataflow API Reference> for @dataflow.projects.jobs.workItems.reportStatus@.
+module Network.Google.Resource.Dataflow.Projects.Jobs.WorkItems.ReportStatus
+ (
+ -- * REST Resource
+ ProjectsJobsWorkItemsReportStatusResource
+
+ -- * Creating a Request
+ , projectsJobsWorkItemsReportStatus
+ , ProjectsJobsWorkItemsReportStatus
+
+ -- * Request Lenses
+ , pjwirsXgafv
+ , pjwirsJobId
+ , pjwirsUploadProtocol
+ , pjwirsPp
+ , pjwirsAccessToken
+ , pjwirsUploadType
+ , pjwirsPayload
+ , pjwirsBearerToken
+ , pjwirsProjectId
+ , pjwirsCallback
+ ) where
+
+import Network.Google.Dataflow.Types
+import Network.Google.Prelude
+
+-- | A resource alias for @dataflow.projects.jobs.workItems.reportStatus@ method which the
+-- 'ProjectsJobsWorkItemsReportStatus' 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
+
+-- | Reports the status of dataflow WorkItems leased by a worker.
+--
+-- /See:/ 'projectsJobsWorkItemsReportStatus' smart constructor.
+data ProjectsJobsWorkItemsReportStatus = ProjectsJobsWorkItemsReportStatus
+ { _pjwirsXgafv :: !(Maybe Text)
+ , _pjwirsJobId :: !Text
+ , _pjwirsUploadProtocol :: !(Maybe Text)
+ , _pjwirsPp :: !Bool
+ , _pjwirsAccessToken :: !(Maybe Text)
+ , _pjwirsUploadType :: !(Maybe Text)
+ , _pjwirsPayload :: !ReportWorkItemStatusRequest
+ , _pjwirsBearerToken :: !(Maybe Text)
+ , _pjwirsProjectId :: !Text
+ , _pjwirsCallback :: !(Maybe Text)
+ } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsJobsWorkItemsReportStatus' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pjwirsXgafv'
+--
+-- * 'pjwirsJobId'
+--
+-- * 'pjwirsUploadProtocol'
+--
+-- * 'pjwirsPp'
+--
+-- * 'pjwirsAccessToken'
+--
+-- * 'pjwirsUploadType'
+--
+-- * 'pjwirsPayload'
+--
+-- * 'pjwirsBearerToken'
+--
+-- * 'pjwirsProjectId'
+--
+-- * 'pjwirsCallback'
+projectsJobsWorkItemsReportStatus
+ :: Text -- ^ 'pjwirsJobId'
+ -> ReportWorkItemStatusRequest -- ^ 'pjwirsPayload'
+ -> Text -- ^ 'pjwirsProjectId'
+ -> ProjectsJobsWorkItemsReportStatus
+projectsJobsWorkItemsReportStatus pPjwirsJobId_ pPjwirsPayload_ pPjwirsProjectId_ =
+ ProjectsJobsWorkItemsReportStatus
+ { _pjwirsXgafv = Nothing
+ , _pjwirsJobId = pPjwirsJobId_
+ , _pjwirsUploadProtocol = Nothing
+ , _pjwirsPp = True
+ , _pjwirsAccessToken = Nothing
+ , _pjwirsUploadType = Nothing
+ , _pjwirsPayload = pPjwirsPayload_
+ , _pjwirsBearerToken = Nothing
+ , _pjwirsProjectId = pPjwirsProjectId_
+ , _pjwirsCallback = Nothing
+ }
+
+-- | V1 error format.
+pjwirsXgafv :: Lens' ProjectsJobsWorkItemsReportStatus (Maybe Text)
+pjwirsXgafv
+ = lens _pjwirsXgafv (\ s a -> s{_pjwirsXgafv = a})
+
+-- | The job which the WorkItem is part of.
+pjwirsJobId :: Lens' ProjectsJobsWorkItemsReportStatus Text
+pjwirsJobId
+ = lens _pjwirsJobId (\ s a -> s{_pjwirsJobId = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+pjwirsUploadProtocol :: Lens' ProjectsJobsWorkItemsReportStatus (Maybe Text)
+pjwirsUploadProtocol
+ = lens _pjwirsUploadProtocol
+ (\ s a -> s{_pjwirsUploadProtocol = a})
+
+-- | Pretty-print response.
+pjwirsPp :: Lens' ProjectsJobsWorkItemsReportStatus Bool
+pjwirsPp = lens _pjwirsPp (\ s a -> s{_pjwirsPp = a})
+
+-- | OAuth access token.
+pjwirsAccessToken :: Lens' ProjectsJobsWorkItemsReportStatus (Maybe Text)
+pjwirsAccessToken
+ = lens _pjwirsAccessToken
+ (\ s a -> s{_pjwirsAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+pjwirsUploadType :: Lens' ProjectsJobsWorkItemsReportStatus (Maybe Text)
+pjwirsUploadType
+ = lens _pjwirsUploadType
+ (\ s a -> s{_pjwirsUploadType = a})
+
+-- | Multipart request metadata.
+pjwirsPayload :: Lens' ProjectsJobsWorkItemsReportStatus ReportWorkItemStatusRequest
+pjwirsPayload
+ = lens _pjwirsPayload
+ (\ s a -> s{_pjwirsPayload = a})
+
+-- | OAuth bearer token.
+pjwirsBearerToken :: Lens' ProjectsJobsWorkItemsReportStatus (Maybe Text)
+pjwirsBearerToken
+ = lens _pjwirsBearerToken
+ (\ s a -> s{_pjwirsBearerToken = a})
+
+-- | The project which owns the WorkItem\'s job.
+pjwirsProjectId :: Lens' ProjectsJobsWorkItemsReportStatus Text
+pjwirsProjectId
+ = lens _pjwirsProjectId
+ (\ s a -> s{_pjwirsProjectId = a})
+
+-- | JSONP
+pjwirsCallback :: Lens' ProjectsJobsWorkItemsReportStatus (Maybe Text)
+pjwirsCallback
+ = lens _pjwirsCallback
+ (\ s a -> s{_pjwirsCallback = a})
+
+instance GoogleRequest
+ ProjectsJobsWorkItemsReportStatus where
+ type Rs ProjectsJobsWorkItemsReportStatus =
+ ReportWorkItemStatusResponse
+ requestClient ProjectsJobsWorkItemsReportStatus{..}
+ = go _pjwirsProjectId _pjwirsJobId _pjwirsXgafv
+ _pjwirsUploadProtocol
+ (Just _pjwirsPp)
+ _pjwirsAccessToken
+ _pjwirsUploadType
+ _pjwirsBearerToken
+ _pjwirsCallback
+ (Just AltJSON)
+ _pjwirsPayload
+ dataflowService
+ where go
+ = buildClient
+ (Proxy ::
+ Proxy ProjectsJobsWorkItemsReportStatusResource)
+ mempty
diff --git a/gogol-dataflow.cabal b/gogol-dataflow.cabal
new file mode 100644
index 0000000..af1c5c1
--- /dev/null
+++ b/gogol-dataflow.cabal
@@ -0,0 +1,53 @@
+name: gogol-dataflow
+version: 0.0.1
+synopsis: Google Dataflow SDK.
+homepage: https://github.com/brendanhay/gogol
+bug-reports: https://github.com/brendanhay/gogol/issues
+license: OtherLicense
+license-file: LICENSE
+author: Brendan Hay
+maintainer: Brendan Hay <brendan.g.hay@gmail.com>
+copyright: Copyright (c) 2015 Brendan Hay
+category: Network, Google, Cloud
+build-type: Simple
+cabal-version: >= 1.10
+extra-source-files: README.md
+
+description:
+ Google Dataflow API.
+ .
+ /Warning:/ 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 @v1b3@
+ of the API.
+
+source-repository head
+ type: git
+ location: git://github.com/brendanhay/gogol.git
+
+library
+ default-language: Haskell2010
+ hs-source-dirs: src gen
+
+ ghc-options: -Wall
+
+ exposed-modules:
+ Network.Google.Dataflow
+ , Network.Google.Dataflow.Types
+ , Network.Google.Resource.Dataflow.Projects.Jobs.Create
+ , Network.Google.Resource.Dataflow.Projects.Jobs.Get
+ , Network.Google.Resource.Dataflow.Projects.Jobs.GetMetrics
+ , Network.Google.Resource.Dataflow.Projects.Jobs.List
+ , Network.Google.Resource.Dataflow.Projects.Jobs.Messages.List
+ , Network.Google.Resource.Dataflow.Projects.Jobs.Update
+ , Network.Google.Resource.Dataflow.Projects.Jobs.WorkItems.Lease
+ , Network.Google.Resource.Dataflow.Projects.Jobs.WorkItems.ReportStatus
+
+ other-modules:
+ Network.Google.Dataflow.Types.Product
+ , Network.Google.Dataflow.Types.Sum
+
+ build-depends:
+ gogol-core == 0.0.1.*
+ , base >= 4.7 && < 5