diff options
-rw-r--r-- | LICENSE | 367 | ||||
-rw-r--r-- | README.md | 28 | ||||
-rw-r--r-- | Setup.hs | 2 | ||||
-rw-r--r-- | gen/Network/Google/Dataflow.hs | 759 | ||||
-rw-r--r-- | gen/Network/Google/Dataflow/Types.hs | 721 | ||||
-rw-r--r-- | gen/Network/Google/Dataflow/Types/Product.hs | 6244 | ||||
-rw-r--r-- | gen/Network/Google/Dataflow/Types/Sum.hs | 19 | ||||
-rw-r--r-- | gen/Network/Google/Resource/Dataflow/Projects/Jobs/Create.hs | 206 | ||||
-rw-r--r-- | gen/Network/Google/Resource/Dataflow/Projects/Jobs/Get.hs | 192 | ||||
-rw-r--r-- | gen/Network/Google/Resource/Dataflow/Projects/Jobs/GetMetrics.hs | 200 | ||||
-rw-r--r-- | gen/Network/Google/Resource/Dataflow/Projects/Jobs/List.hs | 209 | ||||
-rw-r--r-- | gen/Network/Google/Resource/Dataflow/Projects/Jobs/Messages/List.hs | 256 | ||||
-rw-r--r-- | gen/Network/Google/Resource/Dataflow/Projects/Jobs/Update.hs | 194 | ||||
-rw-r--r-- | gen/Network/Google/Resource/Dataflow/Projects/Jobs/WorkItems/Lease.hs | 202 | ||||
-rw-r--r-- | gen/Network/Google/Resource/Dataflow/Projects/Jobs/WorkItems/ReportStatus.hs | 204 | ||||
-rw-r--r-- | gogol-dataflow.cabal | 53 |
16 files changed, 9856 insertions, 0 deletions
@@ -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 |