packages feed

gogol-bigquery 0.3.0 → 0.4.0

raw patch · 12 files changed

+8305/−5804 lines, 12 filesdep ~gogol-corePVP ok

version bump matches the API change (PVP)

Dependency ranges changed: gogol-core

API changes (from Hackage documentation)

+ Network.Google.BigQuery: bigQueryModelTraining :: BigQueryModelTraining
+ Network.Google.BigQuery: bqmtCurrentIteration :: Lens' BigQueryModelTraining (Maybe Int32)
+ Network.Google.BigQuery: bqmtExpectedTotalIterations :: Lens' BigQueryModelTraining (Maybe Int64)
+ Network.Google.BigQuery: cFields :: Lens' Clustering [Text]
+ Network.Google.BigQuery: clustering :: Clustering
+ Network.Google.BigQuery: data BigQueryModelTraining
+ Network.Google.BigQuery: data Clustering
+ Network.Google.BigQuery: data DestinationTableProperties
+ Network.Google.BigQuery: data EncryptionConfiguration
+ Network.Google.BigQuery: data GetServiceAccountResponse
+ Network.Google.BigQuery: data IterationResult
+ Network.Google.BigQuery: data JobStatistics2ReservationUsageItem
+ Network.Google.BigQuery: data JobStatisticsReservationUsageItem
+ Network.Google.BigQuery: data MaterializedViewDefinition
+ Network.Google.BigQuery: data ModelDefinition
+ Network.Google.BigQuery: data ModelDefinitionModelOptions
+ Network.Google.BigQuery: data QueryTimelineSample
+ Network.Google.BigQuery: data RangePartitioning
+ Network.Google.BigQuery: data RangePartitioningRange
+ Network.Google.BigQuery: data TableListTablesItemView
+ Network.Google.BigQuery: data TrainingRun
+ Network.Google.BigQuery: data TrainingRunTrainingOptions
+ Network.Google.BigQuery: destinationTableProperties :: DestinationTableProperties
+ Network.Google.BigQuery: dsDefaultPartitionExpirationMs :: Lens' DataSet (Maybe Int64)
+ Network.Google.BigQuery: dsaiIAMMember :: Lens' DataSetAccessItem (Maybe Text)
+ Network.Google.BigQuery: dsldsiLocation :: Lens' DataSetListDataSetsItem (Maybe Text)
+ Network.Google.BigQuery: dtpDescription :: Lens' DestinationTableProperties (Maybe Text)
+ Network.Google.BigQuery: dtpFriendlyName :: Lens' DestinationTableProperties (Maybe Text)
+ Network.Google.BigQuery: ecKmsKeyName :: Lens' EncryptionConfiguration (Maybe Text)
+ Network.Google.BigQuery: encryptionConfiguration :: EncryptionConfiguration
+ Network.Google.BigQuery: eqsCompletedParallelInputs :: Lens' ExplainQueryStage (Maybe Int64)
+ Network.Google.BigQuery: eqsComputeMsAvg :: Lens' ExplainQueryStage (Maybe Int64)
+ Network.Google.BigQuery: eqsComputeMsMax :: Lens' ExplainQueryStage (Maybe Int64)
+ Network.Google.BigQuery: eqsEndMs :: Lens' ExplainQueryStage (Maybe Int64)
+ Network.Google.BigQuery: eqsInputStages :: Lens' ExplainQueryStage [Int64]
+ Network.Google.BigQuery: eqsParallelInputs :: Lens' ExplainQueryStage (Maybe Int64)
+ Network.Google.BigQuery: eqsReadMsAvg :: Lens' ExplainQueryStage (Maybe Int64)
+ Network.Google.BigQuery: eqsReadMsMax :: Lens' ExplainQueryStage (Maybe Int64)
+ Network.Google.BigQuery: eqsShuffleOutputBytes :: Lens' ExplainQueryStage (Maybe Int64)
+ Network.Google.BigQuery: eqsShuffleOutputBytesSpilled :: Lens' ExplainQueryStage (Maybe Int64)
+ Network.Google.BigQuery: eqsStartMs :: Lens' ExplainQueryStage (Maybe Int64)
+ Network.Google.BigQuery: eqsWaitMsAvg :: Lens' ExplainQueryStage (Maybe Int64)
+ Network.Google.BigQuery: eqsWaitMsMax :: Lens' ExplainQueryStage (Maybe Int64)
+ Network.Google.BigQuery: eqsWriteMsAvg :: Lens' ExplainQueryStage (Maybe Int64)
+ Network.Google.BigQuery: eqsWriteMsMax :: Lens' ExplainQueryStage (Maybe Int64)
+ Network.Google.BigQuery: getServiceAccountResponse :: GetServiceAccountResponse
+ Network.Google.BigQuery: gsarEmail :: Lens' GetServiceAccountResponse (Maybe Text)
+ Network.Google.BigQuery: gsarKind :: Lens' GetServiceAccountResponse Text
+ Network.Google.BigQuery: gsoRange :: Lens' GoogleSheetsOptions (Maybe Text)
+ Network.Google.BigQuery: irDurationMs :: Lens' IterationResult (Maybe Int64)
+ Network.Google.BigQuery: irEvalLoss :: Lens' IterationResult (Maybe Double)
+ Network.Google.BigQuery: irIndex :: Lens' IterationResult (Maybe Int32)
+ Network.Google.BigQuery: irLearnRate :: Lens' IterationResult (Maybe Double)
+ Network.Google.BigQuery: irTrainingLoss :: Lens' IterationResult (Maybe Double)
+ Network.Google.BigQuery: iterationResult :: IterationResult
+ Network.Google.BigQuery: jDdlOperationPerformed :: Lens' JobStatistics2 (Maybe Text)
+ Network.Google.BigQuery: jDdlTargetTable :: Lens' JobStatistics2 (Maybe TableReference)
+ Network.Google.BigQuery: jEstimatedBytesProcessed :: Lens' JobStatistics2 (Maybe Int64)
+ Network.Google.BigQuery: jModelTraining :: Lens' JobStatistics2 (Maybe BigQueryModelTraining)
+ Network.Google.BigQuery: jModelTrainingCurrentIteration :: Lens' JobStatistics2 (Maybe Int32)
+ Network.Google.BigQuery: jModelTrainingExpectedTotalIteration :: Lens' JobStatistics2 (Maybe Int64)
+ Network.Google.BigQuery: jName :: Lens' JobStatistics2ReservationUsageItem (Maybe Text)
+ Network.Google.BigQuery: jReservationUsage :: Lens' JobStatistics2 [JobStatistics2ReservationUsageItem]
+ Network.Google.BigQuery: jSlotMs :: Lens' JobStatistics2ReservationUsageItem (Maybe Int64)
+ Network.Google.BigQuery: jTimeline :: Lens' JobStatistics2 [QueryTimelineSample]
+ Network.Google.BigQuery: jTotalBytesProcessedAccuracy :: Lens' JobStatistics2 (Maybe Text)
+ Network.Google.BigQuery: jTotalPartitionsProcessed :: Lens' JobStatistics2 (Maybe Int64)
+ Network.Google.BigQuery: jTotalSlotMs :: Lens' JobStatistics2 (Maybe Int64)
+ Network.Google.BigQuery: jcJobTimeoutMs :: Lens' JobConfiguration (Maybe Int64)
+ Network.Google.BigQuery: jcJobType :: Lens' JobConfiguration (Maybe Text)
+ Network.Google.BigQuery: jclClustering :: Lens' JobConfigurationLoad (Maybe Clustering)
+ Network.Google.BigQuery: jclDestinationEncryptionConfiguration :: Lens' JobConfigurationLoad (Maybe EncryptionConfiguration)
+ Network.Google.BigQuery: jclDestinationTableProperties :: Lens' JobConfigurationLoad (Maybe DestinationTableProperties)
+ Network.Google.BigQuery: jclRangePartitioning :: Lens' JobConfigurationLoad (Maybe RangePartitioning)
+ Network.Google.BigQuery: jclTimePartitioning :: Lens' JobConfigurationLoad (Maybe TimePartitioning)
+ Network.Google.BigQuery: jclUseAvroLogicalTypes :: Lens' JobConfigurationLoad (Maybe Bool)
+ Network.Google.BigQuery: jcqClustering :: Lens' JobConfigurationQuery (Maybe Clustering)
+ Network.Google.BigQuery: jcqDestinationEncryptionConfiguration :: Lens' JobConfigurationQuery (Maybe EncryptionConfiguration)
+ Network.Google.BigQuery: jcqRangePartitioning :: Lens' JobConfigurationQuery (Maybe RangePartitioning)
+ Network.Google.BigQuery: jcqTimePartitioning :: Lens' JobConfigurationQuery (Maybe TimePartitioning)
+ Network.Google.BigQuery: jctcDestinationEncryptionConfiguration :: Lens' JobConfigurationTableCopy (Maybe EncryptionConfiguration)
+ Network.Google.BigQuery: jobStatistics2ReservationUsageItem :: JobStatistics2ReservationUsageItem
+ Network.Google.BigQuery: jobStatisticsReservationUsageItem :: JobStatisticsReservationUsageItem
+ Network.Google.BigQuery: jrLocation :: Lens' JobReference (Maybe Text)
+ Network.Google.BigQuery: jsBadRecords :: Lens' JobStatistics3 (Maybe Int64)
+ Network.Google.BigQuery: jsCompletionRatio :: Lens' JobStatistics (Maybe Double)
+ Network.Google.BigQuery: jsQuotaDeferments :: Lens' JobStatistics [Text]
+ Network.Google.BigQuery: jsReservationUsage :: Lens' JobStatistics [JobStatisticsReservationUsageItem]
+ Network.Google.BigQuery: jsTotalSlotMs :: Lens' JobStatistics (Maybe Int64)
+ Network.Google.BigQuery: jsruiName :: Lens' JobStatisticsReservationUsageItem (Maybe Text)
+ Network.Google.BigQuery: jsruiSlotMs :: Lens' JobStatisticsReservationUsageItem (Maybe Int64)
+ Network.Google.BigQuery: materializedViewDefinition :: MaterializedViewDefinition
+ Network.Google.BigQuery: mdModelOptions :: Lens' ModelDefinition (Maybe ModelDefinitionModelOptions)
+ Network.Google.BigQuery: mdTrainingRuns :: Lens' ModelDefinition [TrainingRun]
+ Network.Google.BigQuery: mdmoLabels :: Lens' ModelDefinitionModelOptions [Text]
+ Network.Google.BigQuery: mdmoLossType :: Lens' ModelDefinitionModelOptions (Maybe Text)
+ Network.Google.BigQuery: mdmoModelType :: Lens' ModelDefinitionModelOptions (Maybe Text)
+ Network.Google.BigQuery: modelDefinition :: ModelDefinition
+ Network.Google.BigQuery: modelDefinitionModelOptions :: ModelDefinitionModelOptions
+ Network.Google.BigQuery: mvdLastRefreshTime :: Lens' MaterializedViewDefinition (Maybe Int64)
+ Network.Google.BigQuery: mvdQuery :: Lens' MaterializedViewDefinition (Maybe Text)
+ Network.Google.BigQuery: qrLocation :: Lens' QueryRequest (Maybe Text)
+ Network.Google.BigQuery: qtsActiveUnits :: Lens' QueryTimelineSample (Maybe Int64)
+ Network.Google.BigQuery: qtsCompletedUnits :: Lens' QueryTimelineSample (Maybe Int64)
+ Network.Google.BigQuery: qtsElapsedMs :: Lens' QueryTimelineSample (Maybe Int64)
+ Network.Google.BigQuery: qtsPendingUnits :: Lens' QueryTimelineSample (Maybe Int64)
+ Network.Google.BigQuery: qtsTotalSlotMs :: Lens' QueryTimelineSample (Maybe Int64)
+ Network.Google.BigQuery: queryTimelineSample :: QueryTimelineSample
+ Network.Google.BigQuery: rangePartitioning :: RangePartitioning
+ Network.Google.BigQuery: rangePartitioningRange :: RangePartitioningRange
+ Network.Google.BigQuery: rpField :: Lens' RangePartitioning (Maybe Text)
+ Network.Google.BigQuery: rpRange :: Lens' RangePartitioning (Maybe RangePartitioningRange)
+ Network.Google.BigQuery: rprEnd :: Lens' RangePartitioningRange (Maybe Int64)
+ Network.Google.BigQuery: rprInterval :: Lens' RangePartitioningRange (Maybe Int64)
+ Network.Google.BigQuery: rprStart :: Lens' RangePartitioningRange (Maybe Int64)
+ Network.Google.BigQuery: tabClustering :: Lens' Table (Maybe Clustering)
+ Network.Google.BigQuery: tabEncryptionConfiguration :: Lens' Table (Maybe EncryptionConfiguration)
+ Network.Google.BigQuery: tabMaterializedView :: Lens' Table (Maybe MaterializedViewDefinition)
+ Network.Google.BigQuery: tabModel :: Lens' Table (Maybe ModelDefinition)
+ Network.Google.BigQuery: tabNumPhysicalBytes :: Lens' Table (Maybe Int64)
+ Network.Google.BigQuery: tabRangePartitioning :: Lens' Table (Maybe RangePartitioning)
+ Network.Google.BigQuery: tabRequirePartitionFilter :: Lens' Table Bool
+ Network.Google.BigQuery: tableListTablesItemView :: TableListTablesItemView
+ Network.Google.BigQuery: tltiClustering :: Lens' TableListTablesItem (Maybe Clustering)
+ Network.Google.BigQuery: tltiCreationTime :: Lens' TableListTablesItem (Maybe Int64)
+ Network.Google.BigQuery: tltiExpirationTime :: Lens' TableListTablesItem (Maybe Int64)
+ Network.Google.BigQuery: tltiTimePartitioning :: Lens' TableListTablesItem (Maybe TimePartitioning)
+ Network.Google.BigQuery: tltiView :: Lens' TableListTablesItem (Maybe TableListTablesItemView)
+ Network.Google.BigQuery: tltivUseLegacySQL :: Lens' TableListTablesItemView (Maybe Bool)
+ Network.Google.BigQuery: tpField :: Lens' TimePartitioning (Maybe Text)
+ Network.Google.BigQuery: tpRequirePartitionFilter :: Lens' TimePartitioning (Maybe Bool)
+ Network.Google.BigQuery: trIterationResults :: Lens' TrainingRun [IterationResult]
+ Network.Google.BigQuery: trStartTime :: Lens' TrainingRun (Maybe UTCTime)
+ Network.Google.BigQuery: trState :: Lens' TrainingRun (Maybe Text)
+ Network.Google.BigQuery: trTrainingOptions :: Lens' TrainingRun (Maybe TrainingRunTrainingOptions)
+ Network.Google.BigQuery: trainingRun :: TrainingRun
+ Network.Google.BigQuery: trainingRunTrainingOptions :: TrainingRunTrainingOptions
+ Network.Google.BigQuery: trtoEarlyStop :: Lens' TrainingRunTrainingOptions (Maybe Bool)
+ Network.Google.BigQuery: trtoL1Reg :: Lens' TrainingRunTrainingOptions (Maybe Double)
+ Network.Google.BigQuery: trtoL2Reg :: Lens' TrainingRunTrainingOptions (Maybe Double)
+ Network.Google.BigQuery: trtoLearnRate :: Lens' TrainingRunTrainingOptions (Maybe Double)
+ Network.Google.BigQuery: trtoLearnRateStrategy :: Lens' TrainingRunTrainingOptions (Maybe Text)
+ Network.Google.BigQuery: trtoLineSearchInitLearnRate :: Lens' TrainingRunTrainingOptions (Maybe Double)
+ Network.Google.BigQuery: trtoMaxIteration :: Lens' TrainingRunTrainingOptions (Maybe Int64)
+ Network.Google.BigQuery: trtoMinRelProgress :: Lens' TrainingRunTrainingOptions (Maybe Double)
+ Network.Google.BigQuery: trtoWarmStart :: Lens' TrainingRunTrainingOptions (Maybe Bool)
+ Network.Google.BigQuery.Types: bigQueryModelTraining :: BigQueryModelTraining
+ Network.Google.BigQuery.Types: bqmtCurrentIteration :: Lens' BigQueryModelTraining (Maybe Int32)
+ Network.Google.BigQuery.Types: bqmtExpectedTotalIterations :: Lens' BigQueryModelTraining (Maybe Int64)
+ Network.Google.BigQuery.Types: cFields :: Lens' Clustering [Text]
+ Network.Google.BigQuery.Types: clustering :: Clustering
+ Network.Google.BigQuery.Types: data BigQueryModelTraining
+ Network.Google.BigQuery.Types: data Clustering
+ Network.Google.BigQuery.Types: data DestinationTableProperties
+ Network.Google.BigQuery.Types: data EncryptionConfiguration
+ Network.Google.BigQuery.Types: data GetServiceAccountResponse
+ Network.Google.BigQuery.Types: data IterationResult
+ Network.Google.BigQuery.Types: data JobStatistics2ReservationUsageItem
+ Network.Google.BigQuery.Types: data JobStatisticsReservationUsageItem
+ Network.Google.BigQuery.Types: data MaterializedViewDefinition
+ Network.Google.BigQuery.Types: data ModelDefinition
+ Network.Google.BigQuery.Types: data ModelDefinitionModelOptions
+ Network.Google.BigQuery.Types: data QueryTimelineSample
+ Network.Google.BigQuery.Types: data RangePartitioning
+ Network.Google.BigQuery.Types: data RangePartitioningRange
+ Network.Google.BigQuery.Types: data TableListTablesItemView
+ Network.Google.BigQuery.Types: data TrainingRun
+ Network.Google.BigQuery.Types: data TrainingRunTrainingOptions
+ Network.Google.BigQuery.Types: destinationTableProperties :: DestinationTableProperties
+ Network.Google.BigQuery.Types: dsDefaultPartitionExpirationMs :: Lens' DataSet (Maybe Int64)
+ Network.Google.BigQuery.Types: dsaiIAMMember :: Lens' DataSetAccessItem (Maybe Text)
+ Network.Google.BigQuery.Types: dsldsiLocation :: Lens' DataSetListDataSetsItem (Maybe Text)
+ Network.Google.BigQuery.Types: dtpDescription :: Lens' DestinationTableProperties (Maybe Text)
+ Network.Google.BigQuery.Types: dtpFriendlyName :: Lens' DestinationTableProperties (Maybe Text)
+ Network.Google.BigQuery.Types: ecKmsKeyName :: Lens' EncryptionConfiguration (Maybe Text)
+ Network.Google.BigQuery.Types: encryptionConfiguration :: EncryptionConfiguration
+ Network.Google.BigQuery.Types: eqsCompletedParallelInputs :: Lens' ExplainQueryStage (Maybe Int64)
+ Network.Google.BigQuery.Types: eqsComputeMsAvg :: Lens' ExplainQueryStage (Maybe Int64)
+ Network.Google.BigQuery.Types: eqsComputeMsMax :: Lens' ExplainQueryStage (Maybe Int64)
+ Network.Google.BigQuery.Types: eqsEndMs :: Lens' ExplainQueryStage (Maybe Int64)
+ Network.Google.BigQuery.Types: eqsInputStages :: Lens' ExplainQueryStage [Int64]
+ Network.Google.BigQuery.Types: eqsParallelInputs :: Lens' ExplainQueryStage (Maybe Int64)
+ Network.Google.BigQuery.Types: eqsReadMsAvg :: Lens' ExplainQueryStage (Maybe Int64)
+ Network.Google.BigQuery.Types: eqsReadMsMax :: Lens' ExplainQueryStage (Maybe Int64)
+ Network.Google.BigQuery.Types: eqsShuffleOutputBytes :: Lens' ExplainQueryStage (Maybe Int64)
+ Network.Google.BigQuery.Types: eqsShuffleOutputBytesSpilled :: Lens' ExplainQueryStage (Maybe Int64)
+ Network.Google.BigQuery.Types: eqsStartMs :: Lens' ExplainQueryStage (Maybe Int64)
+ Network.Google.BigQuery.Types: eqsWaitMsAvg :: Lens' ExplainQueryStage (Maybe Int64)
+ Network.Google.BigQuery.Types: eqsWaitMsMax :: Lens' ExplainQueryStage (Maybe Int64)
+ Network.Google.BigQuery.Types: eqsWriteMsAvg :: Lens' ExplainQueryStage (Maybe Int64)
+ Network.Google.BigQuery.Types: eqsWriteMsMax :: Lens' ExplainQueryStage (Maybe Int64)
+ Network.Google.BigQuery.Types: getServiceAccountResponse :: GetServiceAccountResponse
+ Network.Google.BigQuery.Types: gsarEmail :: Lens' GetServiceAccountResponse (Maybe Text)
+ Network.Google.BigQuery.Types: gsarKind :: Lens' GetServiceAccountResponse Text
+ Network.Google.BigQuery.Types: gsoRange :: Lens' GoogleSheetsOptions (Maybe Text)
+ Network.Google.BigQuery.Types: irDurationMs :: Lens' IterationResult (Maybe Int64)
+ Network.Google.BigQuery.Types: irEvalLoss :: Lens' IterationResult (Maybe Double)
+ Network.Google.BigQuery.Types: irIndex :: Lens' IterationResult (Maybe Int32)
+ Network.Google.BigQuery.Types: irLearnRate :: Lens' IterationResult (Maybe Double)
+ Network.Google.BigQuery.Types: irTrainingLoss :: Lens' IterationResult (Maybe Double)
+ Network.Google.BigQuery.Types: iterationResult :: IterationResult
+ Network.Google.BigQuery.Types: jDdlOperationPerformed :: Lens' JobStatistics2 (Maybe Text)
+ Network.Google.BigQuery.Types: jDdlTargetTable :: Lens' JobStatistics2 (Maybe TableReference)
+ Network.Google.BigQuery.Types: jEstimatedBytesProcessed :: Lens' JobStatistics2 (Maybe Int64)
+ Network.Google.BigQuery.Types: jModelTraining :: Lens' JobStatistics2 (Maybe BigQueryModelTraining)
+ Network.Google.BigQuery.Types: jModelTrainingCurrentIteration :: Lens' JobStatistics2 (Maybe Int32)
+ Network.Google.BigQuery.Types: jModelTrainingExpectedTotalIteration :: Lens' JobStatistics2 (Maybe Int64)
+ Network.Google.BigQuery.Types: jName :: Lens' JobStatistics2ReservationUsageItem (Maybe Text)
+ Network.Google.BigQuery.Types: jReservationUsage :: Lens' JobStatistics2 [JobStatistics2ReservationUsageItem]
+ Network.Google.BigQuery.Types: jSlotMs :: Lens' JobStatistics2ReservationUsageItem (Maybe Int64)
+ Network.Google.BigQuery.Types: jTimeline :: Lens' JobStatistics2 [QueryTimelineSample]
+ Network.Google.BigQuery.Types: jTotalBytesProcessedAccuracy :: Lens' JobStatistics2 (Maybe Text)
+ Network.Google.BigQuery.Types: jTotalPartitionsProcessed :: Lens' JobStatistics2 (Maybe Int64)
+ Network.Google.BigQuery.Types: jTotalSlotMs :: Lens' JobStatistics2 (Maybe Int64)
+ Network.Google.BigQuery.Types: jcJobTimeoutMs :: Lens' JobConfiguration (Maybe Int64)
+ Network.Google.BigQuery.Types: jcJobType :: Lens' JobConfiguration (Maybe Text)
+ Network.Google.BigQuery.Types: jclClustering :: Lens' JobConfigurationLoad (Maybe Clustering)
+ Network.Google.BigQuery.Types: jclDestinationEncryptionConfiguration :: Lens' JobConfigurationLoad (Maybe EncryptionConfiguration)
+ Network.Google.BigQuery.Types: jclDestinationTableProperties :: Lens' JobConfigurationLoad (Maybe DestinationTableProperties)
+ Network.Google.BigQuery.Types: jclRangePartitioning :: Lens' JobConfigurationLoad (Maybe RangePartitioning)
+ Network.Google.BigQuery.Types: jclTimePartitioning :: Lens' JobConfigurationLoad (Maybe TimePartitioning)
+ Network.Google.BigQuery.Types: jclUseAvroLogicalTypes :: Lens' JobConfigurationLoad (Maybe Bool)
+ Network.Google.BigQuery.Types: jcqClustering :: Lens' JobConfigurationQuery (Maybe Clustering)
+ Network.Google.BigQuery.Types: jcqDestinationEncryptionConfiguration :: Lens' JobConfigurationQuery (Maybe EncryptionConfiguration)
+ Network.Google.BigQuery.Types: jcqRangePartitioning :: Lens' JobConfigurationQuery (Maybe RangePartitioning)
+ Network.Google.BigQuery.Types: jcqTimePartitioning :: Lens' JobConfigurationQuery (Maybe TimePartitioning)
+ Network.Google.BigQuery.Types: jctcDestinationEncryptionConfiguration :: Lens' JobConfigurationTableCopy (Maybe EncryptionConfiguration)
+ Network.Google.BigQuery.Types: jobStatistics2ReservationUsageItem :: JobStatistics2ReservationUsageItem
+ Network.Google.BigQuery.Types: jobStatisticsReservationUsageItem :: JobStatisticsReservationUsageItem
+ Network.Google.BigQuery.Types: jrLocation :: Lens' JobReference (Maybe Text)
+ Network.Google.BigQuery.Types: jsBadRecords :: Lens' JobStatistics3 (Maybe Int64)
+ Network.Google.BigQuery.Types: jsCompletionRatio :: Lens' JobStatistics (Maybe Double)
+ Network.Google.BigQuery.Types: jsQuotaDeferments :: Lens' JobStatistics [Text]
+ Network.Google.BigQuery.Types: jsReservationUsage :: Lens' JobStatistics [JobStatisticsReservationUsageItem]
+ Network.Google.BigQuery.Types: jsTotalSlotMs :: Lens' JobStatistics (Maybe Int64)
+ Network.Google.BigQuery.Types: jsruiName :: Lens' JobStatisticsReservationUsageItem (Maybe Text)
+ Network.Google.BigQuery.Types: jsruiSlotMs :: Lens' JobStatisticsReservationUsageItem (Maybe Int64)
+ Network.Google.BigQuery.Types: materializedViewDefinition :: MaterializedViewDefinition
+ Network.Google.BigQuery.Types: mdModelOptions :: Lens' ModelDefinition (Maybe ModelDefinitionModelOptions)
+ Network.Google.BigQuery.Types: mdTrainingRuns :: Lens' ModelDefinition [TrainingRun]
+ Network.Google.BigQuery.Types: mdmoLabels :: Lens' ModelDefinitionModelOptions [Text]
+ Network.Google.BigQuery.Types: mdmoLossType :: Lens' ModelDefinitionModelOptions (Maybe Text)
+ Network.Google.BigQuery.Types: mdmoModelType :: Lens' ModelDefinitionModelOptions (Maybe Text)
+ Network.Google.BigQuery.Types: modelDefinition :: ModelDefinition
+ Network.Google.BigQuery.Types: modelDefinitionModelOptions :: ModelDefinitionModelOptions
+ Network.Google.BigQuery.Types: mvdLastRefreshTime :: Lens' MaterializedViewDefinition (Maybe Int64)
+ Network.Google.BigQuery.Types: mvdQuery :: Lens' MaterializedViewDefinition (Maybe Text)
+ Network.Google.BigQuery.Types: qrLocation :: Lens' QueryRequest (Maybe Text)
+ Network.Google.BigQuery.Types: qtsActiveUnits :: Lens' QueryTimelineSample (Maybe Int64)
+ Network.Google.BigQuery.Types: qtsCompletedUnits :: Lens' QueryTimelineSample (Maybe Int64)
+ Network.Google.BigQuery.Types: qtsElapsedMs :: Lens' QueryTimelineSample (Maybe Int64)
+ Network.Google.BigQuery.Types: qtsPendingUnits :: Lens' QueryTimelineSample (Maybe Int64)
+ Network.Google.BigQuery.Types: qtsTotalSlotMs :: Lens' QueryTimelineSample (Maybe Int64)
+ Network.Google.BigQuery.Types: queryTimelineSample :: QueryTimelineSample
+ Network.Google.BigQuery.Types: rangePartitioning :: RangePartitioning
+ Network.Google.BigQuery.Types: rangePartitioningRange :: RangePartitioningRange
+ Network.Google.BigQuery.Types: rpField :: Lens' RangePartitioning (Maybe Text)
+ Network.Google.BigQuery.Types: rpRange :: Lens' RangePartitioning (Maybe RangePartitioningRange)
+ Network.Google.BigQuery.Types: rprEnd :: Lens' RangePartitioningRange (Maybe Int64)
+ Network.Google.BigQuery.Types: rprInterval :: Lens' RangePartitioningRange (Maybe Int64)
+ Network.Google.BigQuery.Types: rprStart :: Lens' RangePartitioningRange (Maybe Int64)
+ Network.Google.BigQuery.Types: tabClustering :: Lens' Table (Maybe Clustering)
+ Network.Google.BigQuery.Types: tabEncryptionConfiguration :: Lens' Table (Maybe EncryptionConfiguration)
+ Network.Google.BigQuery.Types: tabMaterializedView :: Lens' Table (Maybe MaterializedViewDefinition)
+ Network.Google.BigQuery.Types: tabModel :: Lens' Table (Maybe ModelDefinition)
+ Network.Google.BigQuery.Types: tabNumPhysicalBytes :: Lens' Table (Maybe Int64)
+ Network.Google.BigQuery.Types: tabRangePartitioning :: Lens' Table (Maybe RangePartitioning)
+ Network.Google.BigQuery.Types: tabRequirePartitionFilter :: Lens' Table Bool
+ Network.Google.BigQuery.Types: tableListTablesItemView :: TableListTablesItemView
+ Network.Google.BigQuery.Types: tltiClustering :: Lens' TableListTablesItem (Maybe Clustering)
+ Network.Google.BigQuery.Types: tltiCreationTime :: Lens' TableListTablesItem (Maybe Int64)
+ Network.Google.BigQuery.Types: tltiExpirationTime :: Lens' TableListTablesItem (Maybe Int64)
+ Network.Google.BigQuery.Types: tltiTimePartitioning :: Lens' TableListTablesItem (Maybe TimePartitioning)
+ Network.Google.BigQuery.Types: tltiView :: Lens' TableListTablesItem (Maybe TableListTablesItemView)
+ Network.Google.BigQuery.Types: tltivUseLegacySQL :: Lens' TableListTablesItemView (Maybe Bool)
+ Network.Google.BigQuery.Types: tpField :: Lens' TimePartitioning (Maybe Text)
+ Network.Google.BigQuery.Types: tpRequirePartitionFilter :: Lens' TimePartitioning (Maybe Bool)
+ Network.Google.BigQuery.Types: trIterationResults :: Lens' TrainingRun [IterationResult]
+ Network.Google.BigQuery.Types: trStartTime :: Lens' TrainingRun (Maybe UTCTime)
+ Network.Google.BigQuery.Types: trState :: Lens' TrainingRun (Maybe Text)
+ Network.Google.BigQuery.Types: trTrainingOptions :: Lens' TrainingRun (Maybe TrainingRunTrainingOptions)
+ Network.Google.BigQuery.Types: trainingRun :: TrainingRun
+ Network.Google.BigQuery.Types: trainingRunTrainingOptions :: TrainingRunTrainingOptions
+ Network.Google.BigQuery.Types: trtoEarlyStop :: Lens' TrainingRunTrainingOptions (Maybe Bool)
+ Network.Google.BigQuery.Types: trtoL1Reg :: Lens' TrainingRunTrainingOptions (Maybe Double)
+ Network.Google.BigQuery.Types: trtoL2Reg :: Lens' TrainingRunTrainingOptions (Maybe Double)
+ Network.Google.BigQuery.Types: trtoLearnRate :: Lens' TrainingRunTrainingOptions (Maybe Double)
+ Network.Google.BigQuery.Types: trtoLearnRateStrategy :: Lens' TrainingRunTrainingOptions (Maybe Text)
+ Network.Google.BigQuery.Types: trtoLineSearchInitLearnRate :: Lens' TrainingRunTrainingOptions (Maybe Double)
+ Network.Google.BigQuery.Types: trtoMaxIteration :: Lens' TrainingRunTrainingOptions (Maybe Int64)
+ Network.Google.BigQuery.Types: trtoMinRelProgress :: Lens' TrainingRunTrainingOptions (Maybe Double)
+ Network.Google.BigQuery.Types: trtoWarmStart :: Lens' TrainingRunTrainingOptions (Maybe Bool)
+ Network.Google.Resource.BigQuery.Jobs.Cancel: jcLocation :: Lens' JobsCancel (Maybe Text)
+ Network.Google.Resource.BigQuery.Jobs.Get: jgLocation :: Lens' JobsGet (Maybe Text)
+ Network.Google.Resource.BigQuery.Jobs.GetQueryResults: jgqrLocation :: Lens' JobsGetQueryResults (Maybe Text)
+ Network.Google.Resource.BigQuery.Jobs.List: jlMaxCreationTime :: Lens' JobsList (Maybe Word64)
+ Network.Google.Resource.BigQuery.Jobs.List: jlMinCreationTime :: Lens' JobsList (Maybe Word64)
+ Network.Google.Resource.BigQuery.Projects.GetServiceAccount: data ProjectsGetServiceAccount
+ Network.Google.Resource.BigQuery.Projects.GetServiceAccount: instance Data.Data.Data Network.Google.Resource.BigQuery.Projects.GetServiceAccount.ProjectsGetServiceAccount
+ Network.Google.Resource.BigQuery.Projects.GetServiceAccount: instance GHC.Classes.Eq Network.Google.Resource.BigQuery.Projects.GetServiceAccount.ProjectsGetServiceAccount
+ Network.Google.Resource.BigQuery.Projects.GetServiceAccount: instance GHC.Generics.Generic Network.Google.Resource.BigQuery.Projects.GetServiceAccount.ProjectsGetServiceAccount
+ Network.Google.Resource.BigQuery.Projects.GetServiceAccount: instance GHC.Show.Show Network.Google.Resource.BigQuery.Projects.GetServiceAccount.ProjectsGetServiceAccount
+ Network.Google.Resource.BigQuery.Projects.GetServiceAccount: instance Network.Google.Types.GoogleRequest Network.Google.Resource.BigQuery.Projects.GetServiceAccount.ProjectsGetServiceAccount
+ Network.Google.Resource.BigQuery.Projects.GetServiceAccount: pgsaProjectId :: Lens' ProjectsGetServiceAccount Text
+ Network.Google.Resource.BigQuery.Projects.GetServiceAccount: projectsGetServiceAccount :: Text -> ProjectsGetServiceAccount
+ Network.Google.Resource.BigQuery.Projects.GetServiceAccount: type ProjectsGetServiceAccountResource = "bigquery" :> "v2" :> "projects" :> Capture "projectId" Text :> "serviceAccount" :> QueryParam "alt" AltJSON :> Get '[JSON] GetServiceAccountResponse
+ Network.Google.Resource.BigQuery.TableData.List: tSelectedFields :: Lens' TableDataList' (Maybe Text)
+ Network.Google.Resource.BigQuery.Tables.Get: tgSelectedFields :: Lens' TablesGet (Maybe Text)
- Network.Google.BigQuery: jcqAllowLargeResults :: Lens' JobConfigurationQuery (Maybe Bool)
+ Network.Google.BigQuery: jcqAllowLargeResults :: Lens' JobConfigurationQuery Bool
- Network.Google.BigQuery: jcqUseLegacySQL :: Lens' JobConfigurationQuery (Maybe Bool)
+ Network.Google.BigQuery: jcqUseLegacySQL :: Lens' JobConfigurationQuery Bool
- Network.Google.BigQuery: type BigQueryAPI = JobsInsertResource :<|> (JobsListResource :<|> (JobsGetResource :<|> (JobsQueryResource :<|> (JobsCancelResource :<|> (JobsGetQueryResultsResource :<|> (TablesInsertResource :<|> (TablesListResource :<|> (TablesPatchResource :<|> (TablesGetResource :<|> (TablesDeleteResource :<|> (TablesUpdateResource :<|> (TableDataListResource :<|> (TableDataInsertAllResource :<|> (ProjectsListResource :<|> (DataSetsInsertResource :<|> (DataSetsListResource :<|> (DataSetsPatchResource :<|> (DataSetsGetResource :<|> (DataSetsDeleteResource :<|> DataSetsUpdateResource)))))))))))))))))))
+ Network.Google.BigQuery: type BigQueryAPI = JobsInsertResource :<|> JobsListResource :<|> JobsGetResource :<|> JobsQueryResource :<|> JobsCancelResource :<|> JobsGetQueryResultsResource :<|> TablesInsertResource :<|> TablesListResource :<|> TablesPatchResource :<|> TablesGetResource :<|> TablesDeleteResource :<|> TablesUpdateResource :<|> TableDataListResource :<|> TableDataInsertAllResource :<|> ProjectsGetServiceAccountResource :<|> ProjectsListResource :<|> DataSetsInsertResource :<|> DataSetsListResource :<|> DataSetsPatchResource :<|> DataSetsGetResource :<|> DataSetsDeleteResource :<|> DataSetsUpdateResource
- Network.Google.BigQuery.Types: jcqAllowLargeResults :: Lens' JobConfigurationQuery (Maybe Bool)
+ Network.Google.BigQuery.Types: jcqAllowLargeResults :: Lens' JobConfigurationQuery Bool
- Network.Google.BigQuery.Types: jcqUseLegacySQL :: Lens' JobConfigurationQuery (Maybe Bool)
+ Network.Google.BigQuery.Types: jcqUseLegacySQL :: Lens' JobConfigurationQuery Bool
- Network.Google.Resource.BigQuery.DataSets.Delete: type DataSetsDeleteResource = "bigquery" :> ("v2" :> ("projects" :> (Capture "projectId" Text :> ("datasets" :> (Capture "datasetId" Text :> (QueryParam "deleteContents" Bool :> (QueryParam "alt" AltJSON :> Delete '[JSON] ())))))))
+ Network.Google.Resource.BigQuery.DataSets.Delete: type DataSetsDeleteResource = "bigquery" :> "v2" :> "projects" :> Capture "projectId" Text :> "datasets" :> Capture "datasetId" Text :> QueryParam "deleteContents" Bool :> QueryParam "alt" AltJSON :> Delete '[JSON] ()
- Network.Google.Resource.BigQuery.DataSets.Get: type DataSetsGetResource = "bigquery" :> ("v2" :> ("projects" :> (Capture "projectId" Text :> ("datasets" :> (Capture "datasetId" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] DataSet))))))
+ Network.Google.Resource.BigQuery.DataSets.Get: type DataSetsGetResource = "bigquery" :> "v2" :> "projects" :> Capture "projectId" Text :> "datasets" :> Capture "datasetId" Text :> QueryParam "alt" AltJSON :> Get '[JSON] DataSet
- Network.Google.Resource.BigQuery.DataSets.Insert: type DataSetsInsertResource = "bigquery" :> ("v2" :> ("projects" :> (Capture "projectId" Text :> ("datasets" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] DataSet :> Post '[JSON] DataSet))))))
+ Network.Google.Resource.BigQuery.DataSets.Insert: type DataSetsInsertResource = "bigquery" :> "v2" :> "projects" :> Capture "projectId" Text :> "datasets" :> QueryParam "alt" AltJSON :> ReqBody '[JSON] DataSet :> Post '[JSON] DataSet
- Network.Google.Resource.BigQuery.DataSets.List: type DataSetsListResource = "bigquery" :> ("v2" :> ("projects" :> (Capture "projectId" Text :> ("datasets" :> (QueryParam "all" Bool :> (QueryParam "filter" Text :> (QueryParam "pageToken" Text :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "alt" AltJSON :> Get '[JSON] DataSetList)))))))))
+ Network.Google.Resource.BigQuery.DataSets.List: type DataSetsListResource = "bigquery" :> "v2" :> "projects" :> Capture "projectId" Text :> "datasets" :> QueryParam "all" Bool :> QueryParam "filter" Text :> QueryParam "pageToken" Text :> QueryParam "maxResults" (Textual Word32) :> QueryParam "alt" AltJSON :> Get '[JSON] DataSetList
- Network.Google.Resource.BigQuery.DataSets.Patch: type DataSetsPatchResource = "bigquery" :> ("v2" :> ("projects" :> (Capture "projectId" Text :> ("datasets" :> (Capture "datasetId" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] DataSet :> Patch '[JSON] DataSet)))))))
+ Network.Google.Resource.BigQuery.DataSets.Patch: type DataSetsPatchResource = "bigquery" :> "v2" :> "projects" :> Capture "projectId" Text :> "datasets" :> Capture "datasetId" Text :> QueryParam "alt" AltJSON :> ReqBody '[JSON] DataSet :> Patch '[JSON] DataSet
- Network.Google.Resource.BigQuery.DataSets.Update: type DataSetsUpdateResource = "bigquery" :> ("v2" :> ("projects" :> (Capture "projectId" Text :> ("datasets" :> (Capture "datasetId" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] DataSet :> Put '[JSON] DataSet)))))))
+ Network.Google.Resource.BigQuery.DataSets.Update: type DataSetsUpdateResource = "bigquery" :> "v2" :> "projects" :> Capture "projectId" Text :> "datasets" :> Capture "datasetId" Text :> QueryParam "alt" AltJSON :> ReqBody '[JSON] DataSet :> Put '[JSON] DataSet
- Network.Google.Resource.BigQuery.Jobs.Cancel: type JobsCancelResource = "bigquery" :> ("v2" :> ("projects" :> (Capture "projectId" Text :> ("jobs" :> (Capture "jobId" Text :> ("cancel" :> (QueryParam "alt" AltJSON :> Post '[JSON] JobCancelResponse)))))))
+ Network.Google.Resource.BigQuery.Jobs.Cancel: type JobsCancelResource = "bigquery" :> "v2" :> "projects" :> Capture "projectId" Text :> "jobs" :> Capture "jobId" Text :> "cancel" :> QueryParam "location" Text :> QueryParam "alt" AltJSON :> Post '[JSON] JobCancelResponse
- Network.Google.Resource.BigQuery.Jobs.Get: type JobsGetResource = "bigquery" :> ("v2" :> ("projects" :> (Capture "projectId" Text :> ("jobs" :> (Capture "jobId" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Job))))))
+ Network.Google.Resource.BigQuery.Jobs.Get: type JobsGetResource = "bigquery" :> "v2" :> "projects" :> Capture "projectId" Text :> "jobs" :> Capture "jobId" Text :> QueryParam "location" Text :> QueryParam "alt" AltJSON :> Get '[JSON] Job
- Network.Google.Resource.BigQuery.Jobs.GetQueryResults: type JobsGetQueryResultsResource = "bigquery" :> ("v2" :> ("projects" :> (Capture "projectId" Text :> ("queries" :> (Capture "jobId" Text :> (QueryParam "timeoutMs" (Textual Word32) :> (QueryParam "pageToken" Text :> (QueryParam "startIndex" (Textual Word64) :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "alt" AltJSON :> Get '[JSON] GetQueryResultsResponse))))))))))
+ Network.Google.Resource.BigQuery.Jobs.GetQueryResults: type JobsGetQueryResultsResource = "bigquery" :> "v2" :> "projects" :> Capture "projectId" Text :> "queries" :> Capture "jobId" Text :> QueryParam "location" Text :> QueryParam "timeoutMs" (Textual Word32) :> QueryParam "pageToken" Text :> QueryParam "startIndex" (Textual Word64) :> QueryParam "maxResults" (Textual Word32) :> QueryParam "alt" AltJSON :> Get '[JSON] GetQueryResultsResponse
- Network.Google.Resource.BigQuery.Jobs.Insert: type JobsInsertResource = ("bigquery" :> ("v2" :> ("projects" :> (Capture "projectId" Text :> ("jobs" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Job :> Post '[JSON] Job))))))) :<|> ("upload" :> ("bigquery" :> ("v2" :> ("projects" :> (Capture "projectId" Text :> ("jobs" :> (QueryParam "alt" AltJSON :> (QueryParam "uploadType" Multipart :> (MultipartRelated '[JSON] Job :> Post '[JSON] Job)))))))))
+ Network.Google.Resource.BigQuery.Jobs.Insert: type JobsInsertResource = "bigquery" :> "v2" :> "projects" :> Capture "projectId" Text :> "jobs" :> QueryParam "alt" AltJSON :> ReqBody '[JSON] Job :> Post '[JSON] Job :<|> "upload" :> "bigquery" :> "v2" :> "projects" :> Capture "projectId" Text :> "jobs" :> QueryParam "alt" AltJSON :> QueryParam "uploadType" Multipart :> MultipartRelated '[JSON] Job :> Post '[JSON] Job
- Network.Google.Resource.BigQuery.Jobs.List: type JobsListResource = "bigquery" :> ("v2" :> ("projects" :> (Capture "projectId" Text :> ("jobs" :> (QueryParams "stateFilter" JobsListStateFilter :> (QueryParam "projection" JobsListProjection :> (QueryParam "pageToken" Text :> (QueryParam "allUsers" Bool :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "alt" AltJSON :> Get '[JSON] JobList))))))))))
+ Network.Google.Resource.BigQuery.Jobs.List: type JobsListResource = "bigquery" :> "v2" :> "projects" :> Capture "projectId" Text :> "jobs" :> QueryParam "maxCreationTime" (Textual Word64) :> QueryParam "minCreationTime" (Textual Word64) :> QueryParams "stateFilter" JobsListStateFilter :> QueryParam "projection" JobsListProjection :> QueryParam "pageToken" Text :> QueryParam "allUsers" Bool :> QueryParam "maxResults" (Textual Word32) :> QueryParam "alt" AltJSON :> Get '[JSON] JobList
- Network.Google.Resource.BigQuery.Jobs.Query: type JobsQueryResource = "bigquery" :> ("v2" :> ("projects" :> (Capture "projectId" Text :> ("queries" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] QueryRequest :> Post '[JSON] QueryResponse))))))
+ Network.Google.Resource.BigQuery.Jobs.Query: type JobsQueryResource = "bigquery" :> "v2" :> "projects" :> Capture "projectId" Text :> "queries" :> QueryParam "alt" AltJSON :> ReqBody '[JSON] QueryRequest :> Post '[JSON] QueryResponse
- Network.Google.Resource.BigQuery.Projects.List: type ProjectsListResource = "bigquery" :> ("v2" :> ("projects" :> (QueryParam "pageToken" Text :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "alt" AltJSON :> Get '[JSON] ProjectList)))))
+ Network.Google.Resource.BigQuery.Projects.List: type ProjectsListResource = "bigquery" :> "v2" :> "projects" :> QueryParam "pageToken" Text :> QueryParam "maxResults" (Textual Word32) :> QueryParam "alt" AltJSON :> Get '[JSON] ProjectList
- Network.Google.Resource.BigQuery.TableData.InsertAll: type TableDataInsertAllResource = "bigquery" :> ("v2" :> ("projects" :> (Capture "projectId" Text :> ("datasets" :> (Capture "datasetId" Text :> ("tables" :> (Capture "tableId" Text :> ("insertAll" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] TableDataInsertAllRequest :> Post '[JSON] TableDataInsertAllResponse))))))))))
+ Network.Google.Resource.BigQuery.TableData.InsertAll: type TableDataInsertAllResource = "bigquery" :> "v2" :> "projects" :> Capture "projectId" Text :> "datasets" :> Capture "datasetId" Text :> "tables" :> Capture "tableId" Text :> "insertAll" :> QueryParam "alt" AltJSON :> ReqBody '[JSON] TableDataInsertAllRequest :> Post '[JSON] TableDataInsertAllResponse
- Network.Google.Resource.BigQuery.TableData.List: type TableDataListResource = "bigquery" :> ("v2" :> ("projects" :> (Capture "projectId" Text :> ("datasets" :> (Capture "datasetId" Text :> ("tables" :> (Capture "tableId" Text :> ("data" :> (QueryParam "pageToken" Text :> (QueryParam "startIndex" (Textual Word64) :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "alt" AltJSON :> Get '[JSON] TableDataList))))))))))))
+ Network.Google.Resource.BigQuery.TableData.List: type TableDataListResource = "bigquery" :> "v2" :> "projects" :> Capture "projectId" Text :> "datasets" :> Capture "datasetId" Text :> "tables" :> Capture "tableId" Text :> "data" :> QueryParam "pageToken" Text :> QueryParam "selectedFields" Text :> QueryParam "startIndex" (Textual Word64) :> QueryParam "maxResults" (Textual Word32) :> QueryParam "alt" AltJSON :> Get '[JSON] TableDataList
- Network.Google.Resource.BigQuery.Tables.Delete: type TablesDeleteResource = "bigquery" :> ("v2" :> ("projects" :> (Capture "projectId" Text :> ("datasets" :> (Capture "datasetId" Text :> ("tables" :> (Capture "tableId" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] ()))))))))
+ Network.Google.Resource.BigQuery.Tables.Delete: type TablesDeleteResource = "bigquery" :> "v2" :> "projects" :> Capture "projectId" Text :> "datasets" :> Capture "datasetId" Text :> "tables" :> Capture "tableId" Text :> QueryParam "alt" AltJSON :> Delete '[JSON] ()
- Network.Google.Resource.BigQuery.Tables.Get: type TablesGetResource = "bigquery" :> ("v2" :> ("projects" :> (Capture "projectId" Text :> ("datasets" :> (Capture "datasetId" Text :> ("tables" :> (Capture "tableId" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Table))))))))
+ Network.Google.Resource.BigQuery.Tables.Get: type TablesGetResource = "bigquery" :> "v2" :> "projects" :> Capture "projectId" Text :> "datasets" :> Capture "datasetId" Text :> "tables" :> Capture "tableId" Text :> QueryParam "selectedFields" Text :> QueryParam "alt" AltJSON :> Get '[JSON] Table
- Network.Google.Resource.BigQuery.Tables.Insert: type TablesInsertResource = "bigquery" :> ("v2" :> ("projects" :> (Capture "projectId" Text :> ("datasets" :> (Capture "datasetId" Text :> ("tables" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Table :> Post '[JSON] Table))))))))
+ Network.Google.Resource.BigQuery.Tables.Insert: type TablesInsertResource = "bigquery" :> "v2" :> "projects" :> Capture "projectId" Text :> "datasets" :> Capture "datasetId" Text :> "tables" :> QueryParam "alt" AltJSON :> ReqBody '[JSON] Table :> Post '[JSON] Table
- Network.Google.Resource.BigQuery.Tables.List: type TablesListResource = "bigquery" :> ("v2" :> ("projects" :> (Capture "projectId" Text :> ("datasets" :> (Capture "datasetId" Text :> ("tables" :> (QueryParam "pageToken" Text :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "alt" AltJSON :> Get '[JSON] TableList)))))))))
+ Network.Google.Resource.BigQuery.Tables.List: type TablesListResource = "bigquery" :> "v2" :> "projects" :> Capture "projectId" Text :> "datasets" :> Capture "datasetId" Text :> "tables" :> QueryParam "pageToken" Text :> QueryParam "maxResults" (Textual Word32) :> QueryParam "alt" AltJSON :> Get '[JSON] TableList
- Network.Google.Resource.BigQuery.Tables.Patch: type TablesPatchResource = "bigquery" :> ("v2" :> ("projects" :> (Capture "projectId" Text :> ("datasets" :> (Capture "datasetId" Text :> ("tables" :> (Capture "tableId" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Table :> Patch '[JSON] Table)))))))))
+ Network.Google.Resource.BigQuery.Tables.Patch: type TablesPatchResource = "bigquery" :> "v2" :> "projects" :> Capture "projectId" Text :> "datasets" :> Capture "datasetId" Text :> "tables" :> Capture "tableId" Text :> QueryParam "alt" AltJSON :> ReqBody '[JSON] Table :> Patch '[JSON] Table
- Network.Google.Resource.BigQuery.Tables.Update: type TablesUpdateResource = "bigquery" :> ("v2" :> ("projects" :> (Capture "projectId" Text :> ("datasets" :> (Capture "datasetId" Text :> ("tables" :> (Capture "tableId" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Table :> Put '[JSON] Table)))))))))
+ Network.Google.Resource.BigQuery.Tables.Update: type TablesUpdateResource = "bigquery" :> "v2" :> "projects" :> Capture "projectId" Text :> "datasets" :> Capture "datasetId" Text :> "tables" :> Capture "tableId" Text :> QueryParam "alt" AltJSON :> ReqBody '[JSON] Table :> Put '[JSON] Table

Files

gen/Network/Google/BigQuery.hs view
@@ -71,6 +71,9 @@     -- ** bigquery.jobs.query     , module Network.Google.Resource.BigQuery.Jobs.Query +    -- ** bigquery.projects.getServiceAccount+    , module Network.Google.Resource.BigQuery.Projects.GetServiceAccount+     -- ** bigquery.projects.list     , module Network.Google.Resource.BigQuery.Projects.List @@ -104,6 +107,7 @@     , JobReference     , jobReference     , jrJobId+    , jrLocation     , jrProjectId      -- ** TableList@@ -118,6 +122,7 @@     -- ** DataSetListDataSetsItem     , DataSetListDataSetsItem     , dataSetListDataSetsItem+    , dsldsiLocation     , dsldsiFriendlyName     , dsldsiKind     , dsldsiDataSetReference@@ -141,16 +146,22 @@     , jctcSourceTables     , jctcCreateDisPosition     , jctcSourceTable+    , jctcDestinationEncryptionConfiguration      -- ** TableListTablesItem     , TableListTablesItem     , tableListTablesItem+    , tltiCreationTime+    , tltiClustering     , tltiTableReference     , tltiFriendlyName     , tltiKind+    , tltiTimePartitioning+    , tltiView     , tltiId     , tltiLabels     , tltiType+    , tltiExpirationTime      -- ** TableSchema     , TableSchema@@ -172,6 +183,15 @@     , eqsSubsteps     , eqsKind +    -- ** QueryTimelineSample+    , QueryTimelineSample+    , queryTimelineSample+    , qtsPendingUnits+    , qtsTotalSlotMs+    , qtsActiveUnits+    , qtsElapsedMs+    , qtsCompletedUnits+     -- ** QueryParameterTypeStructTypesItem     , QueryParameterTypeStructTypesItem     , queryParameterTypeStructTypesItem@@ -193,11 +213,15 @@     , jobStatistics     , jsCreationTime     , jsStartTime+    , jsCompletionRatio+    , jsTotalSlotMs     , jsLoad     , jsTotalBytesProcessed+    , jsQuotaDeferments     , jsEndTime     , jsQuery     , jsExtract+    , jsReservationUsage      -- ** JobConfigurationLabels     , JobConfigurationLabels@@ -208,6 +232,7 @@     , DataSet     , dataSet     , dsCreationTime+    , dsDefaultPartitionExpirationMs     , dsAccess     , dsEtag     , dsLocation@@ -221,6 +246,19 @@     , dsDefaultTableExpirationMs     , dsDescription +    -- ** RangePartitioningRange+    , RangePartitioningRange+    , rangePartitioningRange+    , rprStart+    , rprInterval+    , rprEnd++    -- ** JobStatisticsReservationUsageItem+    , JobStatisticsReservationUsageItem+    , jobStatisticsReservationUsageItem+    , jsruiName+    , jsruiSlotMs+     -- ** BigtableOptions     , BigtableOptions     , bigtableOptions@@ -228,6 +266,11 @@     , boIgnoreUnspecifiedColumnFamilies     , boColumnFamilies +    -- ** Clustering+    , Clustering+    , clustering+    , cFields+     -- ** ExternalDataConfiguration     , ExternalDataConfiguration     , externalDataConfiguration@@ -249,6 +292,19 @@     , trProjectId     , trTableId +    -- ** ModelDefinitionModelOptions+    , ModelDefinitionModelOptions+    , modelDefinitionModelOptions+    , mdmoModelType+    , mdmoLabels+    , mdmoLossType++    -- ** RangePartitioning+    , RangePartitioning+    , rangePartitioning+    , rpField+    , rpRange+     -- ** TableFieldSchema     , TableFieldSchema     , tableFieldSchema@@ -285,6 +341,7 @@     -- ** QueryRequest     , QueryRequest     , queryRequest+    , qrLocation     , qrUseQueryCache     , qrPreserveNulls     , qrKind@@ -307,6 +364,15 @@     , qpParameterType     , qpName +    -- ** IterationResult+    , IterationResult+    , iterationResult+    , irDurationMs+    , irLearnRate+    , irEvalLoss+    , irTrainingLoss+    , irIndex+     -- ** JobStatistics4     , JobStatistics4     , jobStatistics4@@ -320,21 +386,55 @@     -- ** ExplainQueryStage     , ExplainQueryStage     , explainQueryStage+    , eqsReadMsAvg     , eqsStatus+    , eqsShuffleOutputBytesSpilled+    , eqsReadMsMax+    , eqsCompletedParallelInputs     , eqsWaitRatioMax+    , eqsParallelInputs+    , eqsShuffleOutputBytes     , eqsRecordsWritten     , eqsSteps+    , eqsInputStages     , eqsWriteRatioAvg     , eqsRecordsRead     , eqsComputeRatioAvg     , eqsName+    , eqsComputeMsMax     , eqsReadRatioMax+    , eqsWriteMsMax     , eqsWaitRatioAvg+    , eqsWaitMsAvg     , eqsId     , eqsComputeRatioMax     , eqsWriteRatioMax+    , eqsComputeMsAvg     , eqsReadRatioAvg+    , eqsWriteMsAvg+    , eqsStartMs+    , eqsEndMs+    , eqsWaitMsMax +    -- ** TrainingRunTrainingOptions+    , TrainingRunTrainingOptions+    , trainingRunTrainingOptions+    , trtoLineSearchInitLearnRate+    , trtoMinRelProgress+    , trtoL1Reg+    , trtoLearnRate+    , trtoLearnRateStrategy+    , trtoMaxIteration+    , trtoEarlyStop+    , trtoL2Reg+    , trtoWarmStart++    -- ** BigQueryModelTraining+    , BigQueryModelTraining+    , bigQueryModelTraining+    , bqmtExpectedTotalIterations+    , bqmtCurrentIteration+     -- ** JobConfigurationLoad     , JobConfigurationLoad     , jobConfigurationLoad@@ -343,6 +443,8 @@     , jclDestinationTable     , jclWriteDisPosition     , jclAllowJaggedRows+    , jclClustering+    , jclRangePartitioning     , jclSchemaInline     , jclIgnoreUnknownValues     , jclSchemaUpdateOptions@@ -350,12 +452,16 @@     , jclSchemaInlineFormat     , jclAllowQuotedNewlines     , jclSourceFormat+    , jclUseAvroLogicalTypes     , jclSchema+    , jclTimePartitioning     , jclQuote     , jclMaxBadRecords     , jclAutodetect     , jclSourceURIs     , jclEncoding+    , jclDestinationTableProperties+    , jclDestinationEncryptionConfiguration     , jclFieldDelimiter     , jclNullMarker @@ -368,6 +474,12 @@     , dsrDataSetId     , dsrProjectId +    -- ** MaterializedViewDefinition+    , MaterializedViewDefinition+    , materializedViewDefinition+    , mvdQuery+    , mvdLastRefreshTime+     -- ** TableDataInsertAllRequest     , TableDataInsertAllRequest     , tableDataInsertAllRequest@@ -377,6 +489,12 @@     , tdiarTemplateSuffix     , tdiarSkipInvalidRows +    -- ** GetServiceAccountResponse+    , GetServiceAccountResponse+    , getServiceAccountResponse+    , gsarEmail+    , gsarKind+     -- ** ProjectListProjectsItem     , ProjectListProjectsItem     , projectListProjectsItem@@ -424,7 +542,9 @@     -- ** TimePartitioning     , TimePartitioning     , timePartitioning+    , tpField     , tpExpirationMs+    , tpRequirePartitionFilter     , tpType      -- ** QueryParameterValueStructValues@@ -440,9 +560,11 @@     -- ** JobConfiguration     , JobConfiguration     , jobConfiguration+    , jcJobType     , jcCopy     , jcLoad     , jcQuery+    , jcJobTimeoutMs     , jcExtract     , jcLabels     , jcDryRun@@ -460,6 +582,11 @@     , jStatistics     , jConfiguration +    -- ** EncryptionConfiguration+    , EncryptionConfiguration+    , encryptionConfiguration+    , ecKmsKeyName+     -- ** TableDataInsertAllResponseInsertErrorsItem     , TableDataInsertAllResponseInsertErrorsItem     , tableDataInsertAllResponseInsertErrorsItem@@ -477,6 +604,12 @@     , jceDestinationURI     , jceFieldDelimiter +    -- ** ModelDefinition+    , ModelDefinition+    , modelDefinition+    , mdModelOptions+    , mdTrainingRuns+     -- ** JobCancelResponse     , JobCancelResponse     , jobCancelResponse@@ -494,6 +627,8 @@     , jcqDestinationTable     , jcqWriteDisPosition     , jcqPriority+    , jcqClustering+    , jcqRangePartitioning     , jcqUseQueryCache     , jcqPreserveNulls     , jcqTableDefinitions@@ -504,16 +639,19 @@     , jcqUserDefinedFunctionResources     , jcqAllowLargeResults     , jcqMaximumBillingTier+    , jcqTimePartitioning     , jcqQuery     , jcqFlattenResults     , jcqParameterMode     , jcqUseLegacySQL+    , jcqDestinationEncryptionConfiguration     , jcqDefaultDataSet      -- ** GoogleSheetsOptions     , GoogleSheetsOptions     , googleSheetsOptions     , gsoSkipLeadingRows+    , gsoRange      -- ** TableDataInsertAllRequestRowsItem     , TableDataInsertAllRequestRowsItem@@ -539,6 +677,12 @@     , tableCell     , tcV +    -- ** JobStatistics2ReservationUsageItem+    , JobStatistics2ReservationUsageItem+    , jobStatistics2ReservationUsageItem+    , jName+    , jSlotMs+     -- ** QueryParameterValue     , QueryParameterValue     , queryParameterValue@@ -562,16 +706,27 @@     -- ** JobStatistics2     , JobStatistics2     , jobStatistics2+    , jModelTrainingExpectedTotalIteration+    , jModelTraining+    , jTotalSlotMs+    , jDdlTargetTable+    , jEstimatedBytesProcessed+    , jModelTrainingCurrentIteration     , jSchema     , jTotalBytesProcessed     , jBillingTier+    , jTotalBytesProcessedAccuracy     , jUndeclaredQueryParameters     , jReferencedTables     , jStatementType+    , jReservationUsage     , jNumDmlAffectedRows+    , jTimeline     , jQueryPlan     , jCacheHit     , jTotalBytesBilled+    , jDdlOperationPerformed+    , jTotalPartitionsProcessed      -- ** JobStatus     , JobStatus@@ -585,6 +740,12 @@     , tableLabels     , tlAddtional +    -- ** DestinationTableProperties+    , DestinationTableProperties+    , destinationTableProperties+    , dtpFriendlyName+    , dtpDescription+     -- ** DataSetAccessItem     , DataSetAccessItem     , dataSetAccessItem@@ -592,6 +753,7 @@     , dsaiDomain     , dsaiSpecialGroup     , dsaiRole+    , dsaiIAMMember     , dsaiView     , dsaiUserByEmail @@ -611,10 +773,13 @@     -- ** Table     , Table     , table+    , tabMaterializedView     , tabCreationTime     , tabEtag     , tabNumBytes+    , tabClustering     , tabExternalDataConfiguration+    , tabRangePartitioning     , tabLocation     , tabTableReference     , tabFriendlyName@@ -623,8 +788,12 @@     , tabSchema     , tabStreamingBuffer     , tabSelfLink+    , tabRequirePartitionFilter+    , tabEncryptionConfiguration+    , tabModel     , tabTimePartitioning     , tabNumRows+    , tabNumPhysicalBytes     , tabView     , tabId     , tabLabels@@ -658,6 +827,7 @@     , jsOutputRows     , jsOutputBytes     , jsInputFileBytes+    , jsBadRecords      -- ** QueryResponse     , QueryResponse@@ -679,6 +849,19 @@     , dataSetListDataSetsItemLabels     , dsldsilAddtional +    -- ** TrainingRun+    , TrainingRun+    , trainingRun+    , trState+    , trStartTime+    , trIterationResults+    , trTrainingOptions++    -- ** TableListTablesItemView+    , TableListTablesItemView+    , tableListTablesItemView+    , tltivUseLegacySQL+     -- ** TableListTablesItemLabels     , TableListTablesItemLabels     , tableListTablesItemLabels@@ -699,6 +882,7 @@ import           Network.Google.Resource.BigQuery.Jobs.Insert import           Network.Google.Resource.BigQuery.Jobs.List import           Network.Google.Resource.BigQuery.Jobs.Query+import           Network.Google.Resource.BigQuery.Projects.GetServiceAccount import           Network.Google.Resource.BigQuery.Projects.List import           Network.Google.Resource.BigQuery.TableData.InsertAll import           Network.Google.Resource.BigQuery.TableData.List@@ -728,6 +912,7 @@        :<|> TablesUpdateResource        :<|> TableDataListResource        :<|> TableDataInsertAllResource+       :<|> ProjectsGetServiceAccountResource        :<|> ProjectsListResource        :<|> DataSetsInsertResource        :<|> DataSetsListResource
gen/Network/Google/BigQuery/Types.hs view
@@ -32,6 +32,7 @@     , JobReference     , jobReference     , jrJobId+    , jrLocation     , jrProjectId      -- * TableList@@ -46,6 +47,7 @@     -- * DataSetListDataSetsItem     , DataSetListDataSetsItem     , dataSetListDataSetsItem+    , dsldsiLocation     , dsldsiFriendlyName     , dsldsiKind     , dsldsiDataSetReference@@ -69,16 +71,22 @@     , jctcSourceTables     , jctcCreateDisPosition     , jctcSourceTable+    , jctcDestinationEncryptionConfiguration      -- * TableListTablesItem     , TableListTablesItem     , tableListTablesItem+    , tltiCreationTime+    , tltiClustering     , tltiTableReference     , tltiFriendlyName     , tltiKind+    , tltiTimePartitioning+    , tltiView     , tltiId     , tltiLabels     , tltiType+    , tltiExpirationTime      -- * TableSchema     , TableSchema@@ -100,6 +108,15 @@     , eqsSubsteps     , eqsKind +    -- * QueryTimelineSample+    , QueryTimelineSample+    , queryTimelineSample+    , qtsPendingUnits+    , qtsTotalSlotMs+    , qtsActiveUnits+    , qtsElapsedMs+    , qtsCompletedUnits+     -- * QueryParameterTypeStructTypesItem     , QueryParameterTypeStructTypesItem     , queryParameterTypeStructTypesItem@@ -121,11 +138,15 @@     , jobStatistics     , jsCreationTime     , jsStartTime+    , jsCompletionRatio+    , jsTotalSlotMs     , jsLoad     , jsTotalBytesProcessed+    , jsQuotaDeferments     , jsEndTime     , jsQuery     , jsExtract+    , jsReservationUsage      -- * JobConfigurationLabels     , JobConfigurationLabels@@ -136,6 +157,7 @@     , DataSet     , dataSet     , dsCreationTime+    , dsDefaultPartitionExpirationMs     , dsAccess     , dsEtag     , dsLocation@@ -149,6 +171,19 @@     , dsDefaultTableExpirationMs     , dsDescription +    -- * RangePartitioningRange+    , RangePartitioningRange+    , rangePartitioningRange+    , rprStart+    , rprInterval+    , rprEnd++    -- * JobStatisticsReservationUsageItem+    , JobStatisticsReservationUsageItem+    , jobStatisticsReservationUsageItem+    , jsruiName+    , jsruiSlotMs+     -- * BigtableOptions     , BigtableOptions     , bigtableOptions@@ -156,6 +191,11 @@     , boIgnoreUnspecifiedColumnFamilies     , boColumnFamilies +    -- * Clustering+    , Clustering+    , clustering+    , cFields+     -- * ExternalDataConfiguration     , ExternalDataConfiguration     , externalDataConfiguration@@ -177,6 +217,19 @@     , trProjectId     , trTableId +    -- * ModelDefinitionModelOptions+    , ModelDefinitionModelOptions+    , modelDefinitionModelOptions+    , mdmoModelType+    , mdmoLabels+    , mdmoLossType++    -- * RangePartitioning+    , RangePartitioning+    , rangePartitioning+    , rpField+    , rpRange+     -- * TableFieldSchema     , TableFieldSchema     , tableFieldSchema@@ -213,6 +266,7 @@     -- * QueryRequest     , QueryRequest     , queryRequest+    , qrLocation     , qrUseQueryCache     , qrPreserveNulls     , qrKind@@ -235,6 +289,15 @@     , qpParameterType     , qpName +    -- * IterationResult+    , IterationResult+    , iterationResult+    , irDurationMs+    , irLearnRate+    , irEvalLoss+    , irTrainingLoss+    , irIndex+     -- * JobStatistics4     , JobStatistics4     , jobStatistics4@@ -248,21 +311,55 @@     -- * ExplainQueryStage     , ExplainQueryStage     , explainQueryStage+    , eqsReadMsAvg     , eqsStatus+    , eqsShuffleOutputBytesSpilled+    , eqsReadMsMax+    , eqsCompletedParallelInputs     , eqsWaitRatioMax+    , eqsParallelInputs+    , eqsShuffleOutputBytes     , eqsRecordsWritten     , eqsSteps+    , eqsInputStages     , eqsWriteRatioAvg     , eqsRecordsRead     , eqsComputeRatioAvg     , eqsName+    , eqsComputeMsMax     , eqsReadRatioMax+    , eqsWriteMsMax     , eqsWaitRatioAvg+    , eqsWaitMsAvg     , eqsId     , eqsComputeRatioMax     , eqsWriteRatioMax+    , eqsComputeMsAvg     , eqsReadRatioAvg+    , eqsWriteMsAvg+    , eqsStartMs+    , eqsEndMs+    , eqsWaitMsMax +    -- * TrainingRunTrainingOptions+    , TrainingRunTrainingOptions+    , trainingRunTrainingOptions+    , trtoLineSearchInitLearnRate+    , trtoMinRelProgress+    , trtoL1Reg+    , trtoLearnRate+    , trtoLearnRateStrategy+    , trtoMaxIteration+    , trtoEarlyStop+    , trtoL2Reg+    , trtoWarmStart++    -- * BigQueryModelTraining+    , BigQueryModelTraining+    , bigQueryModelTraining+    , bqmtExpectedTotalIterations+    , bqmtCurrentIteration+     -- * JobConfigurationLoad     , JobConfigurationLoad     , jobConfigurationLoad@@ -271,6 +368,8 @@     , jclDestinationTable     , jclWriteDisPosition     , jclAllowJaggedRows+    , jclClustering+    , jclRangePartitioning     , jclSchemaInline     , jclIgnoreUnknownValues     , jclSchemaUpdateOptions@@ -278,12 +377,16 @@     , jclSchemaInlineFormat     , jclAllowQuotedNewlines     , jclSourceFormat+    , jclUseAvroLogicalTypes     , jclSchema+    , jclTimePartitioning     , jclQuote     , jclMaxBadRecords     , jclAutodetect     , jclSourceURIs     , jclEncoding+    , jclDestinationTableProperties+    , jclDestinationEncryptionConfiguration     , jclFieldDelimiter     , jclNullMarker @@ -296,6 +399,12 @@     , dsrDataSetId     , dsrProjectId +    -- * MaterializedViewDefinition+    , MaterializedViewDefinition+    , materializedViewDefinition+    , mvdQuery+    , mvdLastRefreshTime+     -- * TableDataInsertAllRequest     , TableDataInsertAllRequest     , tableDataInsertAllRequest@@ -305,6 +414,12 @@     , tdiarTemplateSuffix     , tdiarSkipInvalidRows +    -- * GetServiceAccountResponse+    , GetServiceAccountResponse+    , getServiceAccountResponse+    , gsarEmail+    , gsarKind+     -- * ProjectListProjectsItem     , ProjectListProjectsItem     , projectListProjectsItem@@ -352,7 +467,9 @@     -- * TimePartitioning     , TimePartitioning     , timePartitioning+    , tpField     , tpExpirationMs+    , tpRequirePartitionFilter     , tpType      -- * QueryParameterValueStructValues@@ -368,9 +485,11 @@     -- * JobConfiguration     , JobConfiguration     , jobConfiguration+    , jcJobType     , jcCopy     , jcLoad     , jcQuery+    , jcJobTimeoutMs     , jcExtract     , jcLabels     , jcDryRun@@ -388,6 +507,11 @@     , jStatistics     , jConfiguration +    -- * EncryptionConfiguration+    , EncryptionConfiguration+    , encryptionConfiguration+    , ecKmsKeyName+     -- * TableDataInsertAllResponseInsertErrorsItem     , TableDataInsertAllResponseInsertErrorsItem     , tableDataInsertAllResponseInsertErrorsItem@@ -405,6 +529,12 @@     , jceDestinationURI     , jceFieldDelimiter +    -- * ModelDefinition+    , ModelDefinition+    , modelDefinition+    , mdModelOptions+    , mdTrainingRuns+     -- * JobCancelResponse     , JobCancelResponse     , jobCancelResponse@@ -422,6 +552,8 @@     , jcqDestinationTable     , jcqWriteDisPosition     , jcqPriority+    , jcqClustering+    , jcqRangePartitioning     , jcqUseQueryCache     , jcqPreserveNulls     , jcqTableDefinitions@@ -432,16 +564,19 @@     , jcqUserDefinedFunctionResources     , jcqAllowLargeResults     , jcqMaximumBillingTier+    , jcqTimePartitioning     , jcqQuery     , jcqFlattenResults     , jcqParameterMode     , jcqUseLegacySQL+    , jcqDestinationEncryptionConfiguration     , jcqDefaultDataSet      -- * GoogleSheetsOptions     , GoogleSheetsOptions     , googleSheetsOptions     , gsoSkipLeadingRows+    , gsoRange      -- * TableDataInsertAllRequestRowsItem     , TableDataInsertAllRequestRowsItem@@ -467,6 +602,12 @@     , tableCell     , tcV +    -- * JobStatistics2ReservationUsageItem+    , JobStatistics2ReservationUsageItem+    , jobStatistics2ReservationUsageItem+    , jName+    , jSlotMs+     -- * QueryParameterValue     , QueryParameterValue     , queryParameterValue@@ -490,16 +631,27 @@     -- * JobStatistics2     , JobStatistics2     , jobStatistics2+    , jModelTrainingExpectedTotalIteration+    , jModelTraining+    , jTotalSlotMs+    , jDdlTargetTable+    , jEstimatedBytesProcessed+    , jModelTrainingCurrentIteration     , jSchema     , jTotalBytesProcessed     , jBillingTier+    , jTotalBytesProcessedAccuracy     , jUndeclaredQueryParameters     , jReferencedTables     , jStatementType+    , jReservationUsage     , jNumDmlAffectedRows+    , jTimeline     , jQueryPlan     , jCacheHit     , jTotalBytesBilled+    , jDdlOperationPerformed+    , jTotalPartitionsProcessed      -- * JobStatus     , JobStatus@@ -513,6 +665,12 @@     , tableLabels     , tlAddtional +    -- * DestinationTableProperties+    , DestinationTableProperties+    , destinationTableProperties+    , dtpFriendlyName+    , dtpDescription+     -- * DataSetAccessItem     , DataSetAccessItem     , dataSetAccessItem@@ -520,6 +678,7 @@     , dsaiDomain     , dsaiSpecialGroup     , dsaiRole+    , dsaiIAMMember     , dsaiView     , dsaiUserByEmail @@ -539,10 +698,13 @@     -- * Table     , Table     , table+    , tabMaterializedView     , tabCreationTime     , tabEtag     , tabNumBytes+    , tabClustering     , tabExternalDataConfiguration+    , tabRangePartitioning     , tabLocation     , tabTableReference     , tabFriendlyName@@ -551,8 +713,12 @@     , tabSchema     , tabStreamingBuffer     , tabSelfLink+    , tabRequirePartitionFilter+    , tabEncryptionConfiguration+    , tabModel     , tabTimePartitioning     , tabNumRows+    , tabNumPhysicalBytes     , tabView     , tabId     , tabLabels@@ -586,6 +752,7 @@     , jsOutputRows     , jsOutputBytes     , jsInputFileBytes+    , jsBadRecords      -- * QueryResponse     , QueryResponse@@ -606,6 +773,19 @@     , DataSetListDataSetsItemLabels     , dataSetListDataSetsItemLabels     , dsldsilAddtional++    -- * TrainingRun+    , TrainingRun+    , trainingRun+    , trState+    , trStartTime+    , trIterationResults+    , trTrainingOptions++    -- * TableListTablesItemView+    , TableListTablesItemView+    , tableListTablesItemView+    , tltivUseLegacySQL      -- * TableListTablesItemLabels     , TableListTablesItemLabels
gen/Network/Google/BigQuery/Types/Product.hs view
@@ -24,5767 +24,7710 @@ -- /See:/ 'jobReference' smart constructor. data JobReference = JobReference'     { _jrJobId     :: !(Maybe Text)-    , _jrProjectId :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'JobReference' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'jrJobId'------ * 'jrProjectId'-jobReference-    :: JobReference-jobReference =-    JobReference'-    { _jrJobId = Nothing-    , _jrProjectId = Nothing-    }---- | [Required] The ID of the job. The ID must contain only letters (a-z,--- A-Z), numbers (0-9), underscores (_), or dashes (-). The maximum length--- is 1,024 characters.-jrJobId :: Lens' JobReference (Maybe Text)-jrJobId = lens _jrJobId (\ s a -> s{_jrJobId = a})---- | [Required] The ID of the project containing this job.-jrProjectId :: Lens' JobReference (Maybe Text)-jrProjectId-  = lens _jrProjectId (\ s a -> s{_jrProjectId = a})--instance FromJSON JobReference where-        parseJSON-          = withObject "JobReference"-              (\ o ->-                 JobReference' <$>-                   (o .:? "jobId") <*> (o .:? "projectId"))--instance ToJSON JobReference where-        toJSON JobReference'{..}-          = object-              (catMaybes-                 [("jobId" .=) <$> _jrJobId,-                  ("projectId" .=) <$> _jrProjectId])------- /See:/ 'tableList' smart constructor.-data TableList = TableList'-    { _tlTotalItems    :: !(Maybe (Textual Int32))-    , _tlEtag          :: !(Maybe Text)-    , _tlNextPageToken :: !(Maybe Text)-    , _tlKind          :: !Text-    , _tlTables        :: !(Maybe [TableListTablesItem])-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'TableList' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'tlTotalItems'------ * 'tlEtag'------ * 'tlNextPageToken'------ * 'tlKind'------ * 'tlTables'-tableList-    :: TableList-tableList =-    TableList'-    { _tlTotalItems = Nothing-    , _tlEtag = Nothing-    , _tlNextPageToken = Nothing-    , _tlKind = "bigquery#tableList"-    , _tlTables = Nothing-    }---- | The total number of tables in the dataset.-tlTotalItems :: Lens' TableList (Maybe Int32)-tlTotalItems-  = lens _tlTotalItems (\ s a -> s{_tlTotalItems = a})-      . mapping _Coerce---- | A hash of this page of results.-tlEtag :: Lens' TableList (Maybe Text)-tlEtag = lens _tlEtag (\ s a -> s{_tlEtag = a})---- | A token to request the next page of results.-tlNextPageToken :: Lens' TableList (Maybe Text)-tlNextPageToken-  = lens _tlNextPageToken-      (\ s a -> s{_tlNextPageToken = a})---- | The type of list.-tlKind :: Lens' TableList Text-tlKind = lens _tlKind (\ s a -> s{_tlKind = a})---- | Tables in the requested dataset.-tlTables :: Lens' TableList [TableListTablesItem]-tlTables-  = lens _tlTables (\ s a -> s{_tlTables = a}) .-      _Default-      . _Coerce--instance FromJSON TableList where-        parseJSON-          = withObject "TableList"-              (\ o ->-                 TableList' <$>-                   (o .:? "totalItems") <*> (o .:? "etag") <*>-                     (o .:? "nextPageToken")-                     <*> (o .:? "kind" .!= "bigquery#tableList")-                     <*> (o .:? "tables" .!= mempty))--instance ToJSON TableList where-        toJSON TableList'{..}-          = object-              (catMaybes-                 [("totalItems" .=) <$> _tlTotalItems,-                  ("etag" .=) <$> _tlEtag,-                  ("nextPageToken" .=) <$> _tlNextPageToken,-                  Just ("kind" .= _tlKind),-                  ("tables" .=) <$> _tlTables])------- /See:/ 'dataSetListDataSetsItem' smart constructor.-data DataSetListDataSetsItem = DataSetListDataSetsItem'-    { _dsldsiFriendlyName     :: !(Maybe Text)-    , _dsldsiKind             :: !Text-    , _dsldsiDataSetReference :: !(Maybe DataSetReference)-    , _dsldsiId               :: !(Maybe Text)-    , _dsldsiLabels           :: !(Maybe DataSetListDataSetsItemLabels)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'DataSetListDataSetsItem' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'dsldsiFriendlyName'------ * 'dsldsiKind'------ * 'dsldsiDataSetReference'------ * 'dsldsiId'------ * 'dsldsiLabels'-dataSetListDataSetsItem-    :: DataSetListDataSetsItem-dataSetListDataSetsItem =-    DataSetListDataSetsItem'-    { _dsldsiFriendlyName = Nothing-    , _dsldsiKind = "bigquery#dataset"-    , _dsldsiDataSetReference = Nothing-    , _dsldsiId = Nothing-    , _dsldsiLabels = Nothing-    }---- | A descriptive name for the dataset, if one exists.-dsldsiFriendlyName :: Lens' DataSetListDataSetsItem (Maybe Text)-dsldsiFriendlyName-  = lens _dsldsiFriendlyName-      (\ s a -> s{_dsldsiFriendlyName = a})---- | The resource type. This property always returns the value--- \"bigquery#dataset\".-dsldsiKind :: Lens' DataSetListDataSetsItem Text-dsldsiKind-  = lens _dsldsiKind (\ s a -> s{_dsldsiKind = a})---- | The dataset reference. Use this property to access specific parts of the--- dataset\'s ID, such as project ID or dataset ID.-dsldsiDataSetReference :: Lens' DataSetListDataSetsItem (Maybe DataSetReference)-dsldsiDataSetReference-  = lens _dsldsiDataSetReference-      (\ s a -> s{_dsldsiDataSetReference = a})---- | The fully-qualified, unique, opaque ID of the dataset.-dsldsiId :: Lens' DataSetListDataSetsItem (Maybe Text)-dsldsiId = lens _dsldsiId (\ s a -> s{_dsldsiId = a})---- | [Experimental] The labels associated with this dataset. You can use--- these to organize and group your datasets.-dsldsiLabels :: Lens' DataSetListDataSetsItem (Maybe DataSetListDataSetsItemLabels)-dsldsiLabels-  = lens _dsldsiLabels (\ s a -> s{_dsldsiLabels = a})--instance FromJSON DataSetListDataSetsItem where-        parseJSON-          = withObject "DataSetListDataSetsItem"-              (\ o ->-                 DataSetListDataSetsItem' <$>-                   (o .:? "friendlyName") <*>-                     (o .:? "kind" .!= "bigquery#dataset")-                     <*> (o .:? "datasetReference")-                     <*> (o .:? "id")-                     <*> (o .:? "labels"))--instance ToJSON DataSetListDataSetsItem where-        toJSON DataSetListDataSetsItem'{..}-          = object-              (catMaybes-                 [("friendlyName" .=) <$> _dsldsiFriendlyName,-                  Just ("kind" .= _dsldsiKind),-                  ("datasetReference" .=) <$> _dsldsiDataSetReference,-                  ("id" .=) <$> _dsldsiId,-                  ("labels" .=) <$> _dsldsiLabels])------- /See:/ 'tableDataList' smart constructor.-data TableDataList = TableDataList'-    { _tdlEtag      :: !(Maybe Text)-    , _tdlKind      :: !Text-    , _tdlRows      :: !(Maybe [TableRow])-    , _tdlPageToken :: !(Maybe Text)-    , _tdlTotalRows :: !(Maybe (Textual Int64))-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'TableDataList' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'tdlEtag'------ * 'tdlKind'------ * 'tdlRows'------ * 'tdlPageToken'------ * 'tdlTotalRows'-tableDataList-    :: TableDataList-tableDataList =-    TableDataList'-    { _tdlEtag = Nothing-    , _tdlKind = "bigquery#tableDataList"-    , _tdlRows = Nothing-    , _tdlPageToken = Nothing-    , _tdlTotalRows = Nothing-    }---- | A hash of this page of results.-tdlEtag :: Lens' TableDataList (Maybe Text)-tdlEtag = lens _tdlEtag (\ s a -> s{_tdlEtag = a})---- | The resource type of the response.-tdlKind :: Lens' TableDataList Text-tdlKind = lens _tdlKind (\ s a -> s{_tdlKind = a})---- | Rows of results.-tdlRows :: Lens' TableDataList [TableRow]-tdlRows-  = lens _tdlRows (\ s a -> s{_tdlRows = a}) . _Default-      . _Coerce---- | A token used for paging results. Providing this token instead of the--- startIndex parameter can help you retrieve stable results when an--- underlying table is changing.-tdlPageToken :: Lens' TableDataList (Maybe Text)-tdlPageToken-  = lens _tdlPageToken (\ s a -> s{_tdlPageToken = a})---- | The total number of rows in the complete table.-tdlTotalRows :: Lens' TableDataList (Maybe Int64)-tdlTotalRows-  = lens _tdlTotalRows (\ s a -> s{_tdlTotalRows = a})-      . mapping _Coerce--instance FromJSON TableDataList where-        parseJSON-          = withObject "TableDataList"-              (\ o ->-                 TableDataList' <$>-                   (o .:? "etag") <*>-                     (o .:? "kind" .!= "bigquery#tableDataList")-                     <*> (o .:? "rows" .!= mempty)-                     <*> (o .:? "pageToken")-                     <*> (o .:? "totalRows"))--instance ToJSON TableDataList where-        toJSON TableDataList'{..}-          = object-              (catMaybes-                 [("etag" .=) <$> _tdlEtag, Just ("kind" .= _tdlKind),-                  ("rows" .=) <$> _tdlRows,-                  ("pageToken" .=) <$> _tdlPageToken,-                  ("totalRows" .=) <$> _tdlTotalRows])------- /See:/ 'jobConfigurationTableCopy' smart constructor.-data JobConfigurationTableCopy = JobConfigurationTableCopy'-    { _jctcDestinationTable  :: !(Maybe TableReference)-    , _jctcWriteDisPosition  :: !(Maybe Text)-    , _jctcSourceTables      :: !(Maybe [TableReference])-    , _jctcCreateDisPosition :: !(Maybe Text)-    , _jctcSourceTable       :: !(Maybe TableReference)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'JobConfigurationTableCopy' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'jctcDestinationTable'------ * 'jctcWriteDisPosition'------ * 'jctcSourceTables'------ * 'jctcCreateDisPosition'------ * 'jctcSourceTable'-jobConfigurationTableCopy-    :: JobConfigurationTableCopy-jobConfigurationTableCopy =-    JobConfigurationTableCopy'-    { _jctcDestinationTable = Nothing-    , _jctcWriteDisPosition = Nothing-    , _jctcSourceTables = Nothing-    , _jctcCreateDisPosition = Nothing-    , _jctcSourceTable = Nothing-    }---- | [Required] The destination table-jctcDestinationTable :: Lens' JobConfigurationTableCopy (Maybe TableReference)-jctcDestinationTable-  = lens _jctcDestinationTable-      (\ s a -> s{_jctcDestinationTable = a})---- | [Optional] Specifies the action that occurs if the destination table--- already exists. The following values are supported: WRITE_TRUNCATE: If--- the table already exists, BigQuery overwrites the table data.--- WRITE_APPEND: If the table already exists, BigQuery appends the data to--- the table. WRITE_EMPTY: If the table already exists and contains data, a--- \'duplicate\' error is returned in the job result. The default value is--- WRITE_EMPTY. Each action is atomic and only occurs if BigQuery is able--- to complete the job successfully. Creation, truncation and append--- actions occur as one atomic update upon job completion.-jctcWriteDisPosition :: Lens' JobConfigurationTableCopy (Maybe Text)-jctcWriteDisPosition-  = lens _jctcWriteDisPosition-      (\ s a -> s{_jctcWriteDisPosition = a})---- | [Pick one] Source tables to copy.-jctcSourceTables :: Lens' JobConfigurationTableCopy [TableReference]-jctcSourceTables-  = lens _jctcSourceTables-      (\ s a -> s{_jctcSourceTables = a})-      . _Default-      . _Coerce---- | [Optional] Specifies whether the job is allowed to create new tables.--- The following values are supported: CREATE_IF_NEEDED: If the table does--- not exist, BigQuery creates the table. CREATE_NEVER: The table must--- already exist. If it does not, a \'notFound\' error is returned in the--- job result. The default value is CREATE_IF_NEEDED. Creation, truncation--- and append actions occur as one atomic update upon job completion.-jctcCreateDisPosition :: Lens' JobConfigurationTableCopy (Maybe Text)-jctcCreateDisPosition-  = lens _jctcCreateDisPosition-      (\ s a -> s{_jctcCreateDisPosition = a})---- | [Pick one] Source table to copy.-jctcSourceTable :: Lens' JobConfigurationTableCopy (Maybe TableReference)-jctcSourceTable-  = lens _jctcSourceTable-      (\ s a -> s{_jctcSourceTable = a})--instance FromJSON JobConfigurationTableCopy where-        parseJSON-          = withObject "JobConfigurationTableCopy"-              (\ o ->-                 JobConfigurationTableCopy' <$>-                   (o .:? "destinationTable") <*>-                     (o .:? "writeDisposition")-                     <*> (o .:? "sourceTables" .!= mempty)-                     <*> (o .:? "createDisposition")-                     <*> (o .:? "sourceTable"))--instance ToJSON JobConfigurationTableCopy where-        toJSON JobConfigurationTableCopy'{..}-          = object-              (catMaybes-                 [("destinationTable" .=) <$> _jctcDestinationTable,-                  ("writeDisposition" .=) <$> _jctcWriteDisPosition,-                  ("sourceTables" .=) <$> _jctcSourceTables,-                  ("createDisposition" .=) <$> _jctcCreateDisPosition,-                  ("sourceTable" .=) <$> _jctcSourceTable])------- /See:/ 'tableListTablesItem' smart constructor.-data TableListTablesItem = TableListTablesItem'-    { _tltiTableReference :: !(Maybe TableReference)-    , _tltiFriendlyName   :: !(Maybe Text)-    , _tltiKind           :: !Text-    , _tltiId             :: !(Maybe Text)-    , _tltiLabels         :: !(Maybe TableListTablesItemLabels)-    , _tltiType           :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'TableListTablesItem' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'tltiTableReference'------ * 'tltiFriendlyName'------ * 'tltiKind'------ * 'tltiId'------ * 'tltiLabels'------ * 'tltiType'-tableListTablesItem-    :: TableListTablesItem-tableListTablesItem =-    TableListTablesItem'-    { _tltiTableReference = Nothing-    , _tltiFriendlyName = Nothing-    , _tltiKind = "bigquery#table"-    , _tltiId = Nothing-    , _tltiLabels = Nothing-    , _tltiType = Nothing-    }---- | A reference uniquely identifying the table.-tltiTableReference :: Lens' TableListTablesItem (Maybe TableReference)-tltiTableReference-  = lens _tltiTableReference-      (\ s a -> s{_tltiTableReference = a})---- | The user-friendly name for this table.-tltiFriendlyName :: Lens' TableListTablesItem (Maybe Text)-tltiFriendlyName-  = lens _tltiFriendlyName-      (\ s a -> s{_tltiFriendlyName = a})---- | The resource type.-tltiKind :: Lens' TableListTablesItem Text-tltiKind = lens _tltiKind (\ s a -> s{_tltiKind = a})---- | An opaque ID of the table-tltiId :: Lens' TableListTablesItem (Maybe Text)-tltiId = lens _tltiId (\ s a -> s{_tltiId = a})---- | [Experimental] The labels associated with this table. You can use these--- to organize and group your tables.-tltiLabels :: Lens' TableListTablesItem (Maybe TableListTablesItemLabels)-tltiLabels-  = lens _tltiLabels (\ s a -> s{_tltiLabels = a})---- | The type of table. Possible values are: TABLE, VIEW.-tltiType :: Lens' TableListTablesItem (Maybe Text)-tltiType = lens _tltiType (\ s a -> s{_tltiType = a})--instance FromJSON TableListTablesItem where-        parseJSON-          = withObject "TableListTablesItem"-              (\ o ->-                 TableListTablesItem' <$>-                   (o .:? "tableReference") <*> (o .:? "friendlyName")-                     <*> (o .:? "kind" .!= "bigquery#table")-                     <*> (o .:? "id")-                     <*> (o .:? "labels")-                     <*> (o .:? "type"))--instance ToJSON TableListTablesItem where-        toJSON TableListTablesItem'{..}-          = object-              (catMaybes-                 [("tableReference" .=) <$> _tltiTableReference,-                  ("friendlyName" .=) <$> _tltiFriendlyName,-                  Just ("kind" .= _tltiKind), ("id" .=) <$> _tltiId,-                  ("labels" .=) <$> _tltiLabels,-                  ("type" .=) <$> _tltiType])------- /See:/ 'tableSchema' smart constructor.-newtype TableSchema = TableSchema'-    { _tsFields :: Maybe [TableFieldSchema]-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'TableSchema' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'tsFields'-tableSchema-    :: TableSchema-tableSchema =-    TableSchema'-    { _tsFields = Nothing-    }---- | Describes the fields in a table.-tsFields :: Lens' TableSchema [TableFieldSchema]-tsFields-  = lens _tsFields (\ s a -> s{_tsFields = a}) .-      _Default-      . _Coerce--instance FromJSON TableSchema where-        parseJSON-          = withObject "TableSchema"-              (\ o -> TableSchema' <$> (o .:? "fields" .!= mempty))--instance ToJSON TableSchema where-        toJSON TableSchema'{..}-          = object (catMaybes [("fields" .=) <$> _tsFields])------- /See:/ 'projectList' smart constructor.-data ProjectList = ProjectList'-    { _plTotalItems    :: !(Maybe (Textual Int32))-    , _plEtag          :: !(Maybe Text)-    , _plNextPageToken :: !(Maybe Text)-    , _plKind          :: !Text-    , _plProjects      :: !(Maybe [ProjectListProjectsItem])-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'ProjectList' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'plTotalItems'------ * 'plEtag'------ * 'plNextPageToken'------ * 'plKind'------ * 'plProjects'-projectList-    :: ProjectList-projectList =-    ProjectList'-    { _plTotalItems = Nothing-    , _plEtag = Nothing-    , _plNextPageToken = Nothing-    , _plKind = "bigquery#projectList"-    , _plProjects = Nothing-    }---- | The total number of projects in the list.-plTotalItems :: Lens' ProjectList (Maybe Int32)-plTotalItems-  = lens _plTotalItems (\ s a -> s{_plTotalItems = a})-      . mapping _Coerce---- | A hash of the page of results-plEtag :: Lens' ProjectList (Maybe Text)-plEtag = lens _plEtag (\ s a -> s{_plEtag = a})---- | A token to request the next page of results.-plNextPageToken :: Lens' ProjectList (Maybe Text)-plNextPageToken-  = lens _plNextPageToken-      (\ s a -> s{_plNextPageToken = a})---- | The type of list.-plKind :: Lens' ProjectList Text-plKind = lens _plKind (\ s a -> s{_plKind = a})---- | Projects to which you have at least READ access.-plProjects :: Lens' ProjectList [ProjectListProjectsItem]-plProjects-  = lens _plProjects (\ s a -> s{_plProjects = a}) .-      _Default-      . _Coerce--instance FromJSON ProjectList where-        parseJSON-          = withObject "ProjectList"-              (\ o ->-                 ProjectList' <$>-                   (o .:? "totalItems") <*> (o .:? "etag") <*>-                     (o .:? "nextPageToken")-                     <*> (o .:? "kind" .!= "bigquery#projectList")-                     <*> (o .:? "projects" .!= mempty))--instance ToJSON ProjectList where-        toJSON ProjectList'{..}-          = object-              (catMaybes-                 [("totalItems" .=) <$> _plTotalItems,-                  ("etag" .=) <$> _plEtag,-                  ("nextPageToken" .=) <$> _plNextPageToken,-                  Just ("kind" .= _plKind),-                  ("projects" .=) <$> _plProjects])------- /See:/ 'explainQueryStep' smart constructor.-data ExplainQueryStep = ExplainQueryStep'-    { _eqsSubsteps :: !(Maybe [Text])-    , _eqsKind     :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'ExplainQueryStep' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'eqsSubsteps'------ * 'eqsKind'-explainQueryStep-    :: ExplainQueryStep-explainQueryStep =-    ExplainQueryStep'-    { _eqsSubsteps = Nothing-    , _eqsKind = Nothing-    }---- | Human-readable stage descriptions.-eqsSubsteps :: Lens' ExplainQueryStep [Text]-eqsSubsteps-  = lens _eqsSubsteps (\ s a -> s{_eqsSubsteps = a}) .-      _Default-      . _Coerce---- | Machine-readable operation type.-eqsKind :: Lens' ExplainQueryStep (Maybe Text)-eqsKind = lens _eqsKind (\ s a -> s{_eqsKind = a})--instance FromJSON ExplainQueryStep where-        parseJSON-          = withObject "ExplainQueryStep"-              (\ o ->-                 ExplainQueryStep' <$>-                   (o .:? "substeps" .!= mempty) <*> (o .:? "kind"))--instance ToJSON ExplainQueryStep where-        toJSON ExplainQueryStep'{..}-          = object-              (catMaybes-                 [("substeps" .=) <$> _eqsSubsteps,-                  ("kind" .=) <$> _eqsKind])------- /See:/ 'queryParameterTypeStructTypesItem' smart constructor.-data QueryParameterTypeStructTypesItem = QueryParameterTypeStructTypesItem'-    { _qptstiName        :: !(Maybe Text)-    , _qptstiType        :: !(Maybe QueryParameterType)-    , _qptstiDescription :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'QueryParameterTypeStructTypesItem' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'qptstiName'------ * 'qptstiType'------ * 'qptstiDescription'-queryParameterTypeStructTypesItem-    :: QueryParameterTypeStructTypesItem-queryParameterTypeStructTypesItem =-    QueryParameterTypeStructTypesItem'-    { _qptstiName = Nothing-    , _qptstiType = Nothing-    , _qptstiDescription = Nothing-    }---- | [Optional] The name of this field.-qptstiName :: Lens' QueryParameterTypeStructTypesItem (Maybe Text)-qptstiName-  = lens _qptstiName (\ s a -> s{_qptstiName = a})---- | [Required] The type of this field.-qptstiType :: Lens' QueryParameterTypeStructTypesItem (Maybe QueryParameterType)-qptstiType-  = lens _qptstiType (\ s a -> s{_qptstiType = a})---- | [Optional] Human-oriented description of the field.-qptstiDescription :: Lens' QueryParameterTypeStructTypesItem (Maybe Text)-qptstiDescription-  = lens _qptstiDescription-      (\ s a -> s{_qptstiDescription = a})--instance FromJSON QueryParameterTypeStructTypesItem-         where-        parseJSON-          = withObject "QueryParameterTypeStructTypesItem"-              (\ o ->-                 QueryParameterTypeStructTypesItem' <$>-                   (o .:? "name") <*> (o .:? "type") <*>-                     (o .:? "description"))--instance ToJSON QueryParameterTypeStructTypesItem-         where-        toJSON QueryParameterTypeStructTypesItem'{..}-          = object-              (catMaybes-                 [("name" .=) <$> _qptstiName,-                  ("type" .=) <$> _qptstiType,-                  ("description" .=) <$> _qptstiDescription])------- /See:/ 'bigtableColumnFamily' smart constructor.-data BigtableColumnFamily = BigtableColumnFamily'-    { _bcfFamilyId       :: !(Maybe Text)-    , _bcfColumns        :: !(Maybe [BigtableColumn])-    , _bcfOnlyReadLatest :: !(Maybe Bool)-    , _bcfType           :: !(Maybe Text)-    , _bcfEncoding       :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'BigtableColumnFamily' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'bcfFamilyId'------ * 'bcfColumns'------ * 'bcfOnlyReadLatest'------ * 'bcfType'------ * 'bcfEncoding'-bigtableColumnFamily-    :: BigtableColumnFamily-bigtableColumnFamily =-    BigtableColumnFamily'-    { _bcfFamilyId = Nothing-    , _bcfColumns = Nothing-    , _bcfOnlyReadLatest = Nothing-    , _bcfType = Nothing-    , _bcfEncoding = Nothing-    }---- | Identifier of the column family.-bcfFamilyId :: Lens' BigtableColumnFamily (Maybe Text)-bcfFamilyId-  = lens _bcfFamilyId (\ s a -> s{_bcfFamilyId = a})---- | [Optional] Lists of columns that should be exposed as individual fields--- as opposed to a list of (column name, value) pairs. All columns whose--- qualifier matches a qualifier in this list can be accessed as .. Other--- columns can be accessed as a list through .Column field.-bcfColumns :: Lens' BigtableColumnFamily [BigtableColumn]-bcfColumns-  = lens _bcfColumns (\ s a -> s{_bcfColumns = a}) .-      _Default-      . _Coerce---- | [Optional] If this is set only the latest version of value are exposed--- for all columns in this column family. This can be overridden for a--- specific column by listing that column in \'columns\' and specifying a--- different setting for that column.-bcfOnlyReadLatest :: Lens' BigtableColumnFamily (Maybe Bool)-bcfOnlyReadLatest-  = lens _bcfOnlyReadLatest-      (\ s a -> s{_bcfOnlyReadLatest = a})---- | [Optional] The type to convert the value in cells of this column family.--- The values are expected to be encoded using HBase Bytes.toBytes function--- when using the BINARY encoding value. Following BigQuery types are--- allowed (case-sensitive) - BYTES STRING INTEGER FLOAT BOOLEAN Default--- type is BYTES. This can be overridden for a specific column by listing--- that column in \'columns\' and specifying a type for it.-bcfType :: Lens' BigtableColumnFamily (Maybe Text)-bcfType = lens _bcfType (\ s a -> s{_bcfType = a})---- | [Optional] The encoding of the values when the type is not STRING.--- Acceptable encoding values are: TEXT - indicates values are alphanumeric--- text strings. BINARY - indicates values are encoded using HBase--- Bytes.toBytes family of functions. This can be overridden for a specific--- column by listing that column in \'columns\' and specifying an encoding--- for it.-bcfEncoding :: Lens' BigtableColumnFamily (Maybe Text)-bcfEncoding-  = lens _bcfEncoding (\ s a -> s{_bcfEncoding = a})--instance FromJSON BigtableColumnFamily where-        parseJSON-          = withObject "BigtableColumnFamily"-              (\ o ->-                 BigtableColumnFamily' <$>-                   (o .:? "familyId") <*> (o .:? "columns" .!= mempty)-                     <*> (o .:? "onlyReadLatest")-                     <*> (o .:? "type")-                     <*> (o .:? "encoding"))--instance ToJSON BigtableColumnFamily where-        toJSON BigtableColumnFamily'{..}-          = object-              (catMaybes-                 [("familyId" .=) <$> _bcfFamilyId,-                  ("columns" .=) <$> _bcfColumns,-                  ("onlyReadLatest" .=) <$> _bcfOnlyReadLatest,-                  ("type" .=) <$> _bcfType,-                  ("encoding" .=) <$> _bcfEncoding])------- /See:/ 'jobStatistics' smart constructor.-data JobStatistics = JobStatistics'-    { _jsCreationTime        :: !(Maybe (Textual Int64))-    , _jsStartTime           :: !(Maybe (Textual Int64))-    , _jsLoad                :: !(Maybe JobStatistics3)-    , _jsTotalBytesProcessed :: !(Maybe (Textual Int64))-    , _jsEndTime             :: !(Maybe (Textual Int64))-    , _jsQuery               :: !(Maybe JobStatistics2)-    , _jsExtract             :: !(Maybe JobStatistics4)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'JobStatistics' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'jsCreationTime'------ * 'jsStartTime'------ * 'jsLoad'------ * 'jsTotalBytesProcessed'------ * 'jsEndTime'------ * 'jsQuery'------ * 'jsExtract'-jobStatistics-    :: JobStatistics-jobStatistics =-    JobStatistics'-    { _jsCreationTime = Nothing-    , _jsStartTime = Nothing-    , _jsLoad = Nothing-    , _jsTotalBytesProcessed = Nothing-    , _jsEndTime = Nothing-    , _jsQuery = Nothing-    , _jsExtract = Nothing-    }---- | [Output-only] Creation time of this job, in milliseconds since the--- epoch. This field will be present on all jobs.-jsCreationTime :: Lens' JobStatistics (Maybe Int64)-jsCreationTime-  = lens _jsCreationTime-      (\ s a -> s{_jsCreationTime = a})-      . mapping _Coerce---- | [Output-only] Start time of this job, in milliseconds since the epoch.--- This field will be present when the job transitions from the PENDING--- state to either RUNNING or DONE.-jsStartTime :: Lens' JobStatistics (Maybe Int64)-jsStartTime-  = lens _jsStartTime (\ s a -> s{_jsStartTime = a}) .-      mapping _Coerce---- | [Output-only] Statistics for a load job.-jsLoad :: Lens' JobStatistics (Maybe JobStatistics3)-jsLoad = lens _jsLoad (\ s a -> s{_jsLoad = a})---- | [Output-only] [Deprecated] Use the bytes processed in the query--- statistics instead.-jsTotalBytesProcessed :: Lens' JobStatistics (Maybe Int64)-jsTotalBytesProcessed-  = lens _jsTotalBytesProcessed-      (\ s a -> s{_jsTotalBytesProcessed = a})-      . mapping _Coerce---- | [Output-only] End time of this job, in milliseconds since the epoch.--- This field will be present whenever a job is in the DONE state.-jsEndTime :: Lens' JobStatistics (Maybe Int64)-jsEndTime-  = lens _jsEndTime (\ s a -> s{_jsEndTime = a}) .-      mapping _Coerce---- | [Output-only] Statistics for a query job.-jsQuery :: Lens' JobStatistics (Maybe JobStatistics2)-jsQuery = lens _jsQuery (\ s a -> s{_jsQuery = a})---- | [Output-only] Statistics for an extract job.-jsExtract :: Lens' JobStatistics (Maybe JobStatistics4)-jsExtract-  = lens _jsExtract (\ s a -> s{_jsExtract = a})--instance FromJSON JobStatistics where-        parseJSON-          = withObject "JobStatistics"-              (\ o ->-                 JobStatistics' <$>-                   (o .:? "creationTime") <*> (o .:? "startTime") <*>-                     (o .:? "load")-                     <*> (o .:? "totalBytesProcessed")-                     <*> (o .:? "endTime")-                     <*> (o .:? "query")-                     <*> (o .:? "extract"))--instance ToJSON JobStatistics where-        toJSON JobStatistics'{..}-          = object-              (catMaybes-                 [("creationTime" .=) <$> _jsCreationTime,-                  ("startTime" .=) <$> _jsStartTime,-                  ("load" .=) <$> _jsLoad,-                  ("totalBytesProcessed" .=) <$>-                    _jsTotalBytesProcessed,-                  ("endTime" .=) <$> _jsEndTime,-                  ("query" .=) <$> _jsQuery,-                  ("extract" .=) <$> _jsExtract])---- | [Experimental] The labels associated with this job. You can use these to--- organize and group your jobs. Label keys and values can be no longer--- than 63 characters, can only contain letters, numeric characters,--- underscores and dashes. International characters are allowed. Label--- values are optional. Label keys must start with a letter and must be--- unique within a dataset. Both keys and values are additionally--- constrained to be \<= 128 bytes in size.------ /See:/ 'jobConfigurationLabels' smart constructor.-newtype JobConfigurationLabels = JobConfigurationLabels'-    { _jclAddtional :: HashMap Text Text-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'JobConfigurationLabels' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'jclAddtional'-jobConfigurationLabels-    :: HashMap Text Text -- ^ 'jclAddtional'-    -> JobConfigurationLabels-jobConfigurationLabels pJclAddtional_ =-    JobConfigurationLabels'-    { _jclAddtional = _Coerce # pJclAddtional_-    }--jclAddtional :: Lens' JobConfigurationLabels (HashMap Text Text)-jclAddtional-  = lens _jclAddtional (\ s a -> s{_jclAddtional = a})-      . _Coerce--instance FromJSON JobConfigurationLabels where-        parseJSON-          = withObject "JobConfigurationLabels"-              (\ o ->-                 JobConfigurationLabels' <$> (parseJSONObject o))--instance ToJSON JobConfigurationLabels where-        toJSON = toJSON . _jclAddtional------- /See:/ 'dataSet' smart constructor.-data DataSet = DataSet'-    { _dsCreationTime             :: !(Maybe (Textual Int64))-    , _dsAccess                   :: !(Maybe [DataSetAccessItem])-    , _dsEtag                     :: !(Maybe Text)-    , _dsLocation                 :: !(Maybe Text)-    , _dsFriendlyName             :: !(Maybe Text)-    , _dsKind                     :: !Text-    , _dsLastModifiedTime         :: !(Maybe (Textual Int64))-    , _dsDataSetReference         :: !(Maybe DataSetReference)-    , _dsSelfLink                 :: !(Maybe Text)-    , _dsId                       :: !(Maybe Text)-    , _dsLabels                   :: !(Maybe DataSetLabels)-    , _dsDefaultTableExpirationMs :: !(Maybe (Textual Int64))-    , _dsDescription              :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'DataSet' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'dsCreationTime'------ * 'dsAccess'------ * 'dsEtag'------ * 'dsLocation'------ * 'dsFriendlyName'------ * 'dsKind'------ * 'dsLastModifiedTime'------ * 'dsDataSetReference'------ * 'dsSelfLink'------ * 'dsId'------ * 'dsLabels'------ * 'dsDefaultTableExpirationMs'------ * 'dsDescription'-dataSet-    :: DataSet-dataSet =-    DataSet'-    { _dsCreationTime = Nothing-    , _dsAccess = Nothing-    , _dsEtag = Nothing-    , _dsLocation = Nothing-    , _dsFriendlyName = Nothing-    , _dsKind = "bigquery#dataset"-    , _dsLastModifiedTime = Nothing-    , _dsDataSetReference = Nothing-    , _dsSelfLink = Nothing-    , _dsId = Nothing-    , _dsLabels = Nothing-    , _dsDefaultTableExpirationMs = Nothing-    , _dsDescription = Nothing-    }---- | [Output-only] The time when this dataset was created, in milliseconds--- since the epoch.-dsCreationTime :: Lens' DataSet (Maybe Int64)-dsCreationTime-  = lens _dsCreationTime-      (\ s a -> s{_dsCreationTime = a})-      . mapping _Coerce---- | [Optional] An array of objects that define dataset access for one or--- more entities. You can set this property when inserting or updating a--- dataset in order to control who is allowed to access the data. If--- unspecified at dataset creation time, BigQuery adds default dataset--- access for the following entities: access.specialGroup: projectReaders;--- access.role: READER; access.specialGroup: projectWriters; access.role:--- WRITER; access.specialGroup: projectOwners; access.role: OWNER;--- access.userByEmail: [dataset creator email]; access.role: OWNER;-dsAccess :: Lens' DataSet [DataSetAccessItem]-dsAccess-  = lens _dsAccess (\ s a -> s{_dsAccess = a}) .-      _Default-      . _Coerce---- | [Output-only] A hash of the resource.-dsEtag :: Lens' DataSet (Maybe Text)-dsEtag = lens _dsEtag (\ s a -> s{_dsEtag = a})---- | [Experimental] The geographic location where the dataset should reside.--- Possible values include EU and US. The default value is US.-dsLocation :: Lens' DataSet (Maybe Text)-dsLocation-  = lens _dsLocation (\ s a -> s{_dsLocation = a})---- | [Optional] A descriptive name for the dataset.-dsFriendlyName :: Lens' DataSet (Maybe Text)-dsFriendlyName-  = lens _dsFriendlyName-      (\ s a -> s{_dsFriendlyName = a})---- | [Output-only] The resource type.-dsKind :: Lens' DataSet Text-dsKind = lens _dsKind (\ s a -> s{_dsKind = a})---- | [Output-only] The date when this dataset or any of its tables was last--- modified, in milliseconds since the epoch.-dsLastModifiedTime :: Lens' DataSet (Maybe Int64)-dsLastModifiedTime-  = lens _dsLastModifiedTime-      (\ s a -> s{_dsLastModifiedTime = a})-      . mapping _Coerce---- | [Required] A reference that identifies the dataset.-dsDataSetReference :: Lens' DataSet (Maybe DataSetReference)-dsDataSetReference-  = lens _dsDataSetReference-      (\ s a -> s{_dsDataSetReference = a})---- | [Output-only] A URL that can be used to access the resource again. You--- can use this URL in Get or Update requests to the resource.-dsSelfLink :: Lens' DataSet (Maybe Text)-dsSelfLink-  = lens _dsSelfLink (\ s a -> s{_dsSelfLink = a})---- | [Output-only] The fully-qualified unique name of the dataset in the--- format projectId:datasetId. The dataset name without the project name is--- given in the datasetId field. When creating a new dataset, leave this--- field blank, and instead specify the datasetId field.-dsId :: Lens' DataSet (Maybe Text)-dsId = lens _dsId (\ s a -> s{_dsId = a})---- | [Experimental] The labels associated with this dataset. You can use--- these to organize and group your datasets. You can set this property--- when inserting or updating a dataset. See Labeling Datasets for more--- information.-dsLabels :: Lens' DataSet (Maybe DataSetLabels)-dsLabels = lens _dsLabels (\ s a -> s{_dsLabels = a})---- | [Optional] The default lifetime of all tables in the dataset, in--- milliseconds. The minimum value is 3600000 milliseconds (one hour). Once--- this property is set, all newly-created tables in the dataset will have--- an expirationTime property set to the creation time plus the value in--- this property, and changing the value will only affect new tables, not--- existing ones. When the expirationTime for a given table is reached,--- that table will be deleted automatically. If a table\'s expirationTime--- is modified or removed before the table expires, or if you provide an--- explicit expirationTime when creating a table, that value takes--- precedence over the default expiration time indicated by this property.-dsDefaultTableExpirationMs :: Lens' DataSet (Maybe Int64)-dsDefaultTableExpirationMs-  = lens _dsDefaultTableExpirationMs-      (\ s a -> s{_dsDefaultTableExpirationMs = a})-      . mapping _Coerce---- | [Optional] A user-friendly description of the dataset.-dsDescription :: Lens' DataSet (Maybe Text)-dsDescription-  = lens _dsDescription-      (\ s a -> s{_dsDescription = a})--instance FromJSON DataSet where-        parseJSON-          = withObject "DataSet"-              (\ o ->-                 DataSet' <$>-                   (o .:? "creationTime") <*>-                     (o .:? "access" .!= mempty)-                     <*> (o .:? "etag")-                     <*> (o .:? "location")-                     <*> (o .:? "friendlyName")-                     <*> (o .:? "kind" .!= "bigquery#dataset")-                     <*> (o .:? "lastModifiedTime")-                     <*> (o .:? "datasetReference")-                     <*> (o .:? "selfLink")-                     <*> (o .:? "id")-                     <*> (o .:? "labels")-                     <*> (o .:? "defaultTableExpirationMs")-                     <*> (o .:? "description"))--instance ToJSON DataSet where-        toJSON DataSet'{..}-          = object-              (catMaybes-                 [("creationTime" .=) <$> _dsCreationTime,-                  ("access" .=) <$> _dsAccess, ("etag" .=) <$> _dsEtag,-                  ("location" .=) <$> _dsLocation,-                  ("friendlyName" .=) <$> _dsFriendlyName,-                  Just ("kind" .= _dsKind),-                  ("lastModifiedTime" .=) <$> _dsLastModifiedTime,-                  ("datasetReference" .=) <$> _dsDataSetReference,-                  ("selfLink" .=) <$> _dsSelfLink, ("id" .=) <$> _dsId,-                  ("labels" .=) <$> _dsLabels,-                  ("defaultTableExpirationMs" .=) <$>-                    _dsDefaultTableExpirationMs,-                  ("description" .=) <$> _dsDescription])------- /See:/ 'bigtableOptions' smart constructor.-data BigtableOptions = BigtableOptions'-    { _boReadRowkeyAsString              :: !(Maybe Bool)-    , _boIgnoreUnspecifiedColumnFamilies :: !(Maybe Bool)-    , _boColumnFamilies                  :: !(Maybe [BigtableColumnFamily])-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'BigtableOptions' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'boReadRowkeyAsString'------ * 'boIgnoreUnspecifiedColumnFamilies'------ * 'boColumnFamilies'-bigtableOptions-    :: BigtableOptions-bigtableOptions =-    BigtableOptions'-    { _boReadRowkeyAsString = Nothing-    , _boIgnoreUnspecifiedColumnFamilies = Nothing-    , _boColumnFamilies = Nothing-    }---- | [Optional] If field is true, then the rowkey column families will be--- read and converted to string. Otherwise they are read with BYTES type--- values and users need to manually cast them with CAST if necessary. The--- default value is false.-boReadRowkeyAsString :: Lens' BigtableOptions (Maybe Bool)-boReadRowkeyAsString-  = lens _boReadRowkeyAsString-      (\ s a -> s{_boReadRowkeyAsString = a})---- | [Optional] If field is true, then the column families that are not--- specified in columnFamilies list are not exposed in the table schema.--- Otherwise, they are read with BYTES type values. The default value is--- false.-boIgnoreUnspecifiedColumnFamilies :: Lens' BigtableOptions (Maybe Bool)-boIgnoreUnspecifiedColumnFamilies-  = lens _boIgnoreUnspecifiedColumnFamilies-      (\ s a -> s{_boIgnoreUnspecifiedColumnFamilies = a})---- | [Optional] List of column families to expose in the table schema along--- with their types. This list restricts the column families that can be--- referenced in queries and specifies their value types. You can use this--- list to do type conversions - see the \'type\' field for more details.--- If you leave this list empty, all column families are present in the--- table schema and their values are read as BYTES. During a query only the--- column families referenced in that query are read from Bigtable.-boColumnFamilies :: Lens' BigtableOptions [BigtableColumnFamily]-boColumnFamilies-  = lens _boColumnFamilies-      (\ s a -> s{_boColumnFamilies = a})-      . _Default-      . _Coerce--instance FromJSON BigtableOptions where-        parseJSON-          = withObject "BigtableOptions"-              (\ o ->-                 BigtableOptions' <$>-                   (o .:? "readRowkeyAsString") <*>-                     (o .:? "ignoreUnspecifiedColumnFamilies")-                     <*> (o .:? "columnFamilies" .!= mempty))--instance ToJSON BigtableOptions where-        toJSON BigtableOptions'{..}-          = object-              (catMaybes-                 [("readRowkeyAsString" .=) <$> _boReadRowkeyAsString,-                  ("ignoreUnspecifiedColumnFamilies" .=) <$>-                    _boIgnoreUnspecifiedColumnFamilies,-                  ("columnFamilies" .=) <$> _boColumnFamilies])------- /See:/ 'externalDataConfiguration' smart constructor.-data ExternalDataConfiguration = ExternalDataConfiguration'-    { _edcBigtableOptions     :: !(Maybe BigtableOptions)-    , _edcIgnoreUnknownValues :: !(Maybe Bool)-    , _edcCompression         :: !(Maybe Text)-    , _edcSourceFormat        :: !(Maybe Text)-    , _edcSchema              :: !(Maybe TableSchema)-    , _edcMaxBadRecords       :: !(Maybe (Textual Int32))-    , _edcGoogleSheetsOptions :: !(Maybe GoogleSheetsOptions)-    , _edcAutodetect          :: !(Maybe Bool)-    , _edcSourceURIs          :: !(Maybe [Text])-    , _edcCSVOptions          :: !(Maybe CSVOptions)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'ExternalDataConfiguration' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'edcBigtableOptions'------ * 'edcIgnoreUnknownValues'------ * 'edcCompression'------ * 'edcSourceFormat'------ * 'edcSchema'------ * 'edcMaxBadRecords'------ * 'edcGoogleSheetsOptions'------ * 'edcAutodetect'------ * 'edcSourceURIs'------ * 'edcCSVOptions'-externalDataConfiguration-    :: ExternalDataConfiguration-externalDataConfiguration =-    ExternalDataConfiguration'-    { _edcBigtableOptions = Nothing-    , _edcIgnoreUnknownValues = Nothing-    , _edcCompression = Nothing-    , _edcSourceFormat = Nothing-    , _edcSchema = Nothing-    , _edcMaxBadRecords = Nothing-    , _edcGoogleSheetsOptions = Nothing-    , _edcAutodetect = Nothing-    , _edcSourceURIs = Nothing-    , _edcCSVOptions = Nothing-    }---- | [Optional] Additional options if sourceFormat is set to BIGTABLE.-edcBigtableOptions :: Lens' ExternalDataConfiguration (Maybe BigtableOptions)-edcBigtableOptions-  = lens _edcBigtableOptions-      (\ s a -> s{_edcBigtableOptions = a})---- | [Optional] Indicates if BigQuery should allow extra values that are not--- represented in the table schema. If true, the extra values are ignored.--- If false, records with extra columns are treated as bad records, and if--- there are too many bad records, an invalid error is returned in the job--- result. The default value is false. The sourceFormat property determines--- what BigQuery treats as an extra value: CSV: Trailing columns JSON:--- Named values that don\'t match any column names Google Cloud Bigtable:--- This setting is ignored. Google Cloud Datastore backups: This setting is--- ignored. Avro: This setting is ignored.-edcIgnoreUnknownValues :: Lens' ExternalDataConfiguration (Maybe Bool)-edcIgnoreUnknownValues-  = lens _edcIgnoreUnknownValues-      (\ s a -> s{_edcIgnoreUnknownValues = a})---- | [Optional] The compression type of the data source. Possible values--- include GZIP and NONE. The default value is NONE. This setting is--- ignored for Google Cloud Bigtable, Google Cloud Datastore backups and--- Avro formats.-edcCompression :: Lens' ExternalDataConfiguration (Maybe Text)-edcCompression-  = lens _edcCompression-      (\ s a -> s{_edcCompression = a})---- | [Required] The data format. For CSV files, specify \"CSV\". For Google--- sheets, specify \"GOOGLE_SHEETS\". For newline-delimited JSON, specify--- \"NEWLINE_DELIMITED_JSON\". For Avro files, specify \"AVRO\". For Google--- Cloud Datastore backups, specify \"DATASTORE_BACKUP\". [Experimental]--- For Google Cloud Bigtable, specify \"BIGTABLE\". Please note that--- reading from Google Cloud Bigtable is experimental and has to be enabled--- for your project. Please contact Google Cloud Support to enable this for--- your project.-edcSourceFormat :: Lens' ExternalDataConfiguration (Maybe Text)-edcSourceFormat-  = lens _edcSourceFormat-      (\ s a -> s{_edcSourceFormat = a})---- | [Optional] The schema for the data. Schema is required for CSV and JSON--- formats. Schema is disallowed for Google Cloud Bigtable, Cloud Datastore--- backups, and Avro formats.-edcSchema :: Lens' ExternalDataConfiguration (Maybe TableSchema)-edcSchema-  = lens _edcSchema (\ s a -> s{_edcSchema = a})---- | [Optional] The maximum number of bad records that BigQuery can ignore--- when reading data. If the number of bad records exceeds this value, an--- invalid error is returned in the job result. The default value is 0,--- which requires that all records are valid. This setting is ignored for--- Google Cloud Bigtable, Google Cloud Datastore backups and Avro formats.-edcMaxBadRecords :: Lens' ExternalDataConfiguration (Maybe Int32)-edcMaxBadRecords-  = lens _edcMaxBadRecords-      (\ s a -> s{_edcMaxBadRecords = a})-      . mapping _Coerce---- | [Optional] Additional options if sourceFormat is set to GOOGLE_SHEETS.-edcGoogleSheetsOptions :: Lens' ExternalDataConfiguration (Maybe GoogleSheetsOptions)-edcGoogleSheetsOptions-  = lens _edcGoogleSheetsOptions-      (\ s a -> s{_edcGoogleSheetsOptions = a})---- | [Experimental] Try to detect schema and format options automatically.--- Any option specified explicitly will be honored.-edcAutodetect :: Lens' ExternalDataConfiguration (Maybe Bool)-edcAutodetect-  = lens _edcAutodetect-      (\ s a -> s{_edcAutodetect = a})---- | [Required] The fully-qualified URIs that point to your data in Google--- Cloud. For Google Cloud Storage URIs: Each URI can contain one \'*\'--- wildcard character and it must come after the \'bucket\' name. Size--- limits related to load jobs apply to external data sources. For Google--- Cloud Bigtable URIs: Exactly one URI can be specified and it has be a--- fully specified and valid HTTPS URL for a Google Cloud Bigtable table.--- For Google Cloud Datastore backups, exactly one URI can be specified,--- and it must end with \'.backup_info\'. Also, the \'*\' wildcard--- character is not allowed.-edcSourceURIs :: Lens' ExternalDataConfiguration [Text]-edcSourceURIs-  = lens _edcSourceURIs-      (\ s a -> s{_edcSourceURIs = a})-      . _Default-      . _Coerce---- | Additional properties to set if sourceFormat is set to CSV.-edcCSVOptions :: Lens' ExternalDataConfiguration (Maybe CSVOptions)-edcCSVOptions-  = lens _edcCSVOptions-      (\ s a -> s{_edcCSVOptions = a})--instance FromJSON ExternalDataConfiguration where-        parseJSON-          = withObject "ExternalDataConfiguration"-              (\ o ->-                 ExternalDataConfiguration' <$>-                   (o .:? "bigtableOptions") <*>-                     (o .:? "ignoreUnknownValues")-                     <*> (o .:? "compression")-                     <*> (o .:? "sourceFormat")-                     <*> (o .:? "schema")-                     <*> (o .:? "maxBadRecords")-                     <*> (o .:? "googleSheetsOptions")-                     <*> (o .:? "autodetect")-                     <*> (o .:? "sourceUris" .!= mempty)-                     <*> (o .:? "csvOptions"))--instance ToJSON ExternalDataConfiguration where-        toJSON ExternalDataConfiguration'{..}-          = object-              (catMaybes-                 [("bigtableOptions" .=) <$> _edcBigtableOptions,-                  ("ignoreUnknownValues" .=) <$>-                    _edcIgnoreUnknownValues,-                  ("compression" .=) <$> _edcCompression,-                  ("sourceFormat" .=) <$> _edcSourceFormat,-                  ("schema" .=) <$> _edcSchema,-                  ("maxBadRecords" .=) <$> _edcMaxBadRecords,-                  ("googleSheetsOptions" .=) <$>-                    _edcGoogleSheetsOptions,-                  ("autodetect" .=) <$> _edcAutodetect,-                  ("sourceUris" .=) <$> _edcSourceURIs,-                  ("csvOptions" .=) <$> _edcCSVOptions])------- /See:/ 'tableReference' smart constructor.-data TableReference = TableReference'-    { _trDataSetId :: !(Maybe Text)-    , _trProjectId :: !(Maybe Text)-    , _trTableId   :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'TableReference' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'trDataSetId'------ * 'trProjectId'------ * 'trTableId'-tableReference-    :: TableReference-tableReference =-    TableReference'-    { _trDataSetId = Nothing-    , _trProjectId = Nothing-    , _trTableId = Nothing-    }---- | [Required] The ID of the dataset containing this table.-trDataSetId :: Lens' TableReference (Maybe Text)-trDataSetId-  = lens _trDataSetId (\ s a -> s{_trDataSetId = a})---- | [Required] The ID of the project containing this table.-trProjectId :: Lens' TableReference (Maybe Text)-trProjectId-  = lens _trProjectId (\ s a -> s{_trProjectId = a})---- | [Required] The ID of the table. The ID must contain only letters (a-z,--- A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024--- characters.-trTableId :: Lens' TableReference (Maybe Text)-trTableId-  = lens _trTableId (\ s a -> s{_trTableId = a})--instance FromJSON TableReference where-        parseJSON-          = withObject "TableReference"-              (\ o ->-                 TableReference' <$>-                   (o .:? "datasetId") <*> (o .:? "projectId") <*>-                     (o .:? "tableId"))--instance ToJSON TableReference where-        toJSON TableReference'{..}-          = object-              (catMaybes-                 [("datasetId" .=) <$> _trDataSetId,-                  ("projectId" .=) <$> _trProjectId,-                  ("tableId" .=) <$> _trTableId])------- /See:/ 'tableFieldSchema' smart constructor.-data TableFieldSchema = TableFieldSchema'-    { _tfsMode        :: !(Maybe Text)-    , _tfsName        :: !(Maybe Text)-    , _tfsType        :: !(Maybe Text)-    , _tfsDescription :: !(Maybe Text)-    , _tfsFields      :: !(Maybe [TableFieldSchema])-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'TableFieldSchema' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'tfsMode'------ * 'tfsName'------ * 'tfsType'------ * 'tfsDescription'------ * 'tfsFields'-tableFieldSchema-    :: TableFieldSchema-tableFieldSchema =-    TableFieldSchema'-    { _tfsMode = Nothing-    , _tfsName = Nothing-    , _tfsType = Nothing-    , _tfsDescription = Nothing-    , _tfsFields = Nothing-    }---- | [Optional] The field mode. Possible values include NULLABLE, REQUIRED--- and REPEATED. The default value is NULLABLE.-tfsMode :: Lens' TableFieldSchema (Maybe Text)-tfsMode = lens _tfsMode (\ s a -> s{_tfsMode = a})---- | [Required] The field name. The name must contain only letters (a-z,--- A-Z), numbers (0-9), or underscores (_), and must start with a letter or--- underscore. The maximum length is 128 characters.-tfsName :: Lens' TableFieldSchema (Maybe Text)-tfsName = lens _tfsName (\ s a -> s{_tfsName = a})---- | [Required] The field data type. Possible values include STRING, BYTES,--- INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT),--- BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, RECORD--- (where RECORD indicates that the field contains a nested schema) or--- STRUCT (same as RECORD).-tfsType :: Lens' TableFieldSchema (Maybe Text)-tfsType = lens _tfsType (\ s a -> s{_tfsType = a})---- | [Optional] The field description. The maximum length is 16K characters.-tfsDescription :: Lens' TableFieldSchema (Maybe Text)-tfsDescription-  = lens _tfsDescription-      (\ s a -> s{_tfsDescription = a})---- | [Optional] Describes the nested schema fields if the type property is--- set to RECORD.-tfsFields :: Lens' TableFieldSchema [TableFieldSchema]-tfsFields-  = lens _tfsFields (\ s a -> s{_tfsFields = a}) .-      _Default-      . _Coerce--instance FromJSON TableFieldSchema where-        parseJSON-          = withObject "TableFieldSchema"-              (\ o ->-                 TableFieldSchema' <$>-                   (o .:? "mode") <*> (o .:? "name") <*> (o .:? "type")-                     <*> (o .:? "description")-                     <*> (o .:? "fields" .!= mempty))--instance ToJSON TableFieldSchema where-        toJSON TableFieldSchema'{..}-          = object-              (catMaybes-                 [("mode" .=) <$> _tfsMode, ("name" .=) <$> _tfsName,-                  ("type" .=) <$> _tfsType,-                  ("description" .=) <$> _tfsDescription,-                  ("fields" .=) <$> _tfsFields])------- /See:/ 'getQueryResultsResponse' smart constructor.-data GetQueryResultsResponse = GetQueryResultsResponse'-    { _gqrrJobReference        :: !(Maybe JobReference)-    , _gqrrEtag                :: !(Maybe Text)-    , _gqrrKind                :: !Text-    , _gqrrSchema              :: !(Maybe TableSchema)-    , _gqrrTotalBytesProcessed :: !(Maybe (Textual Int64))-    , _gqrrRows                :: !(Maybe [TableRow])-    , _gqrrPageToken           :: !(Maybe Text)-    , _gqrrNumDmlAffectedRows  :: !(Maybe (Textual Int64))-    , _gqrrTotalRows           :: !(Maybe (Textual Word64))-    , _gqrrErrors              :: !(Maybe [ErrorProto])-    , _gqrrJobComplete         :: !(Maybe Bool)-    , _gqrrCacheHit            :: !(Maybe Bool)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'GetQueryResultsResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'gqrrJobReference'------ * 'gqrrEtag'------ * 'gqrrKind'------ * 'gqrrSchema'------ * 'gqrrTotalBytesProcessed'------ * 'gqrrRows'------ * 'gqrrPageToken'------ * 'gqrrNumDmlAffectedRows'------ * 'gqrrTotalRows'------ * 'gqrrErrors'------ * 'gqrrJobComplete'------ * 'gqrrCacheHit'-getQueryResultsResponse-    :: GetQueryResultsResponse-getQueryResultsResponse =-    GetQueryResultsResponse'-    { _gqrrJobReference = Nothing-    , _gqrrEtag = Nothing-    , _gqrrKind = "bigquery#getQueryResultsResponse"-    , _gqrrSchema = Nothing-    , _gqrrTotalBytesProcessed = Nothing-    , _gqrrRows = Nothing-    , _gqrrPageToken = Nothing-    , _gqrrNumDmlAffectedRows = Nothing-    , _gqrrTotalRows = Nothing-    , _gqrrErrors = Nothing-    , _gqrrJobComplete = Nothing-    , _gqrrCacheHit = Nothing-    }---- | Reference to the BigQuery Job that was created to run the query. This--- field will be present even if the original request timed out, in which--- case GetQueryResults can be used to read the results once the query has--- completed. Since this API only returns the first page of results,--- subsequent pages can be fetched via the same mechanism--- (GetQueryResults).-gqrrJobReference :: Lens' GetQueryResultsResponse (Maybe JobReference)-gqrrJobReference-  = lens _gqrrJobReference-      (\ s a -> s{_gqrrJobReference = a})---- | A hash of this response.-gqrrEtag :: Lens' GetQueryResultsResponse (Maybe Text)-gqrrEtag = lens _gqrrEtag (\ s a -> s{_gqrrEtag = a})---- | The resource type of the response.-gqrrKind :: Lens' GetQueryResultsResponse Text-gqrrKind = lens _gqrrKind (\ s a -> s{_gqrrKind = a})---- | The schema of the results. Present only when the query completes--- successfully.-gqrrSchema :: Lens' GetQueryResultsResponse (Maybe TableSchema)-gqrrSchema-  = lens _gqrrSchema (\ s a -> s{_gqrrSchema = a})---- | The total number of bytes processed for this query.-gqrrTotalBytesProcessed :: Lens' GetQueryResultsResponse (Maybe Int64)-gqrrTotalBytesProcessed-  = lens _gqrrTotalBytesProcessed-      (\ s a -> s{_gqrrTotalBytesProcessed = a})-      . mapping _Coerce---- | An object with as many results as can be contained within the maximum--- permitted reply size. To get any additional rows, you can call--- GetQueryResults and specify the jobReference returned above. Present--- only when the query completes successfully.-gqrrRows :: Lens' GetQueryResultsResponse [TableRow]-gqrrRows-  = lens _gqrrRows (\ s a -> s{_gqrrRows = a}) .-      _Default-      . _Coerce---- | A token used for paging results.-gqrrPageToken :: Lens' GetQueryResultsResponse (Maybe Text)-gqrrPageToken-  = lens _gqrrPageToken-      (\ s a -> s{_gqrrPageToken = a})---- | [Output-only, Experimental] The number of rows affected by a DML--- statement. Present only for DML statements INSERT, UPDATE or DELETE.-gqrrNumDmlAffectedRows :: Lens' GetQueryResultsResponse (Maybe Int64)-gqrrNumDmlAffectedRows-  = lens _gqrrNumDmlAffectedRows-      (\ s a -> s{_gqrrNumDmlAffectedRows = a})-      . mapping _Coerce---- | The total number of rows in the complete query result set, which can be--- more than the number of rows in this single page of results. Present--- only when the query completes successfully.-gqrrTotalRows :: Lens' GetQueryResultsResponse (Maybe Word64)-gqrrTotalRows-  = lens _gqrrTotalRows-      (\ s a -> s{_gqrrTotalRows = a})-      . mapping _Coerce---- | [Output-only] All errors and warnings encountered during the running of--- the job. Errors here do not necessarily mean that the job has completed--- or was unsuccessful.-gqrrErrors :: Lens' GetQueryResultsResponse [ErrorProto]-gqrrErrors-  = lens _gqrrErrors (\ s a -> s{_gqrrErrors = a}) .-      _Default-      . _Coerce---- | Whether the query has completed or not. If rows or totalRows are--- present, this will always be true. If this is false, totalRows will not--- be available.-gqrrJobComplete :: Lens' GetQueryResultsResponse (Maybe Bool)-gqrrJobComplete-  = lens _gqrrJobComplete-      (\ s a -> s{_gqrrJobComplete = a})---- | Whether the query result was fetched from the query cache.-gqrrCacheHit :: Lens' GetQueryResultsResponse (Maybe Bool)-gqrrCacheHit-  = lens _gqrrCacheHit (\ s a -> s{_gqrrCacheHit = a})--instance FromJSON GetQueryResultsResponse where-        parseJSON-          = withObject "GetQueryResultsResponse"-              (\ o ->-                 GetQueryResultsResponse' <$>-                   (o .:? "jobReference") <*> (o .:? "etag") <*>-                     (o .:? "kind" .!= "bigquery#getQueryResultsResponse")-                     <*> (o .:? "schema")-                     <*> (o .:? "totalBytesProcessed")-                     <*> (o .:? "rows" .!= mempty)-                     <*> (o .:? "pageToken")-                     <*> (o .:? "numDmlAffectedRows")-                     <*> (o .:? "totalRows")-                     <*> (o .:? "errors" .!= mempty)-                     <*> (o .:? "jobComplete")-                     <*> (o .:? "cacheHit"))--instance ToJSON GetQueryResultsResponse where-        toJSON GetQueryResultsResponse'{..}-          = object-              (catMaybes-                 [("jobReference" .=) <$> _gqrrJobReference,-                  ("etag" .=) <$> _gqrrEtag,-                  Just ("kind" .= _gqrrKind),-                  ("schema" .=) <$> _gqrrSchema,-                  ("totalBytesProcessed" .=) <$>-                    _gqrrTotalBytesProcessed,-                  ("rows" .=) <$> _gqrrRows,-                  ("pageToken" .=) <$> _gqrrPageToken,-                  ("numDmlAffectedRows" .=) <$>-                    _gqrrNumDmlAffectedRows,-                  ("totalRows" .=) <$> _gqrrTotalRows,-                  ("errors" .=) <$> _gqrrErrors,-                  ("jobComplete" .=) <$> _gqrrJobComplete,-                  ("cacheHit" .=) <$> _gqrrCacheHit])------- /See:/ 'dataSetList' smart constructor.-data DataSetList = DataSetList'-    { _dslEtag          :: !(Maybe Text)-    , _dslNextPageToken :: !(Maybe Text)-    , _dslKind          :: !Text-    , _dslDataSets      :: !(Maybe [DataSetListDataSetsItem])-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'DataSetList' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'dslEtag'------ * 'dslNextPageToken'------ * 'dslKind'------ * 'dslDataSets'-dataSetList-    :: DataSetList-dataSetList =-    DataSetList'-    { _dslEtag = Nothing-    , _dslNextPageToken = Nothing-    , _dslKind = "bigquery#datasetList"-    , _dslDataSets = Nothing-    }---- | A hash value of the results page. You can use this property to determine--- if the page has changed since the last request.-dslEtag :: Lens' DataSetList (Maybe Text)-dslEtag = lens _dslEtag (\ s a -> s{_dslEtag = a})---- | A token that can be used to request the next results page. This property--- is omitted on the final results page.-dslNextPageToken :: Lens' DataSetList (Maybe Text)-dslNextPageToken-  = lens _dslNextPageToken-      (\ s a -> s{_dslNextPageToken = a})---- | The list type. This property always returns the value--- \"bigquery#datasetList\".-dslKind :: Lens' DataSetList Text-dslKind = lens _dslKind (\ s a -> s{_dslKind = a})---- | An array of the dataset resources in the project. Each resource contains--- basic information. For full information about a particular dataset--- resource, use the Datasets: get method. This property is omitted when--- there are no datasets in the project.-dslDataSets :: Lens' DataSetList [DataSetListDataSetsItem]-dslDataSets-  = lens _dslDataSets (\ s a -> s{_dslDataSets = a}) .-      _Default-      . _Coerce--instance FromJSON DataSetList where-        parseJSON-          = withObject "DataSetList"-              (\ o ->-                 DataSetList' <$>-                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>-                     (o .:? "kind" .!= "bigquery#datasetList")-                     <*> (o .:? "datasets" .!= mempty))--instance ToJSON DataSetList where-        toJSON DataSetList'{..}-          = object-              (catMaybes-                 [("etag" .=) <$> _dslEtag,-                  ("nextPageToken" .=) <$> _dslNextPageToken,-                  Just ("kind" .= _dslKind),-                  ("datasets" .=) <$> _dslDataSets])------- /See:/ 'queryRequest' smart constructor.-data QueryRequest = QueryRequest'-    { _qrUseQueryCache   :: !Bool-    , _qrPreserveNulls   :: !(Maybe Bool)-    , _qrKind            :: !Text-    , _qrQueryParameters :: !(Maybe [QueryParameter])-    , _qrQuery           :: !(Maybe Text)-    , _qrParameterMode   :: !(Maybe Text)-    , _qrTimeoutMs       :: !(Maybe (Textual Word32))-    , _qrUseLegacySQL    :: !Bool-    , _qrDryRun          :: !(Maybe Bool)-    , _qrMaxResults      :: !(Maybe (Textual Word32))-    , _qrDefaultDataSet  :: !(Maybe DataSetReference)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'QueryRequest' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'qrUseQueryCache'------ * 'qrPreserveNulls'------ * 'qrKind'------ * 'qrQueryParameters'------ * 'qrQuery'------ * 'qrParameterMode'------ * 'qrTimeoutMs'------ * 'qrUseLegacySQL'------ * 'qrDryRun'------ * 'qrMaxResults'------ * 'qrDefaultDataSet'-queryRequest-    :: QueryRequest-queryRequest =-    QueryRequest'-    { _qrUseQueryCache = True-    , _qrPreserveNulls = Nothing-    , _qrKind = "bigquery#queryRequest"-    , _qrQueryParameters = Nothing-    , _qrQuery = Nothing-    , _qrParameterMode = Nothing-    , _qrTimeoutMs = Nothing-    , _qrUseLegacySQL = True-    , _qrDryRun = Nothing-    , _qrMaxResults = Nothing-    , _qrDefaultDataSet = Nothing-    }---- | [Optional] Whether to look for the result in the query cache. The query--- cache is a best-effort cache that will be flushed whenever tables in the--- query are modified. The default value is true.-qrUseQueryCache :: Lens' QueryRequest Bool-qrUseQueryCache-  = lens _qrUseQueryCache-      (\ s a -> s{_qrUseQueryCache = a})---- | [Deprecated] This property is deprecated.-qrPreserveNulls :: Lens' QueryRequest (Maybe Bool)-qrPreserveNulls-  = lens _qrPreserveNulls-      (\ s a -> s{_qrPreserveNulls = a})---- | The resource type of the request.-qrKind :: Lens' QueryRequest Text-qrKind = lens _qrKind (\ s a -> s{_qrKind = a})---- | [Experimental] Query parameters for Standard SQL queries.-qrQueryParameters :: Lens' QueryRequest [QueryParameter]-qrQueryParameters-  = lens _qrQueryParameters-      (\ s a -> s{_qrQueryParameters = a})-      . _Default-      . _Coerce---- | [Required] A query string, following the BigQuery query syntax, of the--- query to execute. Example: \"SELECT count(f1) FROM--- [myProjectId:myDatasetId.myTableId]\".-qrQuery :: Lens' QueryRequest (Maybe Text)-qrQuery = lens _qrQuery (\ s a -> s{_qrQuery = a})---- | [Experimental] Standard SQL only. Set to POSITIONAL to use positional--- (?) query parameters or to NAMED to use named (\'myparam) query--- parameters in this query.-qrParameterMode :: Lens' QueryRequest (Maybe Text)-qrParameterMode-  = lens _qrParameterMode-      (\ s a -> s{_qrParameterMode = a})---- | [Optional] How long to wait for the query to complete, in milliseconds,--- before the request times out and returns. Note that this is only a--- timeout for the request, not the query. If the query takes longer to run--- than the timeout value, the call returns without any results and with--- the \'jobComplete\' flag set to false. You can call GetQueryResults() to--- wait for the query to complete and read the results. The default value--- is 10000 milliseconds (10 seconds).-qrTimeoutMs :: Lens' QueryRequest (Maybe Word32)-qrTimeoutMs-  = lens _qrTimeoutMs (\ s a -> s{_qrTimeoutMs = a}) .-      mapping _Coerce---- | Specifies whether to use BigQuery\'s legacy SQL dialect for this query.--- The default value is true. If set to false, the query will use--- BigQuery\'s standard SQL:--- https:\/\/cloud.google.com\/bigquery\/sql-reference\/ When useLegacySql--- is set to false, the values of allowLargeResults and flattenResults are--- ignored; query will be run as if allowLargeResults is true and--- flattenResults is false.-qrUseLegacySQL :: Lens' QueryRequest Bool-qrUseLegacySQL-  = lens _qrUseLegacySQL-      (\ s a -> s{_qrUseLegacySQL = a})---- | [Optional] If set to true, BigQuery doesn\'t run the job. Instead, if--- the query is valid, BigQuery returns statistics about the job such as--- how many bytes would be processed. If the query is invalid, an error--- returns. The default value is false.-qrDryRun :: Lens' QueryRequest (Maybe Bool)-qrDryRun = lens _qrDryRun (\ s a -> s{_qrDryRun = a})---- | [Optional] The maximum number of rows of data to return per page of--- results. Setting this flag to a small value such as 1000 and then paging--- through results might improve reliability when the query result set is--- large. In addition to this limit, responses are also limited to 10 MB.--- By default, there is no maximum row count, and only the byte limit--- applies.-qrMaxResults :: Lens' QueryRequest (Maybe Word32)-qrMaxResults-  = lens _qrMaxResults (\ s a -> s{_qrMaxResults = a})-      . mapping _Coerce---- | [Optional] Specifies the default datasetId and projectId to assume for--- any unqualified table names in the query. If not set, all table names in--- the query string must be qualified in the format \'datasetId.tableId\'.-qrDefaultDataSet :: Lens' QueryRequest (Maybe DataSetReference)-qrDefaultDataSet-  = lens _qrDefaultDataSet-      (\ s a -> s{_qrDefaultDataSet = a})--instance FromJSON QueryRequest where-        parseJSON-          = withObject "QueryRequest"-              (\ o ->-                 QueryRequest' <$>-                   (o .:? "useQueryCache" .!= True) <*>-                     (o .:? "preserveNulls")-                     <*> (o .:? "kind" .!= "bigquery#queryRequest")-                     <*> (o .:? "queryParameters" .!= mempty)-                     <*> (o .:? "query")-                     <*> (o .:? "parameterMode")-                     <*> (o .:? "timeoutMs")-                     <*> (o .:? "useLegacySql" .!= True)-                     <*> (o .:? "dryRun")-                     <*> (o .:? "maxResults")-                     <*> (o .:? "defaultDataset"))--instance ToJSON QueryRequest where-        toJSON QueryRequest'{..}-          = object-              (catMaybes-                 [Just ("useQueryCache" .= _qrUseQueryCache),-                  ("preserveNulls" .=) <$> _qrPreserveNulls,-                  Just ("kind" .= _qrKind),-                  ("queryParameters" .=) <$> _qrQueryParameters,-                  ("query" .=) <$> _qrQuery,-                  ("parameterMode" .=) <$> _qrParameterMode,-                  ("timeoutMs" .=) <$> _qrTimeoutMs,-                  Just ("useLegacySql" .= _qrUseLegacySQL),-                  ("dryRun" .=) <$> _qrDryRun,-                  ("maxResults" .=) <$> _qrMaxResults,-                  ("defaultDataset" .=) <$> _qrDefaultDataSet])------- /See:/ 'queryParameter' smart constructor.-data QueryParameter = QueryParameter'-    { _qpParameterValue :: !(Maybe QueryParameterValue)-    , _qpParameterType  :: !(Maybe QueryParameterType)-    , _qpName           :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'QueryParameter' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'qpParameterValue'------ * 'qpParameterType'------ * 'qpName'-queryParameter-    :: QueryParameter-queryParameter =-    QueryParameter'-    { _qpParameterValue = Nothing-    , _qpParameterType = Nothing-    , _qpName = Nothing-    }---- | [Required] The value of this parameter.-qpParameterValue :: Lens' QueryParameter (Maybe QueryParameterValue)-qpParameterValue-  = lens _qpParameterValue-      (\ s a -> s{_qpParameterValue = a})---- | [Required] The type of this parameter.-qpParameterType :: Lens' QueryParameter (Maybe QueryParameterType)-qpParameterType-  = lens _qpParameterType-      (\ s a -> s{_qpParameterType = a})---- | [Optional] If unset, this is a positional parameter. Otherwise, should--- be unique within a query.-qpName :: Lens' QueryParameter (Maybe Text)-qpName = lens _qpName (\ s a -> s{_qpName = a})--instance FromJSON QueryParameter where-        parseJSON-          = withObject "QueryParameter"-              (\ o ->-                 QueryParameter' <$>-                   (o .:? "parameterValue") <*> (o .:? "parameterType")-                     <*> (o .:? "name"))--instance ToJSON QueryParameter where-        toJSON QueryParameter'{..}-          = object-              (catMaybes-                 [("parameterValue" .=) <$> _qpParameterValue,-                  ("parameterType" .=) <$> _qpParameterType,-                  ("name" .=) <$> _qpName])------- /See:/ 'jobStatistics4' smart constructor.-newtype JobStatistics4 = JobStatistics4'-    { _jsDestinationURIFileCounts :: Maybe [Textual Int64]-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'JobStatistics4' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'jsDestinationURIFileCounts'-jobStatistics4-    :: JobStatistics4-jobStatistics4 =-    JobStatistics4'-    { _jsDestinationURIFileCounts = Nothing-    }---- | [Output-only] Number of files per destination URI or URI pattern--- specified in the extract configuration. These values will be in the same--- order as the URIs specified in the \'destinationUris\' field.-jsDestinationURIFileCounts :: Lens' JobStatistics4 [Int64]-jsDestinationURIFileCounts-  = lens _jsDestinationURIFileCounts-      (\ s a -> s{_jsDestinationURIFileCounts = a})-      . _Default-      . _Coerce--instance FromJSON JobStatistics4 where-        parseJSON-          = withObject "JobStatistics4"-              (\ o ->-                 JobStatistics4' <$>-                   (o .:? "destinationUriFileCounts" .!= mempty))--instance ToJSON JobStatistics4 where-        toJSON JobStatistics4'{..}-          = object-              (catMaybes-                 [("destinationUriFileCounts" .=) <$>-                    _jsDestinationURIFileCounts])------- /See:/ 'projectReference' smart constructor.-newtype ProjectReference = ProjectReference'-    { _prProjectId :: Maybe Text-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'ProjectReference' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'prProjectId'-projectReference-    :: ProjectReference-projectReference =-    ProjectReference'-    { _prProjectId = Nothing-    }---- | [Required] ID of the project. Can be either the numeric ID or the--- assigned ID of the project.-prProjectId :: Lens' ProjectReference (Maybe Text)-prProjectId-  = lens _prProjectId (\ s a -> s{_prProjectId = a})--instance FromJSON ProjectReference where-        parseJSON-          = withObject "ProjectReference"-              (\ o -> ProjectReference' <$> (o .:? "projectId"))--instance ToJSON ProjectReference where-        toJSON ProjectReference'{..}-          = object-              (catMaybes [("projectId" .=) <$> _prProjectId])------- /See:/ 'explainQueryStage' smart constructor.-data ExplainQueryStage = ExplainQueryStage'-    { _eqsStatus          :: !(Maybe Text)-    , _eqsWaitRatioMax    :: !(Maybe (Textual Double))-    , _eqsRecordsWritten  :: !(Maybe (Textual Int64))-    , _eqsSteps           :: !(Maybe [ExplainQueryStep])-    , _eqsWriteRatioAvg   :: !(Maybe (Textual Double))-    , _eqsRecordsRead     :: !(Maybe (Textual Int64))-    , _eqsComputeRatioAvg :: !(Maybe (Textual Double))-    , _eqsName            :: !(Maybe Text)-    , _eqsReadRatioMax    :: !(Maybe (Textual Double))-    , _eqsWaitRatioAvg    :: !(Maybe (Textual Double))-    , _eqsId              :: !(Maybe (Textual Int64))-    , _eqsComputeRatioMax :: !(Maybe (Textual Double))-    , _eqsWriteRatioMax   :: !(Maybe (Textual Double))-    , _eqsReadRatioAvg    :: !(Maybe (Textual Double))-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'ExplainQueryStage' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'eqsStatus'------ * 'eqsWaitRatioMax'------ * 'eqsRecordsWritten'------ * 'eqsSteps'------ * 'eqsWriteRatioAvg'------ * 'eqsRecordsRead'------ * 'eqsComputeRatioAvg'------ * 'eqsName'------ * 'eqsReadRatioMax'------ * 'eqsWaitRatioAvg'------ * 'eqsId'------ * 'eqsComputeRatioMax'------ * 'eqsWriteRatioMax'------ * 'eqsReadRatioAvg'-explainQueryStage-    :: ExplainQueryStage-explainQueryStage =-    ExplainQueryStage'-    { _eqsStatus = Nothing-    , _eqsWaitRatioMax = Nothing-    , _eqsRecordsWritten = Nothing-    , _eqsSteps = Nothing-    , _eqsWriteRatioAvg = Nothing-    , _eqsRecordsRead = Nothing-    , _eqsComputeRatioAvg = Nothing-    , _eqsName = Nothing-    , _eqsReadRatioMax = Nothing-    , _eqsWaitRatioAvg = Nothing-    , _eqsId = Nothing-    , _eqsComputeRatioMax = Nothing-    , _eqsWriteRatioMax = Nothing-    , _eqsReadRatioAvg = Nothing-    }---- | Current status for the stage.-eqsStatus :: Lens' ExplainQueryStage (Maybe Text)-eqsStatus-  = lens _eqsStatus (\ s a -> s{_eqsStatus = a})---- | Relative amount of time the slowest shard spent waiting to be scheduled.-eqsWaitRatioMax :: Lens' ExplainQueryStage (Maybe Double)-eqsWaitRatioMax-  = lens _eqsWaitRatioMax-      (\ s a -> s{_eqsWaitRatioMax = a})-      . mapping _Coerce---- | Number of records written by the stage.-eqsRecordsWritten :: Lens' ExplainQueryStage (Maybe Int64)-eqsRecordsWritten-  = lens _eqsRecordsWritten-      (\ s a -> s{_eqsRecordsWritten = a})-      . mapping _Coerce---- | List of operations within the stage in dependency order (approximately--- chronological).-eqsSteps :: Lens' ExplainQueryStage [ExplainQueryStep]-eqsSteps-  = lens _eqsSteps (\ s a -> s{_eqsSteps = a}) .-      _Default-      . _Coerce---- | Relative amount of time the average shard spent on writing output.-eqsWriteRatioAvg :: Lens' ExplainQueryStage (Maybe Double)-eqsWriteRatioAvg-  = lens _eqsWriteRatioAvg-      (\ s a -> s{_eqsWriteRatioAvg = a})-      . mapping _Coerce---- | Number of records read into the stage.-eqsRecordsRead :: Lens' ExplainQueryStage (Maybe Int64)-eqsRecordsRead-  = lens _eqsRecordsRead-      (\ s a -> s{_eqsRecordsRead = a})-      . mapping _Coerce---- | Relative amount of time the average shard spent on CPU-bound tasks.-eqsComputeRatioAvg :: Lens' ExplainQueryStage (Maybe Double)-eqsComputeRatioAvg-  = lens _eqsComputeRatioAvg-      (\ s a -> s{_eqsComputeRatioAvg = a})-      . mapping _Coerce---- | Human-readable name for stage.-eqsName :: Lens' ExplainQueryStage (Maybe Text)-eqsName = lens _eqsName (\ s a -> s{_eqsName = a})---- | Relative amount of time the slowest shard spent reading input.-eqsReadRatioMax :: Lens' ExplainQueryStage (Maybe Double)-eqsReadRatioMax-  = lens _eqsReadRatioMax-      (\ s a -> s{_eqsReadRatioMax = a})-      . mapping _Coerce---- | Relative amount of time the average shard spent waiting to be scheduled.-eqsWaitRatioAvg :: Lens' ExplainQueryStage (Maybe Double)-eqsWaitRatioAvg-  = lens _eqsWaitRatioAvg-      (\ s a -> s{_eqsWaitRatioAvg = a})-      . mapping _Coerce---- | Unique ID for stage within plan.-eqsId :: Lens' ExplainQueryStage (Maybe Int64)-eqsId-  = lens _eqsId (\ s a -> s{_eqsId = a}) .-      mapping _Coerce---- | Relative amount of time the slowest shard spent on CPU-bound tasks.-eqsComputeRatioMax :: Lens' ExplainQueryStage (Maybe Double)-eqsComputeRatioMax-  = lens _eqsComputeRatioMax-      (\ s a -> s{_eqsComputeRatioMax = a})-      . mapping _Coerce---- | Relative amount of time the slowest shard spent on writing output.-eqsWriteRatioMax :: Lens' ExplainQueryStage (Maybe Double)-eqsWriteRatioMax-  = lens _eqsWriteRatioMax-      (\ s a -> s{_eqsWriteRatioMax = a})-      . mapping _Coerce---- | Relative amount of time the average shard spent reading input.-eqsReadRatioAvg :: Lens' ExplainQueryStage (Maybe Double)-eqsReadRatioAvg-  = lens _eqsReadRatioAvg-      (\ s a -> s{_eqsReadRatioAvg = a})-      . mapping _Coerce--instance FromJSON ExplainQueryStage where-        parseJSON-          = withObject "ExplainQueryStage"-              (\ o ->-                 ExplainQueryStage' <$>-                   (o .:? "status") <*> (o .:? "waitRatioMax") <*>-                     (o .:? "recordsWritten")-                     <*> (o .:? "steps" .!= mempty)-                     <*> (o .:? "writeRatioAvg")-                     <*> (o .:? "recordsRead")-                     <*> (o .:? "computeRatioAvg")-                     <*> (o .:? "name")-                     <*> (o .:? "readRatioMax")-                     <*> (o .:? "waitRatioAvg")-                     <*> (o .:? "id")-                     <*> (o .:? "computeRatioMax")-                     <*> (o .:? "writeRatioMax")-                     <*> (o .:? "readRatioAvg"))--instance ToJSON ExplainQueryStage where-        toJSON ExplainQueryStage'{..}-          = object-              (catMaybes-                 [("status" .=) <$> _eqsStatus,-                  ("waitRatioMax" .=) <$> _eqsWaitRatioMax,-                  ("recordsWritten" .=) <$> _eqsRecordsWritten,-                  ("steps" .=) <$> _eqsSteps,-                  ("writeRatioAvg" .=) <$> _eqsWriteRatioAvg,-                  ("recordsRead" .=) <$> _eqsRecordsRead,-                  ("computeRatioAvg" .=) <$> _eqsComputeRatioAvg,-                  ("name" .=) <$> _eqsName,-                  ("readRatioMax" .=) <$> _eqsReadRatioMax,-                  ("waitRatioAvg" .=) <$> _eqsWaitRatioAvg,-                  ("id" .=) <$> _eqsId,-                  ("computeRatioMax" .=) <$> _eqsComputeRatioMax,-                  ("writeRatioMax" .=) <$> _eqsWriteRatioMax,-                  ("readRatioAvg" .=) <$> _eqsReadRatioAvg])------- /See:/ 'jobConfigurationLoad' smart constructor.-data JobConfigurationLoad = JobConfigurationLoad'-    { _jclSkipLeadingRows     :: !(Maybe (Textual Int32))-    , _jclProjectionFields    :: !(Maybe [Text])-    , _jclDestinationTable    :: !(Maybe TableReference)-    , _jclWriteDisPosition    :: !(Maybe Text)-    , _jclAllowJaggedRows     :: !(Maybe Bool)-    , _jclSchemaInline        :: !(Maybe Text)-    , _jclIgnoreUnknownValues :: !(Maybe Bool)-    , _jclSchemaUpdateOptions :: !(Maybe [Text])-    , _jclCreateDisPosition   :: !(Maybe Text)-    , _jclSchemaInlineFormat  :: !(Maybe Text)-    , _jclAllowQuotedNewlines :: !(Maybe Bool)-    , _jclSourceFormat        :: !(Maybe Text)-    , _jclSchema              :: !(Maybe TableSchema)-    , _jclQuote               :: !(Maybe Text)-    , _jclMaxBadRecords       :: !(Maybe (Textual Int32))-    , _jclAutodetect          :: !(Maybe Bool)-    , _jclSourceURIs          :: !(Maybe [Text])-    , _jclEncoding            :: !(Maybe Text)-    , _jclFieldDelimiter      :: !(Maybe Text)-    , _jclNullMarker          :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'JobConfigurationLoad' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'jclSkipLeadingRows'------ * 'jclProjectionFields'------ * 'jclDestinationTable'------ * 'jclWriteDisPosition'------ * 'jclAllowJaggedRows'------ * 'jclSchemaInline'------ * 'jclIgnoreUnknownValues'------ * 'jclSchemaUpdateOptions'------ * 'jclCreateDisPosition'------ * 'jclSchemaInlineFormat'------ * 'jclAllowQuotedNewlines'------ * 'jclSourceFormat'------ * 'jclSchema'------ * 'jclQuote'------ * 'jclMaxBadRecords'------ * 'jclAutodetect'------ * 'jclSourceURIs'------ * 'jclEncoding'------ * 'jclFieldDelimiter'------ * 'jclNullMarker'-jobConfigurationLoad-    :: JobConfigurationLoad-jobConfigurationLoad =-    JobConfigurationLoad'-    { _jclSkipLeadingRows = Nothing-    , _jclProjectionFields = Nothing-    , _jclDestinationTable = Nothing-    , _jclWriteDisPosition = Nothing-    , _jclAllowJaggedRows = Nothing-    , _jclSchemaInline = Nothing-    , _jclIgnoreUnknownValues = Nothing-    , _jclSchemaUpdateOptions = Nothing-    , _jclCreateDisPosition = Nothing-    , _jclSchemaInlineFormat = Nothing-    , _jclAllowQuotedNewlines = Nothing-    , _jclSourceFormat = Nothing-    , _jclSchema = Nothing-    , _jclQuote = Nothing-    , _jclMaxBadRecords = Nothing-    , _jclAutodetect = Nothing-    , _jclSourceURIs = Nothing-    , _jclEncoding = Nothing-    , _jclFieldDelimiter = Nothing-    , _jclNullMarker = Nothing-    }---- | [Optional] The number of rows at the top of a CSV file that BigQuery--- will skip when loading the data. The default value is 0. This property--- is useful if you have header rows in the file that should be skipped.-jclSkipLeadingRows :: Lens' JobConfigurationLoad (Maybe Int32)-jclSkipLeadingRows-  = lens _jclSkipLeadingRows-      (\ s a -> s{_jclSkipLeadingRows = a})-      . mapping _Coerce---- | [Experimental] If sourceFormat is set to \"DATASTORE_BACKUP\", indicates--- which entity properties to load into BigQuery from a Cloud Datastore--- backup. Property names are case sensitive and must be top-level--- properties. If no properties are specified, BigQuery loads all--- properties. If any named property isn\'t found in the Cloud Datastore--- backup, an invalid error is returned in the job result.-jclProjectionFields :: Lens' JobConfigurationLoad [Text]-jclProjectionFields-  = lens _jclProjectionFields-      (\ s a -> s{_jclProjectionFields = a})-      . _Default-      . _Coerce---- | [Required] The destination table to load the data into.-jclDestinationTable :: Lens' JobConfigurationLoad (Maybe TableReference)-jclDestinationTable-  = lens _jclDestinationTable-      (\ s a -> s{_jclDestinationTable = a})---- | [Optional] Specifies the action that occurs if the destination table--- already exists. The following values are supported: WRITE_TRUNCATE: If--- the table already exists, BigQuery overwrites the table data.--- WRITE_APPEND: If the table already exists, BigQuery appends the data to--- the table. WRITE_EMPTY: If the table already exists and contains data, a--- \'duplicate\' error is returned in the job result. The default value is--- WRITE_APPEND. Each action is atomic and only occurs if BigQuery is able--- to complete the job successfully. Creation, truncation and append--- actions occur as one atomic update upon job completion.-jclWriteDisPosition :: Lens' JobConfigurationLoad (Maybe Text)-jclWriteDisPosition-  = lens _jclWriteDisPosition-      (\ s a -> s{_jclWriteDisPosition = a})---- | [Optional] Accept rows that are missing trailing optional columns. The--- missing values are treated as nulls. If false, records with missing--- trailing columns are treated as bad records, and if there are too many--- bad records, an invalid error is returned in the job result. The default--- value is false. Only applicable to CSV, ignored for other formats.-jclAllowJaggedRows :: Lens' JobConfigurationLoad (Maybe Bool)-jclAllowJaggedRows-  = lens _jclAllowJaggedRows-      (\ s a -> s{_jclAllowJaggedRows = a})---- | [Deprecated] The inline schema. For CSV schemas, specify as--- \"Field1:Type1[,Field2:Type2]*\". For example, \"foo:STRING,--- bar:INTEGER, baz:FLOAT\".-jclSchemaInline :: Lens' JobConfigurationLoad (Maybe Text)-jclSchemaInline-  = lens _jclSchemaInline-      (\ s a -> s{_jclSchemaInline = a})---- | [Optional] Indicates if BigQuery should allow extra values that are not--- represented in the table schema. If true, the extra values are ignored.--- If false, records with extra columns are treated as bad records, and if--- there are too many bad records, an invalid error is returned in the job--- result. The default value is false. The sourceFormat property determines--- what BigQuery treats as an extra value: CSV: Trailing columns JSON:--- Named values that don\'t match any column names-jclIgnoreUnknownValues :: Lens' JobConfigurationLoad (Maybe Bool)-jclIgnoreUnknownValues-  = lens _jclIgnoreUnknownValues-      (\ s a -> s{_jclIgnoreUnknownValues = a})---- | [Experimental] Allows the schema of the desitination table to be updated--- as a side effect of the load job. Schema update options are supported in--- two cases: when writeDisposition is WRITE_APPEND; when writeDisposition--- is WRITE_TRUNCATE and the destination table is a partition of a table,--- specified by partition decorators. For normal tables, WRITE_TRUNCATE--- will always overwrite the schema. One or more of the following values--- are specified: ALLOW_FIELD_ADDITION: allow adding a nullable field to--- the schema. ALLOW_FIELD_RELAXATION: allow relaxing a required field in--- the original schema to nullable.-jclSchemaUpdateOptions :: Lens' JobConfigurationLoad [Text]-jclSchemaUpdateOptions-  = lens _jclSchemaUpdateOptions-      (\ s a -> s{_jclSchemaUpdateOptions = a})-      . _Default-      . _Coerce---- | [Optional] Specifies whether the job is allowed to create new tables.--- The following values are supported: CREATE_IF_NEEDED: If the table does--- not exist, BigQuery creates the table. CREATE_NEVER: The table must--- already exist. If it does not, a \'notFound\' error is returned in the--- job result. The default value is CREATE_IF_NEEDED. Creation, truncation--- and append actions occur as one atomic update upon job completion.-jclCreateDisPosition :: Lens' JobConfigurationLoad (Maybe Text)-jclCreateDisPosition-  = lens _jclCreateDisPosition-      (\ s a -> s{_jclCreateDisPosition = a})---- | [Deprecated] The format of the schemaInline property.-jclSchemaInlineFormat :: Lens' JobConfigurationLoad (Maybe Text)-jclSchemaInlineFormat-  = lens _jclSchemaInlineFormat-      (\ s a -> s{_jclSchemaInlineFormat = a})---- | Indicates if BigQuery should allow quoted data sections that contain--- newline characters in a CSV file. The default value is false.-jclAllowQuotedNewlines :: Lens' JobConfigurationLoad (Maybe Bool)-jclAllowQuotedNewlines-  = lens _jclAllowQuotedNewlines-      (\ s a -> s{_jclAllowQuotedNewlines = a})---- | [Optional] The format of the data files. For CSV files, specify \"CSV\".--- For datastore backups, specify \"DATASTORE_BACKUP\". For--- newline-delimited JSON, specify \"NEWLINE_DELIMITED_JSON\". For Avro,--- specify \"AVRO\". The default value is CSV.-jclSourceFormat :: Lens' JobConfigurationLoad (Maybe Text)-jclSourceFormat-  = lens _jclSourceFormat-      (\ s a -> s{_jclSourceFormat = a})---- | [Optional] The schema for the destination table. The schema can be--- omitted if the destination table already exists, or if you\'re loading--- data from Google Cloud Datastore.-jclSchema :: Lens' JobConfigurationLoad (Maybe TableSchema)-jclSchema-  = lens _jclSchema (\ s a -> s{_jclSchema = a})---- | [Optional] The value that is used to quote data sections in a CSV file.--- BigQuery converts the string to ISO-8859-1 encoding, and then uses the--- first byte of the encoded string to split the data in its raw, binary--- state. The default value is a double-quote (\'\"\'). If your data does--- not contain quoted sections, set the property value to an empty string.--- If your data contains quoted newline characters, you must also set the--- allowQuotedNewlines property to true.-jclQuote :: Lens' JobConfigurationLoad (Maybe Text)-jclQuote = lens _jclQuote (\ s a -> s{_jclQuote = a})---- | [Optional] The maximum number of bad records that BigQuery can ignore--- when running the job. If the number of bad records exceeds this value,--- an invalid error is returned in the job result. The default value is 0,--- which requires that all records are valid.-jclMaxBadRecords :: Lens' JobConfigurationLoad (Maybe Int32)-jclMaxBadRecords-  = lens _jclMaxBadRecords-      (\ s a -> s{_jclMaxBadRecords = a})-      . mapping _Coerce---- | [Experimental] Indicates if we should automatically infer the options--- and schema for CSV and JSON sources.-jclAutodetect :: Lens' JobConfigurationLoad (Maybe Bool)-jclAutodetect-  = lens _jclAutodetect-      (\ s a -> s{_jclAutodetect = a})---- | [Required] The fully-qualified URIs that point to your data in Google--- Cloud Storage. Each URI can contain one \'*\' wildcard character and it--- must come after the \'bucket\' name.-jclSourceURIs :: Lens' JobConfigurationLoad [Text]-jclSourceURIs-  = lens _jclSourceURIs-      (\ s a -> s{_jclSourceURIs = a})-      . _Default-      . _Coerce---- | [Optional] The character encoding of the data. The supported values are--- UTF-8 or ISO-8859-1. The default value is UTF-8. BigQuery decodes the--- data after the raw, binary data has been split using the values of the--- quote and fieldDelimiter properties.-jclEncoding :: Lens' JobConfigurationLoad (Maybe Text)-jclEncoding-  = lens _jclEncoding (\ s a -> s{_jclEncoding = a})---- | [Optional] The separator for fields in a CSV file. The separator can be--- any ISO-8859-1 single-byte character. To use a character in the range--- 128-255, you must encode the character as UTF8. BigQuery converts the--- string to ISO-8859-1 encoding, and then uses the first byte of the--- encoded string to split the data in its raw, binary state. BigQuery also--- supports the escape sequence \"\\t\" to specify a tab separator. The--- default value is a comma (\',\').-jclFieldDelimiter :: Lens' JobConfigurationLoad (Maybe Text)-jclFieldDelimiter-  = lens _jclFieldDelimiter-      (\ s a -> s{_jclFieldDelimiter = a})---- | [Optional] Specifies a string that represents a null value in a CSV--- file. For example, if you specify \"\\N\", BigQuery interprets \"\\N\"--- as a null value when loading a CSV file. The default value is the empty--- string. If you set this property to a custom value, BigQuery still--- interprets the empty string as a null value for all data types except--- for STRING and BYTE. For STRING and BYTE columns, BigQuery interprets--- the empty string as an empty value.-jclNullMarker :: Lens' JobConfigurationLoad (Maybe Text)-jclNullMarker-  = lens _jclNullMarker-      (\ s a -> s{_jclNullMarker = a})--instance FromJSON JobConfigurationLoad where-        parseJSON-          = withObject "JobConfigurationLoad"-              (\ o ->-                 JobConfigurationLoad' <$>-                   (o .:? "skipLeadingRows") <*>-                     (o .:? "projectionFields" .!= mempty)-                     <*> (o .:? "destinationTable")-                     <*> (o .:? "writeDisposition")-                     <*> (o .:? "allowJaggedRows")-                     <*> (o .:? "schemaInline")-                     <*> (o .:? "ignoreUnknownValues")-                     <*> (o .:? "schemaUpdateOptions" .!= mempty)-                     <*> (o .:? "createDisposition")-                     <*> (o .:? "schemaInlineFormat")-                     <*> (o .:? "allowQuotedNewlines")-                     <*> (o .:? "sourceFormat")-                     <*> (o .:? "schema")-                     <*> (o .:? "quote")-                     <*> (o .:? "maxBadRecords")-                     <*> (o .:? "autodetect")-                     <*> (o .:? "sourceUris" .!= mempty)-                     <*> (o .:? "encoding")-                     <*> (o .:? "fieldDelimiter")-                     <*> (o .:? "nullMarker"))--instance ToJSON JobConfigurationLoad where-        toJSON JobConfigurationLoad'{..}-          = object-              (catMaybes-                 [("skipLeadingRows" .=) <$> _jclSkipLeadingRows,-                  ("projectionFields" .=) <$> _jclProjectionFields,-                  ("destinationTable" .=) <$> _jclDestinationTable,-                  ("writeDisposition" .=) <$> _jclWriteDisPosition,-                  ("allowJaggedRows" .=) <$> _jclAllowJaggedRows,-                  ("schemaInline" .=) <$> _jclSchemaInline,-                  ("ignoreUnknownValues" .=) <$>-                    _jclIgnoreUnknownValues,-                  ("schemaUpdateOptions" .=) <$>-                    _jclSchemaUpdateOptions,-                  ("createDisposition" .=) <$> _jclCreateDisPosition,-                  ("schemaInlineFormat" .=) <$> _jclSchemaInlineFormat,-                  ("allowQuotedNewlines" .=) <$>-                    _jclAllowQuotedNewlines,-                  ("sourceFormat" .=) <$> _jclSourceFormat,-                  ("schema" .=) <$> _jclSchema,-                  ("quote" .=) <$> _jclQuote,-                  ("maxBadRecords" .=) <$> _jclMaxBadRecords,-                  ("autodetect" .=) <$> _jclAutodetect,-                  ("sourceUris" .=) <$> _jclSourceURIs,-                  ("encoding" .=) <$> _jclEncoding,-                  ("fieldDelimiter" .=) <$> _jclFieldDelimiter,-                  ("nullMarker" .=) <$> _jclNullMarker])------- /See:/ 'dataSetReference' smart constructor.-data DataSetReference = DataSetReference'-    { _dsrDataSetId :: !(Maybe Text)-    , _dsrProjectId :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'DataSetReference' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'dsrDataSetId'------ * 'dsrProjectId'-dataSetReference-    :: DataSetReference-dataSetReference =-    DataSetReference'-    { _dsrDataSetId = Nothing-    , _dsrProjectId = Nothing-    }---- | [Required] A unique ID for this dataset, without the project name. The--- ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores--- (_). The maximum length is 1,024 characters.-dsrDataSetId :: Lens' DataSetReference (Maybe Text)-dsrDataSetId-  = lens _dsrDataSetId (\ s a -> s{_dsrDataSetId = a})---- | [Optional] The ID of the project containing this dataset.-dsrProjectId :: Lens' DataSetReference (Maybe Text)-dsrProjectId-  = lens _dsrProjectId (\ s a -> s{_dsrProjectId = a})--instance FromJSON DataSetReference where-        parseJSON-          = withObject "DataSetReference"-              (\ o ->-                 DataSetReference' <$>-                   (o .:? "datasetId") <*> (o .:? "projectId"))--instance ToJSON DataSetReference where-        toJSON DataSetReference'{..}-          = object-              (catMaybes-                 [("datasetId" .=) <$> _dsrDataSetId,-                  ("projectId" .=) <$> _dsrProjectId])------- /See:/ 'tableDataInsertAllRequest' smart constructor.-data TableDataInsertAllRequest = TableDataInsertAllRequest'-    { _tdiarKind                :: !Text-    , _tdiarIgnoreUnknownValues :: !(Maybe Bool)-    , _tdiarRows                :: !(Maybe [TableDataInsertAllRequestRowsItem])-    , _tdiarTemplateSuffix      :: !(Maybe Text)-    , _tdiarSkipInvalidRows     :: !(Maybe Bool)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'TableDataInsertAllRequest' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'tdiarKind'------ * 'tdiarIgnoreUnknownValues'------ * 'tdiarRows'------ * 'tdiarTemplateSuffix'------ * 'tdiarSkipInvalidRows'-tableDataInsertAllRequest-    :: TableDataInsertAllRequest-tableDataInsertAllRequest =-    TableDataInsertAllRequest'-    { _tdiarKind = "bigquery#tableDataInsertAllRequest"-    , _tdiarIgnoreUnknownValues = Nothing-    , _tdiarRows = Nothing-    , _tdiarTemplateSuffix = Nothing-    , _tdiarSkipInvalidRows = Nothing-    }---- | The resource type of the response.-tdiarKind :: Lens' TableDataInsertAllRequest Text-tdiarKind-  = lens _tdiarKind (\ s a -> s{_tdiarKind = a})---- | [Optional] Accept rows that contain values that do not match the schema.--- The unknown values are ignored. Default is false, which treats unknown--- values as errors.-tdiarIgnoreUnknownValues :: Lens' TableDataInsertAllRequest (Maybe Bool)-tdiarIgnoreUnknownValues-  = lens _tdiarIgnoreUnknownValues-      (\ s a -> s{_tdiarIgnoreUnknownValues = a})---- | The rows to insert.-tdiarRows :: Lens' TableDataInsertAllRequest [TableDataInsertAllRequestRowsItem]-tdiarRows-  = lens _tdiarRows (\ s a -> s{_tdiarRows = a}) .-      _Default-      . _Coerce---- | [Experimental] If specified, treats the destination table as a base--- template, and inserts the rows into an instance table named--- \"{destination}{templateSuffix}\". BigQuery will manage creation of the--- instance table, using the schema of the base template table. See--- https:\/\/cloud.google.com\/bigquery\/streaming-data-into-bigquery#template-tables--- for considerations when working with templates tables.-tdiarTemplateSuffix :: Lens' TableDataInsertAllRequest (Maybe Text)-tdiarTemplateSuffix-  = lens _tdiarTemplateSuffix-      (\ s a -> s{_tdiarTemplateSuffix = a})---- | [Optional] Insert all valid rows of a request, even if invalid rows--- exist. The default value is false, which causes the entire request to--- fail if any invalid rows exist.-tdiarSkipInvalidRows :: Lens' TableDataInsertAllRequest (Maybe Bool)-tdiarSkipInvalidRows-  = lens _tdiarSkipInvalidRows-      (\ s a -> s{_tdiarSkipInvalidRows = a})--instance FromJSON TableDataInsertAllRequest where-        parseJSON-          = withObject "TableDataInsertAllRequest"-              (\ o ->-                 TableDataInsertAllRequest' <$>-                   (o .:? "kind" .!=-                      "bigquery#tableDataInsertAllRequest")-                     <*> (o .:? "ignoreUnknownValues")-                     <*> (o .:? "rows" .!= mempty)-                     <*> (o .:? "templateSuffix")-                     <*> (o .:? "skipInvalidRows"))--instance ToJSON TableDataInsertAllRequest where-        toJSON TableDataInsertAllRequest'{..}-          = object-              (catMaybes-                 [Just ("kind" .= _tdiarKind),-                  ("ignoreUnknownValues" .=) <$>-                    _tdiarIgnoreUnknownValues,-                  ("rows" .=) <$> _tdiarRows,-                  ("templateSuffix" .=) <$> _tdiarTemplateSuffix,-                  ("skipInvalidRows" .=) <$> _tdiarSkipInvalidRows])------- /See:/ 'projectListProjectsItem' smart constructor.-data ProjectListProjectsItem = ProjectListProjectsItem'-    { _plpiFriendlyName     :: !(Maybe Text)-    , _plpiKind             :: !Text-    , _plpiProjectReference :: !(Maybe ProjectReference)-    , _plpiId               :: !(Maybe Text)-    , _plpiNumericId        :: !(Maybe (Textual Word64))-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'ProjectListProjectsItem' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'plpiFriendlyName'------ * 'plpiKind'------ * 'plpiProjectReference'------ * 'plpiId'------ * 'plpiNumericId'-projectListProjectsItem-    :: ProjectListProjectsItem-projectListProjectsItem =-    ProjectListProjectsItem'-    { _plpiFriendlyName = Nothing-    , _plpiKind = "bigquery#project"-    , _plpiProjectReference = Nothing-    , _plpiId = Nothing-    , _plpiNumericId = Nothing-    }---- | A descriptive name for this project.-plpiFriendlyName :: Lens' ProjectListProjectsItem (Maybe Text)-plpiFriendlyName-  = lens _plpiFriendlyName-      (\ s a -> s{_plpiFriendlyName = a})---- | The resource type.-plpiKind :: Lens' ProjectListProjectsItem Text-plpiKind = lens _plpiKind (\ s a -> s{_plpiKind = a})---- | A unique reference to this project.-plpiProjectReference :: Lens' ProjectListProjectsItem (Maybe ProjectReference)-plpiProjectReference-  = lens _plpiProjectReference-      (\ s a -> s{_plpiProjectReference = a})---- | An opaque ID of this project.-plpiId :: Lens' ProjectListProjectsItem (Maybe Text)-plpiId = lens _plpiId (\ s a -> s{_plpiId = a})---- | The numeric ID of this project.-plpiNumericId :: Lens' ProjectListProjectsItem (Maybe Word64)-plpiNumericId-  = lens _plpiNumericId-      (\ s a -> s{_plpiNumericId = a})-      . mapping _Coerce--instance FromJSON ProjectListProjectsItem where-        parseJSON-          = withObject "ProjectListProjectsItem"-              (\ o ->-                 ProjectListProjectsItem' <$>-                   (o .:? "friendlyName") <*>-                     (o .:? "kind" .!= "bigquery#project")-                     <*> (o .:? "projectReference")-                     <*> (o .:? "id")-                     <*> (o .:? "numericId"))--instance ToJSON ProjectListProjectsItem where-        toJSON ProjectListProjectsItem'{..}-          = object-              (catMaybes-                 [("friendlyName" .=) <$> _plpiFriendlyName,-                  Just ("kind" .= _plpiKind),-                  ("projectReference" .=) <$> _plpiProjectReference,-                  ("id" .=) <$> _plpiId,-                  ("numericId" .=) <$> _plpiNumericId])------- /See:/ 'bigtableColumn' smart constructor.-data BigtableColumn = BigtableColumn'-    { _bcQualifierEncoded :: !(Maybe Bytes)-    , _bcFieldName        :: !(Maybe Text)-    , _bcQualifierString  :: !(Maybe Text)-    , _bcOnlyReadLatest   :: !(Maybe Bool)-    , _bcType             :: !(Maybe Text)-    , _bcEncoding         :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'BigtableColumn' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'bcQualifierEncoded'------ * 'bcFieldName'------ * 'bcQualifierString'------ * 'bcOnlyReadLatest'------ * 'bcType'------ * 'bcEncoding'-bigtableColumn-    :: BigtableColumn-bigtableColumn =-    BigtableColumn'-    { _bcQualifierEncoded = Nothing-    , _bcFieldName = Nothing-    , _bcQualifierString = Nothing-    , _bcOnlyReadLatest = Nothing-    , _bcType = Nothing-    , _bcEncoding = Nothing-    }---- | [Required] Qualifier of the column. Columns in the parent column family--- that has this exact qualifier are exposed as . field. If the qualifier--- is valid UTF-8 string, it can be specified in the qualifier_string--- field. Otherwise, a base-64 encoded value must be set to--- qualifier_encoded. The column field name is the same as the column--- qualifier. However, if the qualifier is not a valid BigQuery field--- identifier i.e. does not match [a-zA-Z][a-zA-Z0-9_]*, a valid identifier--- must be provided as field_name.-bcQualifierEncoded :: Lens' BigtableColumn (Maybe ByteString)-bcQualifierEncoded-  = lens _bcQualifierEncoded-      (\ s a -> s{_bcQualifierEncoded = a})-      . mapping _Bytes---- | [Optional] If the qualifier is not a valid BigQuery field identifier--- i.e. does not match [a-zA-Z][a-zA-Z0-9_]*, a valid identifier must be--- provided as the column field name and is used as field name in queries.-bcFieldName :: Lens' BigtableColumn (Maybe Text)-bcFieldName-  = lens _bcFieldName (\ s a -> s{_bcFieldName = a})--bcQualifierString :: Lens' BigtableColumn (Maybe Text)-bcQualifierString-  = lens _bcQualifierString-      (\ s a -> s{_bcQualifierString = a})---- | [Optional] If this is set, only the latest version of value in this--- column are exposed. \'onlyReadLatest\' can also be set at the column--- family level. However, the setting at this level takes precedence if--- \'onlyReadLatest\' is set at both levels.-bcOnlyReadLatest :: Lens' BigtableColumn (Maybe Bool)-bcOnlyReadLatest-  = lens _bcOnlyReadLatest-      (\ s a -> s{_bcOnlyReadLatest = a})---- | [Optional] The type to convert the value in cells of this column. The--- values are expected to be encoded using HBase Bytes.toBytes function--- when using the BINARY encoding value. Following BigQuery types are--- allowed (case-sensitive) - BYTES STRING INTEGER FLOAT BOOLEAN Default--- type is BYTES. \'type\' can also be set at the column family level.--- However, the setting at this level takes precedence if \'type\' is set--- at both levels.-bcType :: Lens' BigtableColumn (Maybe Text)-bcType = lens _bcType (\ s a -> s{_bcType = a})---- | [Optional] The encoding of the values when the type is not STRING.--- Acceptable encoding values are: TEXT - indicates values are alphanumeric--- text strings. BINARY - indicates values are encoded using HBase--- Bytes.toBytes family of functions. \'encoding\' can also be set at the--- column family level. However, the setting at this level takes precedence--- if \'encoding\' is set at both levels.-bcEncoding :: Lens' BigtableColumn (Maybe Text)-bcEncoding-  = lens _bcEncoding (\ s a -> s{_bcEncoding = a})--instance FromJSON BigtableColumn where-        parseJSON-          = withObject "BigtableColumn"-              (\ o ->-                 BigtableColumn' <$>-                   (o .:? "qualifierEncoded") <*> (o .:? "fieldName")-                     <*> (o .:? "qualifierString")-                     <*> (o .:? "onlyReadLatest")-                     <*> (o .:? "type")-                     <*> (o .:? "encoding"))--instance ToJSON BigtableColumn where-        toJSON BigtableColumn'{..}-          = object-              (catMaybes-                 [("qualifierEncoded" .=) <$> _bcQualifierEncoded,-                  ("fieldName" .=) <$> _bcFieldName,-                  ("qualifierString" .=) <$> _bcQualifierString,-                  ("onlyReadLatest" .=) <$> _bcOnlyReadLatest,-                  ("type" .=) <$> _bcType,-                  ("encoding" .=) <$> _bcEncoding])------- /See:/ 'streamingbuffer' smart constructor.-data Streamingbuffer = Streamingbuffer'-    { _sEstimatedBytes  :: !(Maybe (Textual Word64))-    , _sOldestEntryTime :: !(Maybe (Textual Word64))-    , _sEstimatedRows   :: !(Maybe (Textual Word64))-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'Streamingbuffer' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sEstimatedBytes'------ * 'sOldestEntryTime'------ * 'sEstimatedRows'-streamingbuffer-    :: Streamingbuffer-streamingbuffer =-    Streamingbuffer'-    { _sEstimatedBytes = Nothing-    , _sOldestEntryTime = Nothing-    , _sEstimatedRows = Nothing-    }---- | [Output-only] A lower-bound estimate of the number of bytes currently in--- the streaming buffer.-sEstimatedBytes :: Lens' Streamingbuffer (Maybe Word64)-sEstimatedBytes-  = lens _sEstimatedBytes-      (\ s a -> s{_sEstimatedBytes = a})-      . mapping _Coerce---- | [Output-only] Contains the timestamp of the oldest entry in the--- streaming buffer, in milliseconds since the epoch, if the streaming--- buffer is available.-sOldestEntryTime :: Lens' Streamingbuffer (Maybe Word64)-sOldestEntryTime-  = lens _sOldestEntryTime-      (\ s a -> s{_sOldestEntryTime = a})-      . mapping _Coerce---- | [Output-only] A lower-bound estimate of the number of rows currently in--- the streaming buffer.-sEstimatedRows :: Lens' Streamingbuffer (Maybe Word64)-sEstimatedRows-  = lens _sEstimatedRows-      (\ s a -> s{_sEstimatedRows = a})-      . mapping _Coerce--instance FromJSON Streamingbuffer where-        parseJSON-          = withObject "Streamingbuffer"-              (\ o ->-                 Streamingbuffer' <$>-                   (o .:? "estimatedBytes") <*>-                     (o .:? "oldestEntryTime")-                     <*> (o .:? "estimatedRows"))--instance ToJSON Streamingbuffer where-        toJSON Streamingbuffer'{..}-          = object-              (catMaybes-                 [("estimatedBytes" .=) <$> _sEstimatedBytes,-                  ("oldestEntryTime" .=) <$> _sOldestEntryTime,-                  ("estimatedRows" .=) <$> _sEstimatedRows])------- /See:/ 'tableRow' smart constructor.-newtype TableRow = TableRow'-    { _trF :: Maybe [TableCell]-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'TableRow' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'trF'-tableRow-    :: TableRow-tableRow =-    TableRow'-    { _trF = Nothing-    }---- | Represents a single row in the result set, consisting of one or more--- fields.-trF :: Lens' TableRow [TableCell]-trF-  = lens _trF (\ s a -> s{_trF = a}) . _Default .-      _Coerce--instance FromJSON TableRow where-        parseJSON-          = withObject "TableRow"-              (\ o -> TableRow' <$> (o .:? "f" .!= mempty))--instance ToJSON TableRow where-        toJSON TableRow'{..}-          = object (catMaybes [("f" .=) <$> _trF])------- /See:/ 'jobListJobsItem' smart constructor.-data JobListJobsItem = JobListJobsItem'-    { _jljiJobReference  :: !(Maybe JobReference)-    , _jljiStatus        :: !(Maybe JobStatus)-    , _jljiState         :: !(Maybe Text)-    , _jljiUserEmail     :: !(Maybe Text)-    , _jljiKind          :: !Text-    , _jljiErrorResult   :: !(Maybe ErrorProto)-    , _jljiId            :: !(Maybe Text)-    , _jljiStatistics    :: !(Maybe JobStatistics)-    , _jljiConfiguration :: !(Maybe JobConfiguration)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'JobListJobsItem' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'jljiJobReference'------ * 'jljiStatus'------ * 'jljiState'------ * 'jljiUserEmail'------ * 'jljiKind'------ * 'jljiErrorResult'------ * 'jljiId'------ * 'jljiStatistics'------ * 'jljiConfiguration'-jobListJobsItem-    :: JobListJobsItem-jobListJobsItem =-    JobListJobsItem'-    { _jljiJobReference = Nothing-    , _jljiStatus = Nothing-    , _jljiState = Nothing-    , _jljiUserEmail = Nothing-    , _jljiKind = "bigquery#job"-    , _jljiErrorResult = Nothing-    , _jljiId = Nothing-    , _jljiStatistics = Nothing-    , _jljiConfiguration = Nothing-    }---- | Job reference uniquely identifying the job.-jljiJobReference :: Lens' JobListJobsItem (Maybe JobReference)-jljiJobReference-  = lens _jljiJobReference-      (\ s a -> s{_jljiJobReference = a})---- | [Full-projection-only] Describes the state of the job.-jljiStatus :: Lens' JobListJobsItem (Maybe JobStatus)-jljiStatus-  = lens _jljiStatus (\ s a -> s{_jljiStatus = a})---- | Running state of the job. When the state is DONE, errorResult can be--- checked to determine whether the job succeeded or failed.-jljiState :: Lens' JobListJobsItem (Maybe Text)-jljiState-  = lens _jljiState (\ s a -> s{_jljiState = a})---- | [Full-projection-only] Email address of the user who ran the job.-jljiUserEmail :: Lens' JobListJobsItem (Maybe Text)-jljiUserEmail-  = lens _jljiUserEmail-      (\ s a -> s{_jljiUserEmail = a})---- | The resource type.-jljiKind :: Lens' JobListJobsItem Text-jljiKind = lens _jljiKind (\ s a -> s{_jljiKind = a})---- | A result object that will be present only if the job has failed.-jljiErrorResult :: Lens' JobListJobsItem (Maybe ErrorProto)-jljiErrorResult-  = lens _jljiErrorResult-      (\ s a -> s{_jljiErrorResult = a})---- | Unique opaque ID of the job.-jljiId :: Lens' JobListJobsItem (Maybe Text)-jljiId = lens _jljiId (\ s a -> s{_jljiId = a})---- | [Output-only] Information about the job, including starting time and--- ending time of the job.-jljiStatistics :: Lens' JobListJobsItem (Maybe JobStatistics)-jljiStatistics-  = lens _jljiStatistics-      (\ s a -> s{_jljiStatistics = a})---- | [Full-projection-only] Specifies the job configuration.-jljiConfiguration :: Lens' JobListJobsItem (Maybe JobConfiguration)-jljiConfiguration-  = lens _jljiConfiguration-      (\ s a -> s{_jljiConfiguration = a})--instance FromJSON JobListJobsItem where-        parseJSON-          = withObject "JobListJobsItem"-              (\ o ->-                 JobListJobsItem' <$>-                   (o .:? "jobReference") <*> (o .:? "status") <*>-                     (o .:? "state")-                     <*> (o .:? "user_email")-                     <*> (o .:? "kind" .!= "bigquery#job")-                     <*> (o .:? "errorResult")-                     <*> (o .:? "id")-                     <*> (o .:? "statistics")-                     <*> (o .:? "configuration"))--instance ToJSON JobListJobsItem where-        toJSON JobListJobsItem'{..}-          = object-              (catMaybes-                 [("jobReference" .=) <$> _jljiJobReference,-                  ("status" .=) <$> _jljiStatus,-                  ("state" .=) <$> _jljiState,-                  ("user_email" .=) <$> _jljiUserEmail,-                  Just ("kind" .= _jljiKind),-                  ("errorResult" .=) <$> _jljiErrorResult,-                  ("id" .=) <$> _jljiId,-                  ("statistics" .=) <$> _jljiStatistics,-                  ("configuration" .=) <$> _jljiConfiguration])------- /See:/ 'timePartitioning' smart constructor.-data TimePartitioning = TimePartitioning'-    { _tpExpirationMs :: !(Maybe (Textual Int64))-    , _tpType         :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'TimePartitioning' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'tpExpirationMs'------ * 'tpType'-timePartitioning-    :: TimePartitioning-timePartitioning =-    TimePartitioning'-    { _tpExpirationMs = Nothing-    , _tpType = Nothing-    }---- | [Optional] Number of milliseconds for which to keep the storage for a--- partition.-tpExpirationMs :: Lens' TimePartitioning (Maybe Int64)-tpExpirationMs-  = lens _tpExpirationMs-      (\ s a -> s{_tpExpirationMs = a})-      . mapping _Coerce---- | [Required] The only type supported is DAY, which will generate one--- partition per day based on data loading time.-tpType :: Lens' TimePartitioning (Maybe Text)-tpType = lens _tpType (\ s a -> s{_tpType = a})--instance FromJSON TimePartitioning where-        parseJSON-          = withObject "TimePartitioning"-              (\ o ->-                 TimePartitioning' <$>-                   (o .:? "expirationMs") <*> (o .:? "type"))--instance ToJSON TimePartitioning where-        toJSON TimePartitioning'{..}-          = object-              (catMaybes-                 [("expirationMs" .=) <$> _tpExpirationMs,-                  ("type" .=) <$> _tpType])---- | [Optional] The struct field values, in order of the struct type\'s--- declaration.------ /See:/ 'queryParameterValueStructValues' smart constructor.-newtype QueryParameterValueStructValues = QueryParameterValueStructValues'-    { _qpvsvAddtional :: HashMap Text QueryParameterValue-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'QueryParameterValueStructValues' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'qpvsvAddtional'-queryParameterValueStructValues-    :: HashMap Text QueryParameterValue -- ^ 'qpvsvAddtional'-    -> QueryParameterValueStructValues-queryParameterValueStructValues pQpvsvAddtional_ =-    QueryParameterValueStructValues'-    { _qpvsvAddtional = _Coerce # pQpvsvAddtional_-    }--qpvsvAddtional :: Lens' QueryParameterValueStructValues (HashMap Text QueryParameterValue)-qpvsvAddtional-  = lens _qpvsvAddtional-      (\ s a -> s{_qpvsvAddtional = a})-      . _Coerce--instance FromJSON QueryParameterValueStructValues-         where-        parseJSON-          = withObject "QueryParameterValueStructValues"-              (\ o ->-                 QueryParameterValueStructValues' <$>-                   (parseJSONObject o))--instance ToJSON QueryParameterValueStructValues where-        toJSON = toJSON . _qpvsvAddtional---- | [Experimental] The labels associated with this dataset. You can use--- these to organize and group your datasets. You can set this property--- when inserting or updating a dataset. See Labeling Datasets for more--- information.------ /See:/ 'dataSetLabels' smart constructor.-newtype DataSetLabels = DataSetLabels'-    { _dslAddtional :: HashMap Text Text-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'DataSetLabels' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'dslAddtional'-dataSetLabels-    :: HashMap Text Text -- ^ 'dslAddtional'-    -> DataSetLabels-dataSetLabels pDslAddtional_ =-    DataSetLabels'-    { _dslAddtional = _Coerce # pDslAddtional_-    }--dslAddtional :: Lens' DataSetLabels (HashMap Text Text)-dslAddtional-  = lens _dslAddtional (\ s a -> s{_dslAddtional = a})-      . _Coerce--instance FromJSON DataSetLabels where-        parseJSON-          = withObject "DataSetLabels"-              (\ o -> DataSetLabels' <$> (parseJSONObject o))--instance ToJSON DataSetLabels where-        toJSON = toJSON . _dslAddtional------- /See:/ 'jobConfiguration' smart constructor.-data JobConfiguration = JobConfiguration'-    { _jcCopy    :: !(Maybe JobConfigurationTableCopy)-    , _jcLoad    :: !(Maybe JobConfigurationLoad)-    , _jcQuery   :: !(Maybe JobConfigurationQuery)-    , _jcExtract :: !(Maybe JobConfigurationExtract)-    , _jcLabels  :: !(Maybe JobConfigurationLabels)-    , _jcDryRun  :: !(Maybe Bool)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'JobConfiguration' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'jcCopy'------ * 'jcLoad'------ * 'jcQuery'------ * 'jcExtract'------ * 'jcLabels'------ * 'jcDryRun'-jobConfiguration-    :: JobConfiguration-jobConfiguration =-    JobConfiguration'-    { _jcCopy = Nothing-    , _jcLoad = Nothing-    , _jcQuery = Nothing-    , _jcExtract = Nothing-    , _jcLabels = Nothing-    , _jcDryRun = Nothing-    }---- | [Pick one] Copies a table.-jcCopy :: Lens' JobConfiguration (Maybe JobConfigurationTableCopy)-jcCopy = lens _jcCopy (\ s a -> s{_jcCopy = a})---- | [Pick one] Configures a load job.-jcLoad :: Lens' JobConfiguration (Maybe JobConfigurationLoad)-jcLoad = lens _jcLoad (\ s a -> s{_jcLoad = a})---- | [Pick one] Configures a query job.-jcQuery :: Lens' JobConfiguration (Maybe JobConfigurationQuery)-jcQuery = lens _jcQuery (\ s a -> s{_jcQuery = a})---- | [Pick one] Configures an extract job.-jcExtract :: Lens' JobConfiguration (Maybe JobConfigurationExtract)-jcExtract-  = lens _jcExtract (\ s a -> s{_jcExtract = a})---- | [Experimental] The labels associated with this job. You can use these to--- organize and group your jobs. Label keys and values can be no longer--- than 63 characters, can only contain letters, numeric characters,--- underscores and dashes. International characters are allowed. Label--- values are optional. Label keys must start with a letter and must be--- unique within a dataset. Both keys and values are additionally--- constrained to be \<= 128 bytes in size.-jcLabels :: Lens' JobConfiguration (Maybe JobConfigurationLabels)-jcLabels = lens _jcLabels (\ s a -> s{_jcLabels = a})---- | [Optional] If set, don\'t actually run this job. A valid query will--- return a mostly empty response with some processing statistics, while an--- invalid query will return the same error it would if it wasn\'t a dry--- run. Behavior of non-query jobs is undefined.-jcDryRun :: Lens' JobConfiguration (Maybe Bool)-jcDryRun = lens _jcDryRun (\ s a -> s{_jcDryRun = a})--instance FromJSON JobConfiguration where-        parseJSON-          = withObject "JobConfiguration"-              (\ o ->-                 JobConfiguration' <$>-                   (o .:? "copy") <*> (o .:? "load") <*> (o .:? "query")-                     <*> (o .:? "extract")-                     <*> (o .:? "labels")-                     <*> (o .:? "dryRun"))--instance ToJSON JobConfiguration where-        toJSON JobConfiguration'{..}-          = object-              (catMaybes-                 [("copy" .=) <$> _jcCopy, ("load" .=) <$> _jcLoad,-                  ("query" .=) <$> _jcQuery,-                  ("extract" .=) <$> _jcExtract,-                  ("labels" .=) <$> _jcLabels,-                  ("dryRun" .=) <$> _jcDryRun])------- /See:/ 'job' smart constructor.-data Job = Job'-    { _jJobReference  :: !(Maybe JobReference)-    , _jStatus        :: !(Maybe JobStatus)-    , _jEtag          :: !(Maybe Text)-    , _jUserEmail     :: !(Maybe Text)-    , _jKind          :: !Text-    , _jSelfLink      :: !(Maybe Text)-    , _jId            :: !(Maybe Text)-    , _jStatistics    :: !(Maybe JobStatistics)-    , _jConfiguration :: !(Maybe JobConfiguration)-    } 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:------ * 'jJobReference'------ * 'jStatus'------ * 'jEtag'------ * 'jUserEmail'------ * 'jKind'------ * 'jSelfLink'------ * 'jId'------ * 'jStatistics'------ * 'jConfiguration'-job-    :: Job-job =-    Job'-    { _jJobReference = Nothing-    , _jStatus = Nothing-    , _jEtag = Nothing-    , _jUserEmail = Nothing-    , _jKind = "bigquery#job"-    , _jSelfLink = Nothing-    , _jId = Nothing-    , _jStatistics = Nothing-    , _jConfiguration = Nothing-    }---- | [Optional] Reference describing the unique-per-user name of the job.-jJobReference :: Lens' Job (Maybe JobReference)-jJobReference-  = lens _jJobReference-      (\ s a -> s{_jJobReference = a})---- | [Output-only] The status of this job. Examine this value when polling an--- asynchronous job to see if the job is complete.-jStatus :: Lens' Job (Maybe JobStatus)-jStatus = lens _jStatus (\ s a -> s{_jStatus = a})---- | [Output-only] A hash of this resource.-jEtag :: Lens' Job (Maybe Text)-jEtag = lens _jEtag (\ s a -> s{_jEtag = a})---- | [Output-only] Email address of the user who ran the job.-jUserEmail :: Lens' Job (Maybe Text)-jUserEmail-  = lens _jUserEmail (\ s a -> s{_jUserEmail = a})---- | [Output-only] The type of the resource.-jKind :: Lens' Job Text-jKind = lens _jKind (\ s a -> s{_jKind = a})---- | [Output-only] A URL that can be used to access this resource again.-jSelfLink :: Lens' Job (Maybe Text)-jSelfLink-  = lens _jSelfLink (\ s a -> s{_jSelfLink = a})---- | [Output-only] Opaque ID field of the job-jId :: Lens' Job (Maybe Text)-jId = lens _jId (\ s a -> s{_jId = a})---- | [Output-only] Information about the job, including starting time and--- ending time of the job.-jStatistics :: Lens' Job (Maybe JobStatistics)-jStatistics-  = lens _jStatistics (\ s a -> s{_jStatistics = a})---- | [Required] Describes the job configuration.-jConfiguration :: Lens' Job (Maybe JobConfiguration)-jConfiguration-  = lens _jConfiguration-      (\ s a -> s{_jConfiguration = a})--instance FromJSON Job where-        parseJSON-          = withObject "Job"-              (\ o ->-                 Job' <$>-                   (o .:? "jobReference") <*> (o .:? "status") <*>-                     (o .:? "etag")-                     <*> (o .:? "user_email")-                     <*> (o .:? "kind" .!= "bigquery#job")-                     <*> (o .:? "selfLink")-                     <*> (o .:? "id")-                     <*> (o .:? "statistics")-                     <*> (o .:? "configuration"))--instance ToJSON Job where-        toJSON Job'{..}-          = object-              (catMaybes-                 [("jobReference" .=) <$> _jJobReference,-                  ("status" .=) <$> _jStatus, ("etag" .=) <$> _jEtag,-                  ("user_email" .=) <$> _jUserEmail,-                  Just ("kind" .= _jKind),-                  ("selfLink" .=) <$> _jSelfLink, ("id" .=) <$> _jId,-                  ("statistics" .=) <$> _jStatistics,-                  ("configuration" .=) <$> _jConfiguration])------- /See:/ 'tableDataInsertAllResponseInsertErrorsItem' smart constructor.-data TableDataInsertAllResponseInsertErrorsItem = TableDataInsertAllResponseInsertErrorsItem'-    { _tdiarieiErrors :: !(Maybe [ErrorProto])-    , _tdiarieiIndex  :: !(Maybe (Textual Word32))-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'TableDataInsertAllResponseInsertErrorsItem' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'tdiarieiErrors'------ * 'tdiarieiIndex'-tableDataInsertAllResponseInsertErrorsItem-    :: TableDataInsertAllResponseInsertErrorsItem-tableDataInsertAllResponseInsertErrorsItem =-    TableDataInsertAllResponseInsertErrorsItem'-    { _tdiarieiErrors = Nothing-    , _tdiarieiIndex = Nothing-    }---- | Error information for the row indicated by the index property.-tdiarieiErrors :: Lens' TableDataInsertAllResponseInsertErrorsItem [ErrorProto]-tdiarieiErrors-  = lens _tdiarieiErrors-      (\ s a -> s{_tdiarieiErrors = a})-      . _Default-      . _Coerce---- | The index of the row that error applies to.-tdiarieiIndex :: Lens' TableDataInsertAllResponseInsertErrorsItem (Maybe Word32)-tdiarieiIndex-  = lens _tdiarieiIndex-      (\ s a -> s{_tdiarieiIndex = a})-      . mapping _Coerce--instance FromJSON-         TableDataInsertAllResponseInsertErrorsItem where-        parseJSON-          = withObject-              "TableDataInsertAllResponseInsertErrorsItem"-              (\ o ->-                 TableDataInsertAllResponseInsertErrorsItem' <$>-                   (o .:? "errors" .!= mempty) <*> (o .:? "index"))--instance ToJSON-         TableDataInsertAllResponseInsertErrorsItem where-        toJSON-          TableDataInsertAllResponseInsertErrorsItem'{..}-          = object-              (catMaybes-                 [("errors" .=) <$> _tdiarieiErrors,-                  ("index" .=) <$> _tdiarieiIndex])------- /See:/ 'jobConfigurationExtract' smart constructor.-data JobConfigurationExtract = JobConfigurationExtract'-    { _jceDestinationFormat :: !(Maybe Text)-    , _jceSourceTable       :: !(Maybe TableReference)-    , _jcePrintHeader       :: !Bool-    , _jceCompression       :: !(Maybe Text)-    , _jceDestinationURIs   :: !(Maybe [Text])-    , _jceDestinationURI    :: !(Maybe Text)-    , _jceFieldDelimiter    :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'JobConfigurationExtract' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'jceDestinationFormat'------ * 'jceSourceTable'------ * 'jcePrintHeader'------ * 'jceCompression'------ * 'jceDestinationURIs'------ * 'jceDestinationURI'------ * 'jceFieldDelimiter'-jobConfigurationExtract-    :: JobConfigurationExtract-jobConfigurationExtract =-    JobConfigurationExtract'-    { _jceDestinationFormat = Nothing-    , _jceSourceTable = Nothing-    , _jcePrintHeader = True-    , _jceCompression = Nothing-    , _jceDestinationURIs = Nothing-    , _jceDestinationURI = Nothing-    , _jceFieldDelimiter = Nothing-    }---- | [Optional] The exported file format. Possible values include CSV,--- NEWLINE_DELIMITED_JSON and AVRO. The default value is CSV. Tables with--- nested or repeated fields cannot be exported as CSV.-jceDestinationFormat :: Lens' JobConfigurationExtract (Maybe Text)-jceDestinationFormat-  = lens _jceDestinationFormat-      (\ s a -> s{_jceDestinationFormat = a})---- | [Required] A reference to the table being exported.-jceSourceTable :: Lens' JobConfigurationExtract (Maybe TableReference)-jceSourceTable-  = lens _jceSourceTable-      (\ s a -> s{_jceSourceTable = a})---- | [Optional] Whether to print out a header row in the results. Default is--- true.-jcePrintHeader :: Lens' JobConfigurationExtract Bool-jcePrintHeader-  = lens _jcePrintHeader-      (\ s a -> s{_jcePrintHeader = a})---- | [Optional] The compression type to use for exported files. Possible--- values include GZIP and NONE. The default value is NONE.-jceCompression :: Lens' JobConfigurationExtract (Maybe Text)-jceCompression-  = lens _jceCompression-      (\ s a -> s{_jceCompression = a})---- | [Pick one] A list of fully-qualified Google Cloud Storage URIs where the--- extracted table should be written.-jceDestinationURIs :: Lens' JobConfigurationExtract [Text]-jceDestinationURIs-  = lens _jceDestinationURIs-      (\ s a -> s{_jceDestinationURIs = a})-      . _Default-      . _Coerce---- | [Pick one] DEPRECATED: Use destinationUris instead, passing only one URI--- as necessary. The fully-qualified Google Cloud Storage URI where the--- extracted table should be written.-jceDestinationURI :: Lens' JobConfigurationExtract (Maybe Text)-jceDestinationURI-  = lens _jceDestinationURI-      (\ s a -> s{_jceDestinationURI = a})---- | [Optional] Delimiter to use between fields in the exported data. Default--- is \',\'-jceFieldDelimiter :: Lens' JobConfigurationExtract (Maybe Text)-jceFieldDelimiter-  = lens _jceFieldDelimiter-      (\ s a -> s{_jceFieldDelimiter = a})--instance FromJSON JobConfigurationExtract where-        parseJSON-          = withObject "JobConfigurationExtract"-              (\ o ->-                 JobConfigurationExtract' <$>-                   (o .:? "destinationFormat") <*> (o .:? "sourceTable")-                     <*> (o .:? "printHeader" .!= True)-                     <*> (o .:? "compression")-                     <*> (o .:? "destinationUris" .!= mempty)-                     <*> (o .:? "destinationUri")-                     <*> (o .:? "fieldDelimiter"))--instance ToJSON JobConfigurationExtract where-        toJSON JobConfigurationExtract'{..}-          = object-              (catMaybes-                 [("destinationFormat" .=) <$> _jceDestinationFormat,-                  ("sourceTable" .=) <$> _jceSourceTable,-                  Just ("printHeader" .= _jcePrintHeader),-                  ("compression" .=) <$> _jceCompression,-                  ("destinationUris" .=) <$> _jceDestinationURIs,-                  ("destinationUri" .=) <$> _jceDestinationURI,-                  ("fieldDelimiter" .=) <$> _jceFieldDelimiter])------- /See:/ 'jobCancelResponse' smart constructor.-data JobCancelResponse = JobCancelResponse'-    { _jcrKind :: !Text-    , _jcrJob  :: !(Maybe Job)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'JobCancelResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'jcrKind'------ * 'jcrJob'-jobCancelResponse-    :: JobCancelResponse-jobCancelResponse =-    JobCancelResponse'-    { _jcrKind = "bigquery#jobCancelResponse"-    , _jcrJob = Nothing-    }---- | The resource type of the response.-jcrKind :: Lens' JobCancelResponse Text-jcrKind = lens _jcrKind (\ s a -> s{_jcrKind = a})---- | The final state of the job.-jcrJob :: Lens' JobCancelResponse (Maybe Job)-jcrJob = lens _jcrJob (\ s a -> s{_jcrJob = a})--instance FromJSON JobCancelResponse where-        parseJSON-          = withObject "JobCancelResponse"-              (\ o ->-                 JobCancelResponse' <$>-                   (o .:? "kind" .!= "bigquery#jobCancelResponse") <*>-                     (o .:? "job"))--instance ToJSON JobCancelResponse where-        toJSON JobCancelResponse'{..}-          = object-              (catMaybes-                 [Just ("kind" .= _jcrKind), ("job" .=) <$> _jcrJob])---- | Represents a single JSON object.------ /See:/ 'jsonObject' smart constructor.-newtype JSONObject = JSONObject'-    { _joAddtional :: HashMap Text JSONValue-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'JSONObject' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'joAddtional'-jsonObject-    :: HashMap Text JSONValue -- ^ 'joAddtional'-    -> JSONObject-jsonObject pJoAddtional_ =-    JSONObject'-    { _joAddtional = _Coerce # pJoAddtional_-    }--joAddtional :: Lens' JSONObject (HashMap Text JSONValue)-joAddtional-  = lens _joAddtional (\ s a -> s{_joAddtional = a}) .-      _Coerce--instance FromJSON JSONObject where-        parseJSON-          = withObject "JSONObject"-              (\ o -> JSONObject' <$> (parseJSONObject o))--instance ToJSON JSONObject where-        toJSON = toJSON . _joAddtional------- /See:/ 'jobConfigurationQuery' smart constructor.-data JobConfigurationQuery = JobConfigurationQuery'-    { _jcqDestinationTable             :: !(Maybe TableReference)-    , _jcqWriteDisPosition             :: !(Maybe Text)-    , _jcqPriority                     :: !(Maybe Text)-    , _jcqUseQueryCache                :: !Bool-    , _jcqPreserveNulls                :: !(Maybe Bool)-    , _jcqTableDefinitions             :: !(Maybe JobConfigurationQueryTableDefinitions)-    , _jcqQueryParameters              :: !(Maybe [QueryParameter])-    , _jcqSchemaUpdateOptions          :: !(Maybe [Text])-    , _jcqMaximumBytesBilled           :: !(Maybe (Textual Int64))-    , _jcqCreateDisPosition            :: !(Maybe Text)-    , _jcqUserDefinedFunctionResources :: !(Maybe [UserDefinedFunctionResource])-    , _jcqAllowLargeResults            :: !(Maybe Bool)-    , _jcqMaximumBillingTier           :: !(Textual Int32)-    , _jcqQuery                        :: !(Maybe Text)-    , _jcqFlattenResults               :: !Bool-    , _jcqParameterMode                :: !(Maybe Text)-    , _jcqUseLegacySQL                 :: !(Maybe Bool)-    , _jcqDefaultDataSet               :: !(Maybe DataSetReference)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'JobConfigurationQuery' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'jcqDestinationTable'------ * 'jcqWriteDisPosition'------ * 'jcqPriority'------ * 'jcqUseQueryCache'------ * 'jcqPreserveNulls'------ * 'jcqTableDefinitions'------ * 'jcqQueryParameters'------ * 'jcqSchemaUpdateOptions'------ * 'jcqMaximumBytesBilled'------ * 'jcqCreateDisPosition'------ * 'jcqUserDefinedFunctionResources'------ * 'jcqAllowLargeResults'------ * 'jcqMaximumBillingTier'------ * 'jcqQuery'------ * 'jcqFlattenResults'------ * 'jcqParameterMode'------ * 'jcqUseLegacySQL'------ * 'jcqDefaultDataSet'-jobConfigurationQuery-    :: JobConfigurationQuery-jobConfigurationQuery =-    JobConfigurationQuery'-    { _jcqDestinationTable = Nothing-    , _jcqWriteDisPosition = Nothing-    , _jcqPriority = Nothing-    , _jcqUseQueryCache = True-    , _jcqPreserveNulls = Nothing-    , _jcqTableDefinitions = Nothing-    , _jcqQueryParameters = Nothing-    , _jcqSchemaUpdateOptions = Nothing-    , _jcqMaximumBytesBilled = Nothing-    , _jcqCreateDisPosition = Nothing-    , _jcqUserDefinedFunctionResources = Nothing-    , _jcqAllowLargeResults = Nothing-    , _jcqMaximumBillingTier = 1-    , _jcqQuery = Nothing-    , _jcqFlattenResults = True-    , _jcqParameterMode = Nothing-    , _jcqUseLegacySQL = Nothing-    , _jcqDefaultDataSet = Nothing-    }---- | [Optional] Describes the table where the query results should be stored.--- If not present, a new table will be created to store the results.-jcqDestinationTable :: Lens' JobConfigurationQuery (Maybe TableReference)-jcqDestinationTable-  = lens _jcqDestinationTable-      (\ s a -> s{_jcqDestinationTable = a})---- | [Optional] Specifies the action that occurs if the destination table--- already exists. The following values are supported: WRITE_TRUNCATE: If--- the table already exists, BigQuery overwrites the table data.--- WRITE_APPEND: If the table already exists, BigQuery appends the data to--- the table. WRITE_EMPTY: If the table already exists and contains data, a--- \'duplicate\' error is returned in the job result. The default value is--- WRITE_EMPTY. Each action is atomic and only occurs if BigQuery is able--- to complete the job successfully. Creation, truncation and append--- actions occur as one atomic update upon job completion.-jcqWriteDisPosition :: Lens' JobConfigurationQuery (Maybe Text)-jcqWriteDisPosition-  = lens _jcqWriteDisPosition-      (\ s a -> s{_jcqWriteDisPosition = a})---- | [Optional] Specifies a priority for the query. Possible values include--- INTERACTIVE and BATCH. The default value is INTERACTIVE.-jcqPriority :: Lens' JobConfigurationQuery (Maybe Text)-jcqPriority-  = lens _jcqPriority (\ s a -> s{_jcqPriority = a})---- | [Optional] Whether to look for the result in the query cache. The query--- cache is a best-effort cache that will be flushed whenever tables in the--- query are modified. Moreover, the query cache is only available when a--- query does not have a destination table specified. The default value is--- true.-jcqUseQueryCache :: Lens' JobConfigurationQuery Bool-jcqUseQueryCache-  = lens _jcqUseQueryCache-      (\ s a -> s{_jcqUseQueryCache = a})---- | [Deprecated] This property is deprecated.-jcqPreserveNulls :: Lens' JobConfigurationQuery (Maybe Bool)-jcqPreserveNulls-  = lens _jcqPreserveNulls-      (\ s a -> s{_jcqPreserveNulls = a})---- | [Optional] If querying an external data source outside of BigQuery,--- describes the data format, location and other properties of the data--- source. By defining these properties, the data source can then be--- queried as if it were a standard BigQuery table.-jcqTableDefinitions :: Lens' JobConfigurationQuery (Maybe JobConfigurationQueryTableDefinitions)-jcqTableDefinitions-  = lens _jcqTableDefinitions-      (\ s a -> s{_jcqTableDefinitions = a})---- | Query parameters for standard SQL queries.-jcqQueryParameters :: Lens' JobConfigurationQuery [QueryParameter]-jcqQueryParameters-  = lens _jcqQueryParameters-      (\ s a -> s{_jcqQueryParameters = a})-      . _Default-      . _Coerce---- | [Experimental] Allows the schema of the destination table to be updated--- as a side effect of the query job. Schema update options are supported--- in two cases: when writeDisposition is WRITE_APPEND; when--- writeDisposition is WRITE_TRUNCATE and the destination table is a--- partition of a table, specified by partition decorators. For normal--- tables, WRITE_TRUNCATE will always overwrite the schema. One or more of--- the following values are specified: ALLOW_FIELD_ADDITION: allow adding a--- nullable field to the schema. ALLOW_FIELD_RELAXATION: allow relaxing a--- required field in the original schema to nullable.-jcqSchemaUpdateOptions :: Lens' JobConfigurationQuery [Text]-jcqSchemaUpdateOptions-  = lens _jcqSchemaUpdateOptions-      (\ s a -> s{_jcqSchemaUpdateOptions = a})-      . _Default-      . _Coerce---- | [Optional] Limits the bytes billed for this job. Queries that will have--- bytes billed beyond this limit will fail (without incurring a charge).--- If unspecified, this will be set to your project default.-jcqMaximumBytesBilled :: Lens' JobConfigurationQuery (Maybe Int64)-jcqMaximumBytesBilled-  = lens _jcqMaximumBytesBilled-      (\ s a -> s{_jcqMaximumBytesBilled = a})-      . mapping _Coerce---- | [Optional] Specifies whether the job is allowed to create new tables.--- The following values are supported: CREATE_IF_NEEDED: If the table does--- not exist, BigQuery creates the table. CREATE_NEVER: The table must--- already exist. If it does not, a \'notFound\' error is returned in the--- job result. The default value is CREATE_IF_NEEDED. Creation, truncation--- and append actions occur as one atomic update upon job completion.-jcqCreateDisPosition :: Lens' JobConfigurationQuery (Maybe Text)-jcqCreateDisPosition-  = lens _jcqCreateDisPosition-      (\ s a -> s{_jcqCreateDisPosition = a})---- | [Experimental] Describes user-defined function resources used in the--- query.-jcqUserDefinedFunctionResources :: Lens' JobConfigurationQuery [UserDefinedFunctionResource]-jcqUserDefinedFunctionResources-  = lens _jcqUserDefinedFunctionResources-      (\ s a -> s{_jcqUserDefinedFunctionResources = a})-      . _Default-      . _Coerce---- | If true, allows the query to produce arbitrarily large result tables at--- a slight cost in performance. Requires destinationTable to be set.-jcqAllowLargeResults :: Lens' JobConfigurationQuery (Maybe Bool)-jcqAllowLargeResults-  = lens _jcqAllowLargeResults-      (\ s a -> s{_jcqAllowLargeResults = a})---- | [Optional] Limits the billing tier for this job. Queries that have--- resource usage beyond this tier will fail (without incurring a charge).--- If unspecified, this will be set to your project default.-jcqMaximumBillingTier :: Lens' JobConfigurationQuery Int32-jcqMaximumBillingTier-  = lens _jcqMaximumBillingTier-      (\ s a -> s{_jcqMaximumBillingTier = a})-      . _Coerce---- | [Required] BigQuery SQL query to execute.-jcqQuery :: Lens' JobConfigurationQuery (Maybe Text)-jcqQuery = lens _jcqQuery (\ s a -> s{_jcqQuery = a})---- | [Optional] Flattens all nested and repeated fields in the query results.--- The default value is true. allowLargeResults must be true if this is set--- to false.-jcqFlattenResults :: Lens' JobConfigurationQuery Bool-jcqFlattenResults-  = lens _jcqFlattenResults-      (\ s a -> s{_jcqFlattenResults = a})---- | [Experimental] Standard SQL only. Set to POSITIONAL to use positional--- (?) query parameters or to NAMED to use named (\'myparam) query--- parameters in this query.-jcqParameterMode :: Lens' JobConfigurationQuery (Maybe Text)-jcqParameterMode-  = lens _jcqParameterMode-      (\ s a -> s{_jcqParameterMode = a})---- | Specifies whether to use BigQuery\'s legacy SQL dialect for this query.--- The default value is true. If set to false, the query will use--- BigQuery\'s standard SQL:--- https:\/\/cloud.google.com\/bigquery\/sql-reference\/ When useLegacySql--- is set to false, the values of allowLargeResults and flattenResults are--- ignored; query will be run as if allowLargeResults is true and--- flattenResults is false.-jcqUseLegacySQL :: Lens' JobConfigurationQuery (Maybe Bool)-jcqUseLegacySQL-  = lens _jcqUseLegacySQL-      (\ s a -> s{_jcqUseLegacySQL = a})---- | [Optional] Specifies the default dataset to use for unqualified table--- names in the query.-jcqDefaultDataSet :: Lens' JobConfigurationQuery (Maybe DataSetReference)-jcqDefaultDataSet-  = lens _jcqDefaultDataSet-      (\ s a -> s{_jcqDefaultDataSet = a})--instance FromJSON JobConfigurationQuery where-        parseJSON-          = withObject "JobConfigurationQuery"-              (\ o ->-                 JobConfigurationQuery' <$>-                   (o .:? "destinationTable") <*>-                     (o .:? "writeDisposition")-                     <*> (o .:? "priority")-                     <*> (o .:? "useQueryCache" .!= True)-                     <*> (o .:? "preserveNulls")-                     <*> (o .:? "tableDefinitions")-                     <*> (o .:? "queryParameters" .!= mempty)-                     <*> (o .:? "schemaUpdateOptions" .!= mempty)-                     <*> (o .:? "maximumBytesBilled")-                     <*> (o .:? "createDisposition")-                     <*> (o .:? "userDefinedFunctionResources" .!= mempty)-                     <*> (o .:? "allowLargeResults")-                     <*> (o .:? "maximumBillingTier" .!= 1)-                     <*> (o .:? "query")-                     <*> (o .:? "flattenResults" .!= True)-                     <*> (o .:? "parameterMode")-                     <*> (o .:? "useLegacySql")-                     <*> (o .:? "defaultDataset"))--instance ToJSON JobConfigurationQuery where-        toJSON JobConfigurationQuery'{..}-          = object-              (catMaybes-                 [("destinationTable" .=) <$> _jcqDestinationTable,-                  ("writeDisposition" .=) <$> _jcqWriteDisPosition,-                  ("priority" .=) <$> _jcqPriority,-                  Just ("useQueryCache" .= _jcqUseQueryCache),-                  ("preserveNulls" .=) <$> _jcqPreserveNulls,-                  ("tableDefinitions" .=) <$> _jcqTableDefinitions,-                  ("queryParameters" .=) <$> _jcqQueryParameters,-                  ("schemaUpdateOptions" .=) <$>-                    _jcqSchemaUpdateOptions,-                  ("maximumBytesBilled" .=) <$> _jcqMaximumBytesBilled,-                  ("createDisposition" .=) <$> _jcqCreateDisPosition,-                  ("userDefinedFunctionResources" .=) <$>-                    _jcqUserDefinedFunctionResources,-                  ("allowLargeResults" .=) <$> _jcqAllowLargeResults,-                  Just-                    ("maximumBillingTier" .= _jcqMaximumBillingTier),-                  ("query" .=) <$> _jcqQuery,-                  Just ("flattenResults" .= _jcqFlattenResults),-                  ("parameterMode" .=) <$> _jcqParameterMode,-                  ("useLegacySql" .=) <$> _jcqUseLegacySQL,-                  ("defaultDataset" .=) <$> _jcqDefaultDataSet])------- /See:/ 'googleSheetsOptions' smart constructor.-newtype GoogleSheetsOptions = GoogleSheetsOptions'-    { _gsoSkipLeadingRows :: Maybe (Textual Int64)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'GoogleSheetsOptions' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'gsoSkipLeadingRows'-googleSheetsOptions-    :: GoogleSheetsOptions-googleSheetsOptions =-    GoogleSheetsOptions'-    { _gsoSkipLeadingRows = Nothing-    }---- | [Optional] The number of rows at the top of a sheet that BigQuery will--- skip when reading the data. The default value is 0. This property is--- useful if you have header rows that should be skipped. When autodetect--- is on, behavior is the following: * skipLeadingRows unspecified ---- Autodetect tries to detect headers in the first row. If they are not--- detected, the row is read as data. Otherwise data is read starting from--- the second row. * skipLeadingRows is 0 - Instructs autodetect that there--- are no headers and data should be read starting from the first row. *--- skipLeadingRows = N > 0 - Autodetect skips N-1 rows and tries to detect--- headers in row N. If headers are not detected, row N is just skipped.--- Otherwise row N is used to extract column names for the detected schema.-gsoSkipLeadingRows :: Lens' GoogleSheetsOptions (Maybe Int64)-gsoSkipLeadingRows-  = lens _gsoSkipLeadingRows-      (\ s a -> s{_gsoSkipLeadingRows = a})-      . mapping _Coerce--instance FromJSON GoogleSheetsOptions where-        parseJSON-          = withObject "GoogleSheetsOptions"-              (\ o ->-                 GoogleSheetsOptions' <$> (o .:? "skipLeadingRows"))--instance ToJSON GoogleSheetsOptions where-        toJSON GoogleSheetsOptions'{..}-          = object-              (catMaybes-                 [("skipLeadingRows" .=) <$> _gsoSkipLeadingRows])------- /See:/ 'tableDataInsertAllRequestRowsItem' smart constructor.-data TableDataInsertAllRequestRowsItem = TableDataInsertAllRequestRowsItem'-    { _tdiarriJSON     :: !(Maybe JSONObject)-    , _tdiarriInsertId :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'TableDataInsertAllRequestRowsItem' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'tdiarriJSON'------ * 'tdiarriInsertId'-tableDataInsertAllRequestRowsItem-    :: TableDataInsertAllRequestRowsItem-tableDataInsertAllRequestRowsItem =-    TableDataInsertAllRequestRowsItem'-    { _tdiarriJSON = Nothing-    , _tdiarriInsertId = Nothing-    }---- | [Required] A JSON object that contains a row of data. The object\'s--- properties and values must match the destination table\'s schema.-tdiarriJSON :: Lens' TableDataInsertAllRequestRowsItem (Maybe JSONObject)-tdiarriJSON-  = lens _tdiarriJSON (\ s a -> s{_tdiarriJSON = a})---- | [Optional] A unique ID for each row. BigQuery uses this property to--- detect duplicate insertion requests on a best-effort basis.-tdiarriInsertId :: Lens' TableDataInsertAllRequestRowsItem (Maybe Text)-tdiarriInsertId-  = lens _tdiarriInsertId-      (\ s a -> s{_tdiarriInsertId = a})--instance FromJSON TableDataInsertAllRequestRowsItem-         where-        parseJSON-          = withObject "TableDataInsertAllRequestRowsItem"-              (\ o ->-                 TableDataInsertAllRequestRowsItem' <$>-                   (o .:? "json") <*> (o .:? "insertId"))--instance ToJSON TableDataInsertAllRequestRowsItem-         where-        toJSON TableDataInsertAllRequestRowsItem'{..}-          = object-              (catMaybes-                 [("json" .=) <$> _tdiarriJSON,-                  ("insertId" .=) <$> _tdiarriInsertId])------- /See:/ 'jobList' smart constructor.-data JobList = JobList'-    { _jlEtag          :: !(Maybe Text)-    , _jlNextPageToken :: !(Maybe Text)-    , _jlKind          :: !Text-    , _jlJobs          :: !(Maybe [JobListJobsItem])-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'JobList' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'jlEtag'------ * 'jlNextPageToken'------ * 'jlKind'------ * 'jlJobs'-jobList-    :: JobList-jobList =-    JobList'-    { _jlEtag = Nothing-    , _jlNextPageToken = Nothing-    , _jlKind = "bigquery#jobList"-    , _jlJobs = Nothing-    }---- | A hash of this page of results.-jlEtag :: Lens' JobList (Maybe Text)-jlEtag = lens _jlEtag (\ s a -> s{_jlEtag = a})---- | A token to request the next page of results.-jlNextPageToken :: Lens' JobList (Maybe Text)-jlNextPageToken-  = lens _jlNextPageToken-      (\ s a -> s{_jlNextPageToken = a})---- | The resource type of the response.-jlKind :: Lens' JobList Text-jlKind = lens _jlKind (\ s a -> s{_jlKind = a})---- | List of jobs that were requested.-jlJobs :: Lens' JobList [JobListJobsItem]-jlJobs-  = lens _jlJobs (\ s a -> s{_jlJobs = a}) . _Default .-      _Coerce--instance FromJSON JobList where-        parseJSON-          = withObject "JobList"-              (\ o ->-                 JobList' <$>-                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>-                     (o .:? "kind" .!= "bigquery#jobList")-                     <*> (o .:? "jobs" .!= mempty))--instance ToJSON JobList where-        toJSON JobList'{..}-          = object-              (catMaybes-                 [("etag" .=) <$> _jlEtag,-                  ("nextPageToken" .=) <$> _jlNextPageToken,-                  Just ("kind" .= _jlKind), ("jobs" .=) <$> _jlJobs])---- | [Optional] If querying an external data source outside of BigQuery,--- describes the data format, location and other properties of the data--- source. By defining these properties, the data source can then be--- queried as if it were a standard BigQuery table.------ /See:/ 'jobConfigurationQueryTableDefinitions' smart constructor.-newtype JobConfigurationQueryTableDefinitions = JobConfigurationQueryTableDefinitions'-    { _jcqtdAddtional :: HashMap Text ExternalDataConfiguration-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'JobConfigurationQueryTableDefinitions' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'jcqtdAddtional'-jobConfigurationQueryTableDefinitions-    :: HashMap Text ExternalDataConfiguration -- ^ 'jcqtdAddtional'-    -> JobConfigurationQueryTableDefinitions-jobConfigurationQueryTableDefinitions pJcqtdAddtional_ =-    JobConfigurationQueryTableDefinitions'-    { _jcqtdAddtional = _Coerce # pJcqtdAddtional_-    }--jcqtdAddtional :: Lens' JobConfigurationQueryTableDefinitions (HashMap Text ExternalDataConfiguration)-jcqtdAddtional-  = lens _jcqtdAddtional-      (\ s a -> s{_jcqtdAddtional = a})-      . _Coerce--instance FromJSON-         JobConfigurationQueryTableDefinitions where-        parseJSON-          = withObject "JobConfigurationQueryTableDefinitions"-              (\ o ->-                 JobConfigurationQueryTableDefinitions' <$>-                   (parseJSONObject o))--instance ToJSON JobConfigurationQueryTableDefinitions-         where-        toJSON = toJSON . _jcqtdAddtional------- /See:/ 'tableCell' smart constructor.-newtype TableCell = TableCell'-    { _tcV :: Maybe JSONValue-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'TableCell' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'tcV'-tableCell-    :: TableCell-tableCell =-    TableCell'-    { _tcV = Nothing-    }--tcV :: Lens' TableCell (Maybe JSONValue)-tcV = lens _tcV (\ s a -> s{_tcV = a})--instance FromJSON TableCell where-        parseJSON-          = withObject "TableCell"-              (\ o -> TableCell' <$> (o .:? "v"))--instance ToJSON TableCell where-        toJSON TableCell'{..}-          = object (catMaybes [("v" .=) <$> _tcV])------- /See:/ 'queryParameterValue' smart constructor.-data QueryParameterValue = QueryParameterValue'-    { _qpvStructValues :: !(Maybe QueryParameterValueStructValues)-    , _qpvValue        :: !(Maybe Text)-    , _qpvArrayValues  :: !(Maybe [QueryParameterValue])-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'QueryParameterValue' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'qpvStructValues'------ * 'qpvValue'------ * 'qpvArrayValues'-queryParameterValue-    :: QueryParameterValue-queryParameterValue =-    QueryParameterValue'-    { _qpvStructValues = Nothing-    , _qpvValue = Nothing-    , _qpvArrayValues = Nothing-    }---- | [Optional] The struct field values, in order of the struct type\'s--- declaration.-qpvStructValues :: Lens' QueryParameterValue (Maybe QueryParameterValueStructValues)-qpvStructValues-  = lens _qpvStructValues-      (\ s a -> s{_qpvStructValues = a})---- | [Optional] The value of this value, if a simple scalar type.-qpvValue :: Lens' QueryParameterValue (Maybe Text)-qpvValue = lens _qpvValue (\ s a -> s{_qpvValue = a})---- | [Optional] The array values, if this is an array type.-qpvArrayValues :: Lens' QueryParameterValue [QueryParameterValue]-qpvArrayValues-  = lens _qpvArrayValues-      (\ s a -> s{_qpvArrayValues = a})-      . _Default-      . _Coerce--instance FromJSON QueryParameterValue where-        parseJSON-          = withObject "QueryParameterValue"-              (\ o ->-                 QueryParameterValue' <$>-                   (o .:? "structValues") <*> (o .:? "value") <*>-                     (o .:? "arrayValues" .!= mempty))--instance ToJSON QueryParameterValue where-        toJSON QueryParameterValue'{..}-          = object-              (catMaybes-                 [("structValues" .=) <$> _qpvStructValues,-                  ("value" .=) <$> _qpvValue,-                  ("arrayValues" .=) <$> _qpvArrayValues])------- /See:/ 'viewDefinition' smart constructor.-data ViewDefinition = ViewDefinition'-    { _vdUserDefinedFunctionResources :: !(Maybe [UserDefinedFunctionResource])-    , _vdQuery                        :: !(Maybe Text)-    , _vdUseLegacySQL                 :: !(Maybe Bool)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'ViewDefinition' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'vdUserDefinedFunctionResources'------ * 'vdQuery'------ * 'vdUseLegacySQL'-viewDefinition-    :: ViewDefinition-viewDefinition =-    ViewDefinition'-    { _vdUserDefinedFunctionResources = Nothing-    , _vdQuery = Nothing-    , _vdUseLegacySQL = Nothing-    }---- | [Experimental] Describes user-defined function resources used in the--- query.-vdUserDefinedFunctionResources :: Lens' ViewDefinition [UserDefinedFunctionResource]-vdUserDefinedFunctionResources-  = lens _vdUserDefinedFunctionResources-      (\ s a -> s{_vdUserDefinedFunctionResources = a})-      . _Default-      . _Coerce---- | [Required] A query that BigQuery executes when the view is referenced.-vdQuery :: Lens' ViewDefinition (Maybe Text)-vdQuery = lens _vdQuery (\ s a -> s{_vdQuery = a})---- | Specifies whether to use BigQuery\'s legacy SQL for this view. The--- default value is true. If set to false, the view will use BigQuery\'s--- standard SQL: https:\/\/cloud.google.com\/bigquery\/sql-reference\/--- Queries and views that reference this view must use the same flag value.-vdUseLegacySQL :: Lens' ViewDefinition (Maybe Bool)-vdUseLegacySQL-  = lens _vdUseLegacySQL-      (\ s a -> s{_vdUseLegacySQL = a})--instance FromJSON ViewDefinition where-        parseJSON-          = withObject "ViewDefinition"-              (\ o ->-                 ViewDefinition' <$>-                   (o .:? "userDefinedFunctionResources" .!= mempty) <*>-                     (o .:? "query")-                     <*> (o .:? "useLegacySql"))--instance ToJSON ViewDefinition where-        toJSON ViewDefinition'{..}-          = object-              (catMaybes-                 [("userDefinedFunctionResources" .=) <$>-                    _vdUserDefinedFunctionResources,-                  ("query" .=) <$> _vdQuery,-                  ("useLegacySql" .=) <$> _vdUseLegacySQL])------- /See:/ 'userDefinedFunctionResource' smart constructor.-data UserDefinedFunctionResource = UserDefinedFunctionResource'-    { _udfrResourceURI :: !(Maybe Text)-    , _udfrInlineCode  :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'UserDefinedFunctionResource' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'udfrResourceURI'------ * 'udfrInlineCode'-userDefinedFunctionResource-    :: UserDefinedFunctionResource-userDefinedFunctionResource =-    UserDefinedFunctionResource'-    { _udfrResourceURI = Nothing-    , _udfrInlineCode = Nothing-    }---- | [Pick one] A code resource to load from a Google Cloud Storage URI--- (gs:\/\/bucket\/path).-udfrResourceURI :: Lens' UserDefinedFunctionResource (Maybe Text)-udfrResourceURI-  = lens _udfrResourceURI-      (\ s a -> s{_udfrResourceURI = a})---- | [Pick one] An inline resource that contains code for a user-defined--- function (UDF). Providing a inline code resource is equivalent to--- providing a URI for a file containing the same code.-udfrInlineCode :: Lens' UserDefinedFunctionResource (Maybe Text)-udfrInlineCode-  = lens _udfrInlineCode-      (\ s a -> s{_udfrInlineCode = a})--instance FromJSON UserDefinedFunctionResource where-        parseJSON-          = withObject "UserDefinedFunctionResource"-              (\ o ->-                 UserDefinedFunctionResource' <$>-                   (o .:? "resourceUri") <*> (o .:? "inlineCode"))--instance ToJSON UserDefinedFunctionResource where-        toJSON UserDefinedFunctionResource'{..}-          = object-              (catMaybes-                 [("resourceUri" .=) <$> _udfrResourceURI,-                  ("inlineCode" .=) <$> _udfrInlineCode])------- /See:/ 'jobStatistics2' smart constructor.-data JobStatistics2 = JobStatistics2'-    { _jSchema                    :: !(Maybe TableSchema)-    , _jTotalBytesProcessed       :: !(Maybe (Textual Int64))-    , _jBillingTier               :: !(Maybe (Textual Int32))-    , _jUndeclaredQueryParameters :: !(Maybe [QueryParameter])-    , _jReferencedTables          :: !(Maybe [TableReference])-    , _jStatementType             :: !(Maybe Text)-    , _jNumDmlAffectedRows        :: !(Maybe (Textual Int64))-    , _jQueryPlan                 :: !(Maybe [ExplainQueryStage])-    , _jCacheHit                  :: !(Maybe Bool)-    , _jTotalBytesBilled          :: !(Maybe (Textual Int64))-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'JobStatistics2' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'jSchema'------ * 'jTotalBytesProcessed'------ * 'jBillingTier'------ * 'jUndeclaredQueryParameters'------ * 'jReferencedTables'------ * 'jStatementType'------ * 'jNumDmlAffectedRows'------ * 'jQueryPlan'------ * 'jCacheHit'------ * 'jTotalBytesBilled'-jobStatistics2-    :: JobStatistics2-jobStatistics2 =-    JobStatistics2'-    { _jSchema = Nothing-    , _jTotalBytesProcessed = Nothing-    , _jBillingTier = Nothing-    , _jUndeclaredQueryParameters = Nothing-    , _jReferencedTables = Nothing-    , _jStatementType = Nothing-    , _jNumDmlAffectedRows = Nothing-    , _jQueryPlan = Nothing-    , _jCacheHit = Nothing-    , _jTotalBytesBilled = Nothing-    }---- | [Output-only, Experimental] The schema of the results. Present only for--- successful dry run of non-legacy SQL queries.-jSchema :: Lens' JobStatistics2 (Maybe TableSchema)-jSchema = lens _jSchema (\ s a -> s{_jSchema = a})---- | [Output-only] Total bytes processed for the job.-jTotalBytesProcessed :: Lens' JobStatistics2 (Maybe Int64)-jTotalBytesProcessed-  = lens _jTotalBytesProcessed-      (\ s a -> s{_jTotalBytesProcessed = a})-      . mapping _Coerce---- | [Output-only] Billing tier for the job.-jBillingTier :: Lens' JobStatistics2 (Maybe Int32)-jBillingTier-  = lens _jBillingTier (\ s a -> s{_jBillingTier = a})-      . mapping _Coerce---- | [Output-only, Experimental] Standard SQL only: list of undeclared query--- parameters detected during a dry run validation.-jUndeclaredQueryParameters :: Lens' JobStatistics2 [QueryParameter]-jUndeclaredQueryParameters-  = lens _jUndeclaredQueryParameters-      (\ s a -> s{_jUndeclaredQueryParameters = a})-      . _Default-      . _Coerce---- | [Output-only, Experimental] Referenced tables for the job. Queries that--- reference more than 50 tables will not have a complete list.-jReferencedTables :: Lens' JobStatistics2 [TableReference]-jReferencedTables-  = lens _jReferencedTables-      (\ s a -> s{_jReferencedTables = a})-      . _Default-      . _Coerce---- | [Output-only, Experimental] The type of query statement, if valid.-jStatementType :: Lens' JobStatistics2 (Maybe Text)-jStatementType-  = lens _jStatementType-      (\ s a -> s{_jStatementType = a})---- | [Output-only, Experimental] The number of rows affected by a DML--- statement. Present only for DML statements INSERT, UPDATE or DELETE.-jNumDmlAffectedRows :: Lens' JobStatistics2 (Maybe Int64)-jNumDmlAffectedRows-  = lens _jNumDmlAffectedRows-      (\ s a -> s{_jNumDmlAffectedRows = a})-      . mapping _Coerce---- | [Output-only, Experimental] Describes execution plan for the query.-jQueryPlan :: Lens' JobStatistics2 [ExplainQueryStage]-jQueryPlan-  = lens _jQueryPlan (\ s a -> s{_jQueryPlan = a}) .-      _Default-      . _Coerce---- | [Output-only] Whether the query result was fetched from the query cache.-jCacheHit :: Lens' JobStatistics2 (Maybe Bool)-jCacheHit-  = lens _jCacheHit (\ s a -> s{_jCacheHit = a})---- | [Output-only] Total bytes billed for the job.-jTotalBytesBilled :: Lens' JobStatistics2 (Maybe Int64)-jTotalBytesBilled-  = lens _jTotalBytesBilled-      (\ s a -> s{_jTotalBytesBilled = a})-      . mapping _Coerce--instance FromJSON JobStatistics2 where-        parseJSON-          = withObject "JobStatistics2"-              (\ o ->-                 JobStatistics2' <$>-                   (o .:? "schema") <*> (o .:? "totalBytesProcessed")-                     <*> (o .:? "billingTier")-                     <*> (o .:? "undeclaredQueryParameters" .!= mempty)-                     <*> (o .:? "referencedTables" .!= mempty)-                     <*> (o .:? "statementType")-                     <*> (o .:? "numDmlAffectedRows")-                     <*> (o .:? "queryPlan" .!= mempty)-                     <*> (o .:? "cacheHit")-                     <*> (o .:? "totalBytesBilled"))--instance ToJSON JobStatistics2 where-        toJSON JobStatistics2'{..}-          = object-              (catMaybes-                 [("schema" .=) <$> _jSchema,-                  ("totalBytesProcessed" .=) <$> _jTotalBytesProcessed,-                  ("billingTier" .=) <$> _jBillingTier,-                  ("undeclaredQueryParameters" .=) <$>-                    _jUndeclaredQueryParameters,-                  ("referencedTables" .=) <$> _jReferencedTables,-                  ("statementType" .=) <$> _jStatementType,-                  ("numDmlAffectedRows" .=) <$> _jNumDmlAffectedRows,-                  ("queryPlan" .=) <$> _jQueryPlan,-                  ("cacheHit" .=) <$> _jCacheHit,-                  ("totalBytesBilled" .=) <$> _jTotalBytesBilled])------- /See:/ 'jobStatus' smart constructor.-data JobStatus = JobStatus'-    { _jsState       :: !(Maybe Text)-    , _jsErrorResult :: !(Maybe ErrorProto)-    , _jsErrors      :: !(Maybe [ErrorProto])-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'JobStatus' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'jsState'------ * 'jsErrorResult'------ * 'jsErrors'-jobStatus-    :: JobStatus-jobStatus =-    JobStatus'-    { _jsState = Nothing-    , _jsErrorResult = Nothing-    , _jsErrors = Nothing-    }---- | [Output-only] Running state of the job.-jsState :: Lens' JobStatus (Maybe Text)-jsState = lens _jsState (\ s a -> s{_jsState = a})---- | [Output-only] Final error result of the job. If present, indicates that--- the job has completed and was unsuccessful.-jsErrorResult :: Lens' JobStatus (Maybe ErrorProto)-jsErrorResult-  = lens _jsErrorResult-      (\ s a -> s{_jsErrorResult = a})---- | [Output-only] All errors encountered during the running of the job.--- Errors here do not necessarily mean that the job has completed or was--- unsuccessful.-jsErrors :: Lens' JobStatus [ErrorProto]-jsErrors-  = lens _jsErrors (\ s a -> s{_jsErrors = a}) .-      _Default-      . _Coerce--instance FromJSON JobStatus where-        parseJSON-          = withObject "JobStatus"-              (\ o ->-                 JobStatus' <$>-                   (o .:? "state") <*> (o .:? "errorResult") <*>-                     (o .:? "errors" .!= mempty))--instance ToJSON JobStatus where-        toJSON JobStatus'{..}-          = object-              (catMaybes-                 [("state" .=) <$> _jsState,-                  ("errorResult" .=) <$> _jsErrorResult,-                  ("errors" .=) <$> _jsErrors])---- | [Experimental] The labels associated with this table. You can use these--- to organize and group your tables. Label keys and values can be no--- longer than 63 characters, can only contain letters, numeric characters,--- underscores and dashes. International characters are allowed. Label--- values are optional. Label keys must start with a letter and must be--- unique within a dataset. Both keys and values are additionally--- constrained to be \<= 128 bytes in size.------ /See:/ 'tableLabels' smart constructor.-newtype TableLabels = TableLabels'-    { _tlAddtional :: HashMap Text Text-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'TableLabels' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'tlAddtional'-tableLabels-    :: HashMap Text Text -- ^ 'tlAddtional'-    -> TableLabels-tableLabels pTlAddtional_ =-    TableLabels'-    { _tlAddtional = _Coerce # pTlAddtional_-    }--tlAddtional :: Lens' TableLabels (HashMap Text Text)-tlAddtional-  = lens _tlAddtional (\ s a -> s{_tlAddtional = a}) .-      _Coerce--instance FromJSON TableLabels where-        parseJSON-          = withObject "TableLabels"-              (\ o -> TableLabels' <$> (parseJSONObject o))--instance ToJSON TableLabels where-        toJSON = toJSON . _tlAddtional------- /See:/ 'dataSetAccessItem' smart constructor.-data DataSetAccessItem = DataSetAccessItem'-    { _dsaiGroupByEmail :: !(Maybe Text)-    , _dsaiDomain       :: !(Maybe Text)-    , _dsaiSpecialGroup :: !(Maybe Text)-    , _dsaiRole         :: !(Maybe Text)-    , _dsaiView         :: !(Maybe TableReference)-    , _dsaiUserByEmail  :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'DataSetAccessItem' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'dsaiGroupByEmail'------ * 'dsaiDomain'------ * 'dsaiSpecialGroup'------ * 'dsaiRole'------ * 'dsaiView'------ * 'dsaiUserByEmail'-dataSetAccessItem-    :: DataSetAccessItem-dataSetAccessItem =-    DataSetAccessItem'-    { _dsaiGroupByEmail = Nothing-    , _dsaiDomain = Nothing-    , _dsaiSpecialGroup = Nothing-    , _dsaiRole = Nothing-    , _dsaiView = Nothing-    , _dsaiUserByEmail = Nothing-    }---- | [Pick one] An email address of a Google Group to grant access to.-dsaiGroupByEmail :: Lens' DataSetAccessItem (Maybe Text)-dsaiGroupByEmail-  = lens _dsaiGroupByEmail-      (\ s a -> s{_dsaiGroupByEmail = a})---- | [Pick one] A domain to grant access to. Any users signed in with the--- domain specified will be granted the specified access. Example:--- \"example.com\".-dsaiDomain :: Lens' DataSetAccessItem (Maybe Text)-dsaiDomain-  = lens _dsaiDomain (\ s a -> s{_dsaiDomain = a})---- | [Pick one] A special group to grant access to. Possible values include:--- projectOwners: Owners of the enclosing project. projectReaders: Readers--- of the enclosing project. projectWriters: Writers of the enclosing--- project. allAuthenticatedUsers: All authenticated BigQuery users.-dsaiSpecialGroup :: Lens' DataSetAccessItem (Maybe Text)-dsaiSpecialGroup-  = lens _dsaiSpecialGroup-      (\ s a -> s{_dsaiSpecialGroup = a})---- | [Required] Describes the rights granted to the user specified by the--- other member of the access object. The following string values are--- supported: READER, WRITER, OWNER.-dsaiRole :: Lens' DataSetAccessItem (Maybe Text)-dsaiRole = lens _dsaiRole (\ s a -> s{_dsaiRole = a})---- | [Pick one] A view from a different dataset to grant access to. Queries--- executed against that view will have read access to tables in this--- dataset. The role field is not required when this field is set. If that--- view is updated by any user, access to the view needs to be granted--- again via an update operation.-dsaiView :: Lens' DataSetAccessItem (Maybe TableReference)-dsaiView = lens _dsaiView (\ s a -> s{_dsaiView = a})---- | [Pick one] An email address of a user to grant access to. For example:--- fred\'example.com.-dsaiUserByEmail :: Lens' DataSetAccessItem (Maybe Text)-dsaiUserByEmail-  = lens _dsaiUserByEmail-      (\ s a -> s{_dsaiUserByEmail = a})--instance FromJSON DataSetAccessItem where-        parseJSON-          = withObject "DataSetAccessItem"-              (\ o ->-                 DataSetAccessItem' <$>-                   (o .:? "groupByEmail") <*> (o .:? "domain") <*>-                     (o .:? "specialGroup")-                     <*> (o .:? "role")-                     <*> (o .:? "view")-                     <*> (o .:? "userByEmail"))--instance ToJSON DataSetAccessItem where-        toJSON DataSetAccessItem'{..}-          = object-              (catMaybes-                 [("groupByEmail" .=) <$> _dsaiGroupByEmail,-                  ("domain" .=) <$> _dsaiDomain,-                  ("specialGroup" .=) <$> _dsaiSpecialGroup,-                  ("role" .=) <$> _dsaiRole, ("view" .=) <$> _dsaiView,-                  ("userByEmail" .=) <$> _dsaiUserByEmail])------- /See:/ 'tableDataInsertAllResponse' smart constructor.-data TableDataInsertAllResponse = TableDataInsertAllResponse'-    { _tKind         :: !Text-    , _tInsertErrors :: !(Maybe [TableDataInsertAllResponseInsertErrorsItem])-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'TableDataInsertAllResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'tKind'------ * 'tInsertErrors'-tableDataInsertAllResponse-    :: TableDataInsertAllResponse-tableDataInsertAllResponse =-    TableDataInsertAllResponse'-    { _tKind = "bigquery#tableDataInsertAllResponse"-    , _tInsertErrors = Nothing-    }---- | The resource type of the response.-tKind :: Lens' TableDataInsertAllResponse Text-tKind = lens _tKind (\ s a -> s{_tKind = a})---- | An array of errors for rows that were not inserted.-tInsertErrors :: Lens' TableDataInsertAllResponse [TableDataInsertAllResponseInsertErrorsItem]-tInsertErrors-  = lens _tInsertErrors-      (\ s a -> s{_tInsertErrors = a})-      . _Default-      . _Coerce--instance FromJSON TableDataInsertAllResponse where-        parseJSON-          = withObject "TableDataInsertAllResponse"-              (\ o ->-                 TableDataInsertAllResponse' <$>-                   (o .:? "kind" .!=-                      "bigquery#tableDataInsertAllResponse")-                     <*> (o .:? "insertErrors" .!= mempty))--instance ToJSON TableDataInsertAllResponse where-        toJSON TableDataInsertAllResponse'{..}-          = object-              (catMaybes-                 [Just ("kind" .= _tKind),-                  ("insertErrors" .=) <$> _tInsertErrors])------- /See:/ 'queryParameterType' smart constructor.-data QueryParameterType = QueryParameterType'-    { _qptStructTypes :: !(Maybe [QueryParameterTypeStructTypesItem])-    , _qptType        :: !(Maybe Text)-    , _qptArrayType   :: !(Maybe QueryParameterType)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'QueryParameterType' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'qptStructTypes'------ * 'qptType'------ * 'qptArrayType'-queryParameterType-    :: QueryParameterType-queryParameterType =-    QueryParameterType'-    { _qptStructTypes = Nothing-    , _qptType = Nothing-    , _qptArrayType = Nothing-    }---- | [Optional] The types of the fields of this struct, in order, if this is--- a struct.-qptStructTypes :: Lens' QueryParameterType [QueryParameterTypeStructTypesItem]-qptStructTypes-  = lens _qptStructTypes-      (\ s a -> s{_qptStructTypes = a})-      . _Default-      . _Coerce---- | [Required] The top level type of this field.-qptType :: Lens' QueryParameterType (Maybe Text)-qptType = lens _qptType (\ s a -> s{_qptType = a})---- | [Optional] The type of the array\'s elements, if this is an array.-qptArrayType :: Lens' QueryParameterType (Maybe QueryParameterType)-qptArrayType-  = lens _qptArrayType (\ s a -> s{_qptArrayType = a})--instance FromJSON QueryParameterType where-        parseJSON-          = withObject "QueryParameterType"-              (\ o ->-                 QueryParameterType' <$>-                   (o .:? "structTypes" .!= mempty) <*> (o .:? "type")-                     <*> (o .:? "arrayType"))--instance ToJSON QueryParameterType where-        toJSON QueryParameterType'{..}-          = object-              (catMaybes-                 [("structTypes" .=) <$> _qptStructTypes,-                  ("type" .=) <$> _qptType,-                  ("arrayType" .=) <$> _qptArrayType])------- /See:/ 'table' smart constructor.-data Table = Table'-    { _tabCreationTime              :: !(Maybe (Textual Int64))-    , _tabEtag                      :: !(Maybe Text)-    , _tabNumBytes                  :: !(Maybe (Textual Int64))-    , _tabExternalDataConfiguration :: !(Maybe ExternalDataConfiguration)-    , _tabLocation                  :: !(Maybe Text)-    , _tabTableReference            :: !(Maybe TableReference)-    , _tabFriendlyName              :: !(Maybe Text)-    , _tabKind                      :: !Text-    , _tabLastModifiedTime          :: !(Maybe (Textual Word64))-    , _tabSchema                    :: !(Maybe TableSchema)-    , _tabStreamingBuffer           :: !(Maybe Streamingbuffer)-    , _tabSelfLink                  :: !(Maybe Text)-    , _tabTimePartitioning          :: !(Maybe TimePartitioning)-    , _tabNumRows                   :: !(Maybe (Textual Word64))-    , _tabView                      :: !(Maybe ViewDefinition)-    , _tabId                        :: !(Maybe Text)-    , _tabLabels                    :: !(Maybe TableLabels)-    , _tabType                      :: !(Maybe Text)-    , _tabNumLongTermBytes          :: !(Maybe (Textual Int64))-    , _tabExpirationTime            :: !(Maybe (Textual Int64))-    , _tabDescription               :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'Table' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'tabCreationTime'------ * 'tabEtag'------ * 'tabNumBytes'------ * 'tabExternalDataConfiguration'------ * 'tabLocation'------ * 'tabTableReference'------ * 'tabFriendlyName'------ * 'tabKind'------ * 'tabLastModifiedTime'------ * 'tabSchema'------ * 'tabStreamingBuffer'------ * 'tabSelfLink'------ * 'tabTimePartitioning'------ * 'tabNumRows'------ * 'tabView'------ * 'tabId'------ * 'tabLabels'------ * 'tabType'------ * 'tabNumLongTermBytes'------ * 'tabExpirationTime'------ * 'tabDescription'-table-    :: Table-table =-    Table'-    { _tabCreationTime = Nothing-    , _tabEtag = Nothing-    , _tabNumBytes = Nothing-    , _tabExternalDataConfiguration = Nothing-    , _tabLocation = Nothing-    , _tabTableReference = Nothing-    , _tabFriendlyName = Nothing-    , _tabKind = "bigquery#table"-    , _tabLastModifiedTime = Nothing-    , _tabSchema = Nothing-    , _tabStreamingBuffer = Nothing-    , _tabSelfLink = Nothing-    , _tabTimePartitioning = Nothing-    , _tabNumRows = Nothing-    , _tabView = Nothing-    , _tabId = Nothing-    , _tabLabels = Nothing-    , _tabType = Nothing-    , _tabNumLongTermBytes = Nothing-    , _tabExpirationTime = Nothing-    , _tabDescription = Nothing-    }---- | [Output-only] The time when this table was created, in milliseconds--- since the epoch.-tabCreationTime :: Lens' Table (Maybe Int64)-tabCreationTime-  = lens _tabCreationTime-      (\ s a -> s{_tabCreationTime = a})-      . mapping _Coerce---- | [Output-only] A hash of this resource.-tabEtag :: Lens' Table (Maybe Text)-tabEtag = lens _tabEtag (\ s a -> s{_tabEtag = a})---- | [Output-only] The size of this table in bytes, excluding any data in the--- streaming buffer.-tabNumBytes :: Lens' Table (Maybe Int64)-tabNumBytes-  = lens _tabNumBytes (\ s a -> s{_tabNumBytes = a}) .-      mapping _Coerce---- | [Optional] Describes the data format, location, and other properties of--- a table stored outside of BigQuery. By defining these properties, the--- data source can then be queried as if it were a standard BigQuery table.-tabExternalDataConfiguration :: Lens' Table (Maybe ExternalDataConfiguration)-tabExternalDataConfiguration-  = lens _tabExternalDataConfiguration-      (\ s a -> s{_tabExternalDataConfiguration = a})---- | [Output-only] The geographic location where the table resides. This--- value is inherited from the dataset.-tabLocation :: Lens' Table (Maybe Text)-tabLocation-  = lens _tabLocation (\ s a -> s{_tabLocation = a})---- | [Required] Reference describing the ID of this table.-tabTableReference :: Lens' Table (Maybe TableReference)-tabTableReference-  = lens _tabTableReference-      (\ s a -> s{_tabTableReference = a})---- | [Optional] A descriptive name for this table.-tabFriendlyName :: Lens' Table (Maybe Text)-tabFriendlyName-  = lens _tabFriendlyName-      (\ s a -> s{_tabFriendlyName = a})---- | [Output-only] The type of the resource.-tabKind :: Lens' Table Text-tabKind = lens _tabKind (\ s a -> s{_tabKind = a})---- | [Output-only] The time when this table was last modified, in--- milliseconds since the epoch.-tabLastModifiedTime :: Lens' Table (Maybe Word64)-tabLastModifiedTime-  = lens _tabLastModifiedTime-      (\ s a -> s{_tabLastModifiedTime = a})-      . mapping _Coerce---- | [Optional] Describes the schema of this table.-tabSchema :: Lens' Table (Maybe TableSchema)-tabSchema-  = lens _tabSchema (\ s a -> s{_tabSchema = a})---- | [Output-only] Contains information regarding this table\'s streaming--- buffer, if one is present. This field will be absent if the table is not--- being streamed to or if there is no data in the streaming buffer.-tabStreamingBuffer :: Lens' Table (Maybe Streamingbuffer)-tabStreamingBuffer-  = lens _tabStreamingBuffer-      (\ s a -> s{_tabStreamingBuffer = a})---- | [Output-only] A URL that can be used to access this resource again.-tabSelfLink :: Lens' Table (Maybe Text)-tabSelfLink-  = lens _tabSelfLink (\ s a -> s{_tabSelfLink = a})---- | [Experimental] If specified, configures time-based partitioning for this--- table.-tabTimePartitioning :: Lens' Table (Maybe TimePartitioning)-tabTimePartitioning-  = lens _tabTimePartitioning-      (\ s a -> s{_tabTimePartitioning = a})---- | [Output-only] The number of rows of data in this table, excluding any--- data in the streaming buffer.-tabNumRows :: Lens' Table (Maybe Word64)-tabNumRows-  = lens _tabNumRows (\ s a -> s{_tabNumRows = a}) .-      mapping _Coerce---- | [Optional] The view definition.-tabView :: Lens' Table (Maybe ViewDefinition)-tabView = lens _tabView (\ s a -> s{_tabView = a})---- | [Output-only] An opaque ID uniquely identifying the table.-tabId :: Lens' Table (Maybe Text)-tabId = lens _tabId (\ s a -> s{_tabId = a})---- | [Experimental] The labels associated with this table. You can use these--- to organize and group your tables. Label keys and values can be no--- longer than 63 characters, can only contain letters, numeric characters,--- underscores and dashes. International characters are allowed. Label--- values are optional. Label keys must start with a letter and must be--- unique within a dataset. Both keys and values are additionally--- constrained to be \<= 128 bytes in size.-tabLabels :: Lens' Table (Maybe TableLabels)-tabLabels-  = lens _tabLabels (\ s a -> s{_tabLabels = a})---- | [Output-only] Describes the table type. The following values are--- supported: TABLE: A normal BigQuery table. VIEW: A virtual table defined--- by a SQL query. EXTERNAL: A table that references data stored in an--- external storage system, such as Google Cloud Storage. The default value--- is TABLE.-tabType :: Lens' Table (Maybe Text)-tabType = lens _tabType (\ s a -> s{_tabType = a})---- | [Output-only] The number of bytes in the table that are considered--- \"long-term storage\".-tabNumLongTermBytes :: Lens' Table (Maybe Int64)-tabNumLongTermBytes-  = lens _tabNumLongTermBytes-      (\ s a -> s{_tabNumLongTermBytes = a})-      . mapping _Coerce---- | [Optional] The time when this table expires, in milliseconds since the--- epoch. If not present, the table will persist indefinitely. Expired--- tables will be deleted and their storage reclaimed.-tabExpirationTime :: Lens' Table (Maybe Int64)-tabExpirationTime-  = lens _tabExpirationTime-      (\ s a -> s{_tabExpirationTime = a})-      . mapping _Coerce---- | [Optional] A user-friendly description of this table.-tabDescription :: Lens' Table (Maybe Text)-tabDescription-  = lens _tabDescription-      (\ s a -> s{_tabDescription = a})--instance FromJSON Table where-        parseJSON-          = withObject "Table"-              (\ o ->-                 Table' <$>-                   (o .:? "creationTime") <*> (o .:? "etag") <*>-                     (o .:? "numBytes")-                     <*> (o .:? "externalDataConfiguration")-                     <*> (o .:? "location")-                     <*> (o .:? "tableReference")-                     <*> (o .:? "friendlyName")-                     <*> (o .:? "kind" .!= "bigquery#table")-                     <*> (o .:? "lastModifiedTime")-                     <*> (o .:? "schema")-                     <*> (o .:? "streamingBuffer")-                     <*> (o .:? "selfLink")-                     <*> (o .:? "timePartitioning")-                     <*> (o .:? "numRows")-                     <*> (o .:? "view")-                     <*> (o .:? "id")-                     <*> (o .:? "labels")-                     <*> (o .:? "type")-                     <*> (o .:? "numLongTermBytes")-                     <*> (o .:? "expirationTime")-                     <*> (o .:? "description"))--instance ToJSON Table where-        toJSON Table'{..}-          = object-              (catMaybes-                 [("creationTime" .=) <$> _tabCreationTime,-                  ("etag" .=) <$> _tabEtag,-                  ("numBytes" .=) <$> _tabNumBytes,-                  ("externalDataConfiguration" .=) <$>-                    _tabExternalDataConfiguration,-                  ("location" .=) <$> _tabLocation,-                  ("tableReference" .=) <$> _tabTableReference,-                  ("friendlyName" .=) <$> _tabFriendlyName,-                  Just ("kind" .= _tabKind),-                  ("lastModifiedTime" .=) <$> _tabLastModifiedTime,-                  ("schema" .=) <$> _tabSchema,-                  ("streamingBuffer" .=) <$> _tabStreamingBuffer,-                  ("selfLink" .=) <$> _tabSelfLink,-                  ("timePartitioning" .=) <$> _tabTimePartitioning,-                  ("numRows" .=) <$> _tabNumRows,-                  ("view" .=) <$> _tabView, ("id" .=) <$> _tabId,-                  ("labels" .=) <$> _tabLabels,-                  ("type" .=) <$> _tabType,-                  ("numLongTermBytes" .=) <$> _tabNumLongTermBytes,-                  ("expirationTime" .=) <$> _tabExpirationTime,-                  ("description" .=) <$> _tabDescription])------- /See:/ 'errorProto' smart constructor.-data ErrorProto = ErrorProto'-    { _epDebugInfo :: !(Maybe Text)-    , _epLocation  :: !(Maybe Text)-    , _epReason    :: !(Maybe Text)-    , _epMessage   :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'ErrorProto' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'epDebugInfo'------ * 'epLocation'------ * 'epReason'------ * 'epMessage'-errorProto-    :: ErrorProto-errorProto =-    ErrorProto'-    { _epDebugInfo = Nothing-    , _epLocation = Nothing-    , _epReason = Nothing-    , _epMessage = Nothing-    }---- | Debugging information. This property is internal to Google and should--- not be used.-epDebugInfo :: Lens' ErrorProto (Maybe Text)-epDebugInfo-  = lens _epDebugInfo (\ s a -> s{_epDebugInfo = a})---- | Specifies where the error occurred, if present.-epLocation :: Lens' ErrorProto (Maybe Text)-epLocation-  = lens _epLocation (\ s a -> s{_epLocation = a})---- | A short error code that summarizes the error.-epReason :: Lens' ErrorProto (Maybe Text)-epReason = lens _epReason (\ s a -> s{_epReason = a})---- | A human-readable description of the error.-epMessage :: Lens' ErrorProto (Maybe Text)-epMessage-  = lens _epMessage (\ s a -> s{_epMessage = a})--instance FromJSON ErrorProto where-        parseJSON-          = withObject "ErrorProto"-              (\ o ->-                 ErrorProto' <$>-                   (o .:? "debugInfo") <*> (o .:? "location") <*>-                     (o .:? "reason")-                     <*> (o .:? "message"))--instance ToJSON ErrorProto where-        toJSON ErrorProto'{..}-          = object-              (catMaybes-                 [("debugInfo" .=) <$> _epDebugInfo,-                  ("location" .=) <$> _epLocation,-                  ("reason" .=) <$> _epReason,-                  ("message" .=) <$> _epMessage])------- /See:/ 'csvOptions' smart constructor.-data CSVOptions = CSVOptions'-    { _coSkipLeadingRows     :: !(Maybe (Textual Int64))-    , _coAllowJaggedRows     :: !(Maybe Bool)-    , _coAllowQuotedNewlines :: !(Maybe Bool)-    , _coQuote               :: !Text-    , _coEncoding            :: !(Maybe Text)-    , _coFieldDelimiter      :: !(Maybe Text)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'CSVOptions' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'coSkipLeadingRows'------ * 'coAllowJaggedRows'------ * 'coAllowQuotedNewlines'------ * 'coQuote'------ * 'coEncoding'------ * 'coFieldDelimiter'-csvOptions-    :: CSVOptions-csvOptions =-    CSVOptions'-    { _coSkipLeadingRows = Nothing-    , _coAllowJaggedRows = Nothing-    , _coAllowQuotedNewlines = Nothing-    , _coQuote = "\""-    , _coEncoding = Nothing-    , _coFieldDelimiter = Nothing-    }---- | [Optional] The number of rows at the top of a CSV file that BigQuery--- will skip when reading the data. The default value is 0. This property--- is useful if you have header rows in the file that should be skipped.-coSkipLeadingRows :: Lens' CSVOptions (Maybe Int64)-coSkipLeadingRows-  = lens _coSkipLeadingRows-      (\ s a -> s{_coSkipLeadingRows = a})-      . mapping _Coerce---- | [Optional] Indicates if BigQuery should accept rows that are missing--- trailing optional columns. If true, BigQuery treats missing trailing--- columns as null values. If false, records with missing trailing columns--- are treated as bad records, and if there are too many bad records, an--- invalid error is returned in the job result. The default value is false.-coAllowJaggedRows :: Lens' CSVOptions (Maybe Bool)-coAllowJaggedRows-  = lens _coAllowJaggedRows-      (\ s a -> s{_coAllowJaggedRows = a})---- | [Optional] Indicates if BigQuery should allow quoted data sections that--- contain newline characters in a CSV file. The default value is false.-coAllowQuotedNewlines :: Lens' CSVOptions (Maybe Bool)-coAllowQuotedNewlines-  = lens _coAllowQuotedNewlines-      (\ s a -> s{_coAllowQuotedNewlines = a})---- | [Optional] The value that is used to quote data sections in a CSV file.--- BigQuery converts the string to ISO-8859-1 encoding, and then uses the--- first byte of the encoded string to split the data in its raw, binary--- state. The default value is a double-quote (\'\"\'). If your data does--- not contain quoted sections, set the property value to an empty string.--- If your data contains quoted newline characters, you must also set the--- allowQuotedNewlines property to true.-coQuote :: Lens' CSVOptions Text-coQuote = lens _coQuote (\ s a -> s{_coQuote = a})---- | [Optional] The character encoding of the data. The supported values are--- UTF-8 or ISO-8859-1. The default value is UTF-8. BigQuery decodes the--- data after the raw, binary data has been split using the values of the--- quote and fieldDelimiter properties.-coEncoding :: Lens' CSVOptions (Maybe Text)-coEncoding-  = lens _coEncoding (\ s a -> s{_coEncoding = a})---- | [Optional] The separator for fields in a CSV file. BigQuery converts the--- string to ISO-8859-1 encoding, and then uses the first byte of the--- encoded string to split the data in its raw, binary state. BigQuery also--- supports the escape sequence \"\\t\" to specify a tab separator. The--- default value is a comma (\',\').-coFieldDelimiter :: Lens' CSVOptions (Maybe Text)-coFieldDelimiter-  = lens _coFieldDelimiter-      (\ s a -> s{_coFieldDelimiter = a})--instance FromJSON CSVOptions where-        parseJSON-          = withObject "CSVOptions"-              (\ o ->-                 CSVOptions' <$>-                   (o .:? "skipLeadingRows") <*>-                     (o .:? "allowJaggedRows")-                     <*> (o .:? "allowQuotedNewlines")-                     <*> (o .:? "quote" .!= "\"")-                     <*> (o .:? "encoding")-                     <*> (o .:? "fieldDelimiter"))--instance ToJSON CSVOptions where-        toJSON CSVOptions'{..}-          = object-              (catMaybes-                 [("skipLeadingRows" .=) <$> _coSkipLeadingRows,-                  ("allowJaggedRows" .=) <$> _coAllowJaggedRows,-                  ("allowQuotedNewlines" .=) <$>-                    _coAllowQuotedNewlines,-                  Just ("quote" .= _coQuote),-                  ("encoding" .=) <$> _coEncoding,-                  ("fieldDelimiter" .=) <$> _coFieldDelimiter])------- /See:/ 'jobStatistics3' smart constructor.-data JobStatistics3 = JobStatistics3'-    { _jsInputFiles     :: !(Maybe (Textual Int64))-    , _jsOutputRows     :: !(Maybe (Textual Int64))-    , _jsOutputBytes    :: !(Maybe (Textual Int64))-    , _jsInputFileBytes :: !(Maybe (Textual Int64))-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'JobStatistics3' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'jsInputFiles'------ * 'jsOutputRows'------ * 'jsOutputBytes'------ * 'jsInputFileBytes'-jobStatistics3-    :: JobStatistics3-jobStatistics3 =-    JobStatistics3'-    { _jsInputFiles = Nothing-    , _jsOutputRows = Nothing-    , _jsOutputBytes = Nothing-    , _jsInputFileBytes = Nothing-    }---- | [Output-only] Number of source files in a load job.-jsInputFiles :: Lens' JobStatistics3 (Maybe Int64)-jsInputFiles-  = lens _jsInputFiles (\ s a -> s{_jsInputFiles = a})-      . mapping _Coerce---- | [Output-only] Number of rows imported in a load job. Note that while an--- import job is in the running state, this value may change.-jsOutputRows :: Lens' JobStatistics3 (Maybe Int64)-jsOutputRows-  = lens _jsOutputRows (\ s a -> s{_jsOutputRows = a})-      . mapping _Coerce---- | [Output-only] Size of the loaded data in bytes. Note that while a load--- job is in the running state, this value may change.-jsOutputBytes :: Lens' JobStatistics3 (Maybe Int64)-jsOutputBytes-  = lens _jsOutputBytes-      (\ s a -> s{_jsOutputBytes = a})-      . mapping _Coerce---- | [Output-only] Number of bytes of source data in a load job.-jsInputFileBytes :: Lens' JobStatistics3 (Maybe Int64)-jsInputFileBytes-  = lens _jsInputFileBytes-      (\ s a -> s{_jsInputFileBytes = a})-      . mapping _Coerce--instance FromJSON JobStatistics3 where-        parseJSON-          = withObject "JobStatistics3"-              (\ o ->-                 JobStatistics3' <$>-                   (o .:? "inputFiles") <*> (o .:? "outputRows") <*>-                     (o .:? "outputBytes")-                     <*> (o .:? "inputFileBytes"))--instance ToJSON JobStatistics3 where-        toJSON JobStatistics3'{..}-          = object-              (catMaybes-                 [("inputFiles" .=) <$> _jsInputFiles,-                  ("outputRows" .=) <$> _jsOutputRows,-                  ("outputBytes" .=) <$> _jsOutputBytes,-                  ("inputFileBytes" .=) <$> _jsInputFileBytes])------- /See:/ 'queryResponse' smart constructor.-data QueryResponse = QueryResponse'-    { _qJobReference        :: !(Maybe JobReference)-    , _qKind                :: !Text-    , _qSchema              :: !(Maybe TableSchema)-    , _qTotalBytesProcessed :: !(Maybe (Textual Int64))-    , _qRows                :: !(Maybe [TableRow])-    , _qPageToken           :: !(Maybe Text)-    , _qNumDmlAffectedRows  :: !(Maybe (Textual Int64))-    , _qTotalRows           :: !(Maybe (Textual Word64))-    , _qErrors              :: !(Maybe [ErrorProto])-    , _qJobComplete         :: !(Maybe Bool)-    , _qCacheHit            :: !(Maybe Bool)-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'QueryResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'qJobReference'------ * 'qKind'------ * 'qSchema'------ * 'qTotalBytesProcessed'------ * 'qRows'------ * 'qPageToken'------ * 'qNumDmlAffectedRows'------ * 'qTotalRows'------ * 'qErrors'------ * 'qJobComplete'------ * 'qCacheHit'-queryResponse-    :: QueryResponse-queryResponse =-    QueryResponse'-    { _qJobReference = Nothing-    , _qKind = "bigquery#queryResponse"-    , _qSchema = Nothing-    , _qTotalBytesProcessed = Nothing-    , _qRows = Nothing-    , _qPageToken = Nothing-    , _qNumDmlAffectedRows = Nothing-    , _qTotalRows = Nothing-    , _qErrors = Nothing-    , _qJobComplete = Nothing-    , _qCacheHit = Nothing-    }---- | Reference to the Job that was created to run the query. This field will--- be present even if the original request timed out, in which case--- GetQueryResults can be used to read the results once the query has--- completed. Since this API only returns the first page of results,--- subsequent pages can be fetched via the same mechanism--- (GetQueryResults).-qJobReference :: Lens' QueryResponse (Maybe JobReference)-qJobReference-  = lens _qJobReference-      (\ s a -> s{_qJobReference = a})---- | The resource type.-qKind :: Lens' QueryResponse Text-qKind = lens _qKind (\ s a -> s{_qKind = a})---- | The schema of the results. Present only when the query completes--- successfully.-qSchema :: Lens' QueryResponse (Maybe TableSchema)-qSchema = lens _qSchema (\ s a -> s{_qSchema = a})---- | The total number of bytes processed for this query. If this query was a--- dry run, this is the number of bytes that would be processed if the--- query were run.-qTotalBytesProcessed :: Lens' QueryResponse (Maybe Int64)-qTotalBytesProcessed-  = lens _qTotalBytesProcessed-      (\ s a -> s{_qTotalBytesProcessed = a})-      . mapping _Coerce---- | An object with as many results as can be contained within the maximum--- permitted reply size. To get any additional rows, you can call--- GetQueryResults and specify the jobReference returned above.-qRows :: Lens' QueryResponse [TableRow]-qRows-  = lens _qRows (\ s a -> s{_qRows = a}) . _Default .-      _Coerce---- | A token used for paging results.-qPageToken :: Lens' QueryResponse (Maybe Text)-qPageToken-  = lens _qPageToken (\ s a -> s{_qPageToken = a})---- | [Output-only, Experimental] The number of rows affected by a DML--- statement. Present only for DML statements INSERT, UPDATE or DELETE.-qNumDmlAffectedRows :: Lens' QueryResponse (Maybe Int64)-qNumDmlAffectedRows-  = lens _qNumDmlAffectedRows-      (\ s a -> s{_qNumDmlAffectedRows = a})-      . mapping _Coerce---- | The total number of rows in the complete query result set, which can be--- more than the number of rows in this single page of results.-qTotalRows :: Lens' QueryResponse (Maybe Word64)-qTotalRows-  = lens _qTotalRows (\ s a -> s{_qTotalRows = a}) .-      mapping _Coerce---- | [Output-only] All errors and warnings encountered during the running of--- the job. Errors here do not necessarily mean that the job has completed--- or was unsuccessful.-qErrors :: Lens' QueryResponse [ErrorProto]-qErrors-  = lens _qErrors (\ s a -> s{_qErrors = a}) . _Default-      . _Coerce---- | Whether the query has completed or not. If rows or totalRows are--- present, this will always be true. If this is false, totalRows will not--- be available.-qJobComplete :: Lens' QueryResponse (Maybe Bool)-qJobComplete-  = lens _qJobComplete (\ s a -> s{_qJobComplete = a})---- | Whether the query result was fetched from the query cache.-qCacheHit :: Lens' QueryResponse (Maybe Bool)-qCacheHit-  = lens _qCacheHit (\ s a -> s{_qCacheHit = a})--instance FromJSON QueryResponse where-        parseJSON-          = withObject "QueryResponse"-              (\ o ->-                 QueryResponse' <$>-                   (o .:? "jobReference") <*>-                     (o .:? "kind" .!= "bigquery#queryResponse")-                     <*> (o .:? "schema")-                     <*> (o .:? "totalBytesProcessed")-                     <*> (o .:? "rows" .!= mempty)-                     <*> (o .:? "pageToken")-                     <*> (o .:? "numDmlAffectedRows")-                     <*> (o .:? "totalRows")-                     <*> (o .:? "errors" .!= mempty)-                     <*> (o .:? "jobComplete")-                     <*> (o .:? "cacheHit"))--instance ToJSON QueryResponse where-        toJSON QueryResponse'{..}-          = object-              (catMaybes-                 [("jobReference" .=) <$> _qJobReference,-                  Just ("kind" .= _qKind), ("schema" .=) <$> _qSchema,-                  ("totalBytesProcessed" .=) <$> _qTotalBytesProcessed,-                  ("rows" .=) <$> _qRows,-                  ("pageToken" .=) <$> _qPageToken,-                  ("numDmlAffectedRows" .=) <$> _qNumDmlAffectedRows,-                  ("totalRows" .=) <$> _qTotalRows,-                  ("errors" .=) <$> _qErrors,-                  ("jobComplete" .=) <$> _qJobComplete,-                  ("cacheHit" .=) <$> _qCacheHit])---- | [Experimental] The labels associated with this dataset. You can use--- these to organize and group your datasets.------ /See:/ 'dataSetListDataSetsItemLabels' smart constructor.-newtype DataSetListDataSetsItemLabels = DataSetListDataSetsItemLabels'-    { _dsldsilAddtional :: HashMap Text Text-    } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'DataSetListDataSetsItemLabels' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'dsldsilAddtional'-dataSetListDataSetsItemLabels-    :: HashMap Text Text -- ^ 'dsldsilAddtional'-    -> DataSetListDataSetsItemLabels-dataSetListDataSetsItemLabels pDsldsilAddtional_ =-    DataSetListDataSetsItemLabels'-    { _dsldsilAddtional = _Coerce # pDsldsilAddtional_-    }--dsldsilAddtional :: Lens' DataSetListDataSetsItemLabels (HashMap Text Text)-dsldsilAddtional-  = lens _dsldsilAddtional-      (\ s a -> s{_dsldsilAddtional = a})-      . _Coerce--instance FromJSON DataSetListDataSetsItemLabels where-        parseJSON-          = withObject "DataSetListDataSetsItemLabels"-              (\ o ->-                 DataSetListDataSetsItemLabels' <$>-                   (parseJSONObject o))--instance ToJSON DataSetListDataSetsItemLabels where-        toJSON = toJSON . _dsldsilAddtional---- | [Experimental] The labels associated with this table. You can use these--- to organize and group your tables.+    , _jrLocation  :: !(Maybe Text)+    , _jrProjectId :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'JobReference' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'jrJobId'+--+-- * 'jrLocation'+--+-- * 'jrProjectId'+jobReference+    :: JobReference+jobReference =+    JobReference'+    { _jrJobId = Nothing+    , _jrLocation = Nothing+    , _jrProjectId = Nothing+    }++-- | [Required] The ID of the job. The ID must contain only letters (a-z,+-- A-Z), numbers (0-9), underscores (_), or dashes (-). The maximum length+-- is 1,024 characters.+jrJobId :: Lens' JobReference (Maybe Text)+jrJobId = lens _jrJobId (\ s a -> s{_jrJobId = a})++-- | The geographic location of the job. See details at+-- https:\/\/cloud.google.com\/bigquery\/docs\/locations#specifying_your_location.+jrLocation :: Lens' JobReference (Maybe Text)+jrLocation+  = lens _jrLocation (\ s a -> s{_jrLocation = a})++-- | [Required] The ID of the project containing this job.+jrProjectId :: Lens' JobReference (Maybe Text)+jrProjectId+  = lens _jrProjectId (\ s a -> s{_jrProjectId = a})++instance FromJSON JobReference where+        parseJSON+          = withObject "JobReference"+              (\ o ->+                 JobReference' <$>+                   (o .:? "jobId") <*> (o .:? "location") <*>+                     (o .:? "projectId"))++instance ToJSON JobReference where+        toJSON JobReference'{..}+          = object+              (catMaybes+                 [("jobId" .=) <$> _jrJobId,+                  ("location" .=) <$> _jrLocation,+                  ("projectId" .=) <$> _jrProjectId])++--+-- /See:/ 'tableList' smart constructor.+data TableList = TableList'+    { _tlTotalItems    :: !(Maybe (Textual Int32))+    , _tlEtag          :: !(Maybe Text)+    , _tlNextPageToken :: !(Maybe Text)+    , _tlKind          :: !Text+    , _tlTables        :: !(Maybe [TableListTablesItem])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TableList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tlTotalItems'+--+-- * 'tlEtag'+--+-- * 'tlNextPageToken'+--+-- * 'tlKind'+--+-- * 'tlTables'+tableList+    :: TableList+tableList =+    TableList'+    { _tlTotalItems = Nothing+    , _tlEtag = Nothing+    , _tlNextPageToken = Nothing+    , _tlKind = "bigquery#tableList"+    , _tlTables = Nothing+    }++-- | The total number of tables in the dataset.+tlTotalItems :: Lens' TableList (Maybe Int32)+tlTotalItems+  = lens _tlTotalItems (\ s a -> s{_tlTotalItems = a})+      . mapping _Coerce++-- | A hash of this page of results.+tlEtag :: Lens' TableList (Maybe Text)+tlEtag = lens _tlEtag (\ s a -> s{_tlEtag = a})++-- | A token to request the next page of results.+tlNextPageToken :: Lens' TableList (Maybe Text)+tlNextPageToken+  = lens _tlNextPageToken+      (\ s a -> s{_tlNextPageToken = a})++-- | The type of list.+tlKind :: Lens' TableList Text+tlKind = lens _tlKind (\ s a -> s{_tlKind = a})++-- | Tables in the requested dataset.+tlTables :: Lens' TableList [TableListTablesItem]+tlTables+  = lens _tlTables (\ s a -> s{_tlTables = a}) .+      _Default+      . _Coerce++instance FromJSON TableList where+        parseJSON+          = withObject "TableList"+              (\ o ->+                 TableList' <$>+                   (o .:? "totalItems") <*> (o .:? "etag") <*>+                     (o .:? "nextPageToken")+                     <*> (o .:? "kind" .!= "bigquery#tableList")+                     <*> (o .:? "tables" .!= mempty))++instance ToJSON TableList where+        toJSON TableList'{..}+          = object+              (catMaybes+                 [("totalItems" .=) <$> _tlTotalItems,+                  ("etag" .=) <$> _tlEtag,+                  ("nextPageToken" .=) <$> _tlNextPageToken,+                  Just ("kind" .= _tlKind),+                  ("tables" .=) <$> _tlTables])++--+-- /See:/ 'dataSetListDataSetsItem' smart constructor.+data DataSetListDataSetsItem = DataSetListDataSetsItem'+    { _dsldsiLocation         :: !(Maybe Text)+    , _dsldsiFriendlyName     :: !(Maybe Text)+    , _dsldsiKind             :: !Text+    , _dsldsiDataSetReference :: !(Maybe DataSetReference)+    , _dsldsiId               :: !(Maybe Text)+    , _dsldsiLabels           :: !(Maybe DataSetListDataSetsItemLabels)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DataSetListDataSetsItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dsldsiLocation'+--+-- * 'dsldsiFriendlyName'+--+-- * 'dsldsiKind'+--+-- * 'dsldsiDataSetReference'+--+-- * 'dsldsiId'+--+-- * 'dsldsiLabels'+dataSetListDataSetsItem+    :: DataSetListDataSetsItem+dataSetListDataSetsItem =+    DataSetListDataSetsItem'+    { _dsldsiLocation = Nothing+    , _dsldsiFriendlyName = Nothing+    , _dsldsiKind = "bigquery#dataset"+    , _dsldsiDataSetReference = Nothing+    , _dsldsiId = Nothing+    , _dsldsiLabels = Nothing+    }++-- | The geographic location where the data resides.+dsldsiLocation :: Lens' DataSetListDataSetsItem (Maybe Text)+dsldsiLocation+  = lens _dsldsiLocation+      (\ s a -> s{_dsldsiLocation = a})++-- | A descriptive name for the dataset, if one exists.+dsldsiFriendlyName :: Lens' DataSetListDataSetsItem (Maybe Text)+dsldsiFriendlyName+  = lens _dsldsiFriendlyName+      (\ s a -> s{_dsldsiFriendlyName = a})++-- | The resource type. This property always returns the value+-- \"bigquery#dataset\".+dsldsiKind :: Lens' DataSetListDataSetsItem Text+dsldsiKind+  = lens _dsldsiKind (\ s a -> s{_dsldsiKind = a})++-- | The dataset reference. Use this property to access specific parts of the+-- dataset\'s ID, such as project ID or dataset ID.+dsldsiDataSetReference :: Lens' DataSetListDataSetsItem (Maybe DataSetReference)+dsldsiDataSetReference+  = lens _dsldsiDataSetReference+      (\ s a -> s{_dsldsiDataSetReference = a})++-- | The fully-qualified, unique, opaque ID of the dataset.+dsldsiId :: Lens' DataSetListDataSetsItem (Maybe Text)+dsldsiId = lens _dsldsiId (\ s a -> s{_dsldsiId = a})++-- | The labels associated with this dataset. You can use these to organize+-- and group your datasets.+dsldsiLabels :: Lens' DataSetListDataSetsItem (Maybe DataSetListDataSetsItemLabels)+dsldsiLabels+  = lens _dsldsiLabels (\ s a -> s{_dsldsiLabels = a})++instance FromJSON DataSetListDataSetsItem where+        parseJSON+          = withObject "DataSetListDataSetsItem"+              (\ o ->+                 DataSetListDataSetsItem' <$>+                   (o .:? "location") <*> (o .:? "friendlyName") <*>+                     (o .:? "kind" .!= "bigquery#dataset")+                     <*> (o .:? "datasetReference")+                     <*> (o .:? "id")+                     <*> (o .:? "labels"))++instance ToJSON DataSetListDataSetsItem where+        toJSON DataSetListDataSetsItem'{..}+          = object+              (catMaybes+                 [("location" .=) <$> _dsldsiLocation,+                  ("friendlyName" .=) <$> _dsldsiFriendlyName,+                  Just ("kind" .= _dsldsiKind),+                  ("datasetReference" .=) <$> _dsldsiDataSetReference,+                  ("id" .=) <$> _dsldsiId,+                  ("labels" .=) <$> _dsldsiLabels])++--+-- /See:/ 'tableDataList' smart constructor.+data TableDataList = TableDataList'+    { _tdlEtag      :: !(Maybe Text)+    , _tdlKind      :: !Text+    , _tdlRows      :: !(Maybe [TableRow])+    , _tdlPageToken :: !(Maybe Text)+    , _tdlTotalRows :: !(Maybe (Textual Int64))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TableDataList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tdlEtag'+--+-- * 'tdlKind'+--+-- * 'tdlRows'+--+-- * 'tdlPageToken'+--+-- * 'tdlTotalRows'+tableDataList+    :: TableDataList+tableDataList =+    TableDataList'+    { _tdlEtag = Nothing+    , _tdlKind = "bigquery#tableDataList"+    , _tdlRows = Nothing+    , _tdlPageToken = Nothing+    , _tdlTotalRows = Nothing+    }++-- | A hash of this page of results.+tdlEtag :: Lens' TableDataList (Maybe Text)+tdlEtag = lens _tdlEtag (\ s a -> s{_tdlEtag = a})++-- | The resource type of the response.+tdlKind :: Lens' TableDataList Text+tdlKind = lens _tdlKind (\ s a -> s{_tdlKind = a})++-- | Rows of results.+tdlRows :: Lens' TableDataList [TableRow]+tdlRows+  = lens _tdlRows (\ s a -> s{_tdlRows = a}) . _Default+      . _Coerce++-- | A token used for paging results. Providing this token instead of the+-- startIndex parameter can help you retrieve stable results when an+-- underlying table is changing.+tdlPageToken :: Lens' TableDataList (Maybe Text)+tdlPageToken+  = lens _tdlPageToken (\ s a -> s{_tdlPageToken = a})++-- | The total number of rows in the complete table.+tdlTotalRows :: Lens' TableDataList (Maybe Int64)+tdlTotalRows+  = lens _tdlTotalRows (\ s a -> s{_tdlTotalRows = a})+      . mapping _Coerce++instance FromJSON TableDataList where+        parseJSON+          = withObject "TableDataList"+              (\ o ->+                 TableDataList' <$>+                   (o .:? "etag") <*>+                     (o .:? "kind" .!= "bigquery#tableDataList")+                     <*> (o .:? "rows" .!= mempty)+                     <*> (o .:? "pageToken")+                     <*> (o .:? "totalRows"))++instance ToJSON TableDataList where+        toJSON TableDataList'{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _tdlEtag, Just ("kind" .= _tdlKind),+                  ("rows" .=) <$> _tdlRows,+                  ("pageToken" .=) <$> _tdlPageToken,+                  ("totalRows" .=) <$> _tdlTotalRows])++--+-- /See:/ 'jobConfigurationTableCopy' smart constructor.+data JobConfigurationTableCopy = JobConfigurationTableCopy'+    { _jctcDestinationTable                   :: !(Maybe TableReference)+    , _jctcWriteDisPosition                   :: !(Maybe Text)+    , _jctcSourceTables                       :: !(Maybe [TableReference])+    , _jctcCreateDisPosition                  :: !(Maybe Text)+    , _jctcSourceTable                        :: !(Maybe TableReference)+    , _jctcDestinationEncryptionConfiguration :: !(Maybe EncryptionConfiguration)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'JobConfigurationTableCopy' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'jctcDestinationTable'+--+-- * 'jctcWriteDisPosition'+--+-- * 'jctcSourceTables'+--+-- * 'jctcCreateDisPosition'+--+-- * 'jctcSourceTable'+--+-- * 'jctcDestinationEncryptionConfiguration'+jobConfigurationTableCopy+    :: JobConfigurationTableCopy+jobConfigurationTableCopy =+    JobConfigurationTableCopy'+    { _jctcDestinationTable = Nothing+    , _jctcWriteDisPosition = Nothing+    , _jctcSourceTables = Nothing+    , _jctcCreateDisPosition = Nothing+    , _jctcSourceTable = Nothing+    , _jctcDestinationEncryptionConfiguration = Nothing+    }++-- | [Required] The destination table+jctcDestinationTable :: Lens' JobConfigurationTableCopy (Maybe TableReference)+jctcDestinationTable+  = lens _jctcDestinationTable+      (\ s a -> s{_jctcDestinationTable = a})++-- | [Optional] Specifies the action that occurs if the destination table+-- already exists. The following values are supported: WRITE_TRUNCATE: If+-- the table already exists, BigQuery overwrites the table data.+-- WRITE_APPEND: If the table already exists, BigQuery appends the data to+-- the table. WRITE_EMPTY: If the table already exists and contains data, a+-- \'duplicate\' error is returned in the job result. The default value is+-- WRITE_EMPTY. Each action is atomic and only occurs if BigQuery is able+-- to complete the job successfully. Creation, truncation and append+-- actions occur as one atomic update upon job completion.+jctcWriteDisPosition :: Lens' JobConfigurationTableCopy (Maybe Text)+jctcWriteDisPosition+  = lens _jctcWriteDisPosition+      (\ s a -> s{_jctcWriteDisPosition = a})++-- | [Pick one] Source tables to copy.+jctcSourceTables :: Lens' JobConfigurationTableCopy [TableReference]+jctcSourceTables+  = lens _jctcSourceTables+      (\ s a -> s{_jctcSourceTables = a})+      . _Default+      . _Coerce++-- | [Optional] Specifies whether the job is allowed to create new tables.+-- The following values are supported: CREATE_IF_NEEDED: If the table does+-- not exist, BigQuery creates the table. CREATE_NEVER: The table must+-- already exist. If it does not, a \'notFound\' error is returned in the+-- job result. The default value is CREATE_IF_NEEDED. Creation, truncation+-- and append actions occur as one atomic update upon job completion.+jctcCreateDisPosition :: Lens' JobConfigurationTableCopy (Maybe Text)+jctcCreateDisPosition+  = lens _jctcCreateDisPosition+      (\ s a -> s{_jctcCreateDisPosition = a})++-- | [Pick one] Source table to copy.+jctcSourceTable :: Lens' JobConfigurationTableCopy (Maybe TableReference)+jctcSourceTable+  = lens _jctcSourceTable+      (\ s a -> s{_jctcSourceTable = a})++-- | Custom encryption configuration (e.g., Cloud KMS keys).+jctcDestinationEncryptionConfiguration :: Lens' JobConfigurationTableCopy (Maybe EncryptionConfiguration)+jctcDestinationEncryptionConfiguration+  = lens _jctcDestinationEncryptionConfiguration+      (\ s a ->+         s{_jctcDestinationEncryptionConfiguration = a})++instance FromJSON JobConfigurationTableCopy where+        parseJSON+          = withObject "JobConfigurationTableCopy"+              (\ o ->+                 JobConfigurationTableCopy' <$>+                   (o .:? "destinationTable") <*>+                     (o .:? "writeDisposition")+                     <*> (o .:? "sourceTables" .!= mempty)+                     <*> (o .:? "createDisposition")+                     <*> (o .:? "sourceTable")+                     <*> (o .:? "destinationEncryptionConfiguration"))++instance ToJSON JobConfigurationTableCopy where+        toJSON JobConfigurationTableCopy'{..}+          = object+              (catMaybes+                 [("destinationTable" .=) <$> _jctcDestinationTable,+                  ("writeDisposition" .=) <$> _jctcWriteDisPosition,+                  ("sourceTables" .=) <$> _jctcSourceTables,+                  ("createDisposition" .=) <$> _jctcCreateDisPosition,+                  ("sourceTable" .=) <$> _jctcSourceTable,+                  ("destinationEncryptionConfiguration" .=) <$>+                    _jctcDestinationEncryptionConfiguration])++--+-- /See:/ 'tableListTablesItem' smart constructor.+data TableListTablesItem = TableListTablesItem'+    { _tltiCreationTime     :: !(Maybe (Textual Int64))+    , _tltiClustering       :: !(Maybe Clustering)+    , _tltiTableReference   :: !(Maybe TableReference)+    , _tltiFriendlyName     :: !(Maybe Text)+    , _tltiKind             :: !Text+    , _tltiTimePartitioning :: !(Maybe TimePartitioning)+    , _tltiView             :: !(Maybe TableListTablesItemView)+    , _tltiId               :: !(Maybe Text)+    , _tltiLabels           :: !(Maybe TableListTablesItemLabels)+    , _tltiType             :: !(Maybe Text)+    , _tltiExpirationTime   :: !(Maybe (Textual Int64))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TableListTablesItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tltiCreationTime'+--+-- * 'tltiClustering'+--+-- * 'tltiTableReference'+--+-- * 'tltiFriendlyName'+--+-- * 'tltiKind'+--+-- * 'tltiTimePartitioning'+--+-- * 'tltiView'+--+-- * 'tltiId'+--+-- * 'tltiLabels'+--+-- * 'tltiType'+--+-- * 'tltiExpirationTime'+tableListTablesItem+    :: TableListTablesItem+tableListTablesItem =+    TableListTablesItem'+    { _tltiCreationTime = Nothing+    , _tltiClustering = Nothing+    , _tltiTableReference = Nothing+    , _tltiFriendlyName = Nothing+    , _tltiKind = "bigquery#table"+    , _tltiTimePartitioning = Nothing+    , _tltiView = Nothing+    , _tltiId = Nothing+    , _tltiLabels = Nothing+    , _tltiType = Nothing+    , _tltiExpirationTime = Nothing+    }++-- | The time when this table was created, in milliseconds since the epoch.+tltiCreationTime :: Lens' TableListTablesItem (Maybe Int64)+tltiCreationTime+  = lens _tltiCreationTime+      (\ s a -> s{_tltiCreationTime = a})+      . mapping _Coerce++-- | [Beta] Clustering specification for this table, if configured.+tltiClustering :: Lens' TableListTablesItem (Maybe Clustering)+tltiClustering+  = lens _tltiClustering+      (\ s a -> s{_tltiClustering = a})++-- | A reference uniquely identifying the table.+tltiTableReference :: Lens' TableListTablesItem (Maybe TableReference)+tltiTableReference+  = lens _tltiTableReference+      (\ s a -> s{_tltiTableReference = a})++-- | The user-friendly name for this table.+tltiFriendlyName :: Lens' TableListTablesItem (Maybe Text)+tltiFriendlyName+  = lens _tltiFriendlyName+      (\ s a -> s{_tltiFriendlyName = a})++-- | The resource type.+tltiKind :: Lens' TableListTablesItem Text+tltiKind = lens _tltiKind (\ s a -> s{_tltiKind = a})++-- | The time-based partitioning specification for this table, if configured.+tltiTimePartitioning :: Lens' TableListTablesItem (Maybe TimePartitioning)+tltiTimePartitioning+  = lens _tltiTimePartitioning+      (\ s a -> s{_tltiTimePartitioning = a})++-- | Additional details for a view.+tltiView :: Lens' TableListTablesItem (Maybe TableListTablesItemView)+tltiView = lens _tltiView (\ s a -> s{_tltiView = a})++-- | An opaque ID of the table+tltiId :: Lens' TableListTablesItem (Maybe Text)+tltiId = lens _tltiId (\ s a -> s{_tltiId = a})++-- | The labels associated with this table. You can use these to organize and+-- group your tables.+tltiLabels :: Lens' TableListTablesItem (Maybe TableListTablesItemLabels)+tltiLabels+  = lens _tltiLabels (\ s a -> s{_tltiLabels = a})++-- | The type of table. Possible values are: TABLE, VIEW.+tltiType :: Lens' TableListTablesItem (Maybe Text)+tltiType = lens _tltiType (\ s a -> s{_tltiType = a})++-- | [Optional] The time when this table expires, in milliseconds since the+-- epoch. If not present, the table will persist indefinitely. Expired+-- tables will be deleted and their storage reclaimed.+tltiExpirationTime :: Lens' TableListTablesItem (Maybe Int64)+tltiExpirationTime+  = lens _tltiExpirationTime+      (\ s a -> s{_tltiExpirationTime = a})+      . mapping _Coerce++instance FromJSON TableListTablesItem where+        parseJSON+          = withObject "TableListTablesItem"+              (\ o ->+                 TableListTablesItem' <$>+                   (o .:? "creationTime") <*> (o .:? "clustering") <*>+                     (o .:? "tableReference")+                     <*> (o .:? "friendlyName")+                     <*> (o .:? "kind" .!= "bigquery#table")+                     <*> (o .:? "timePartitioning")+                     <*> (o .:? "view")+                     <*> (o .:? "id")+                     <*> (o .:? "labels")+                     <*> (o .:? "type")+                     <*> (o .:? "expirationTime"))++instance ToJSON TableListTablesItem where+        toJSON TableListTablesItem'{..}+          = object+              (catMaybes+                 [("creationTime" .=) <$> _tltiCreationTime,+                  ("clustering" .=) <$> _tltiClustering,+                  ("tableReference" .=) <$> _tltiTableReference,+                  ("friendlyName" .=) <$> _tltiFriendlyName,+                  Just ("kind" .= _tltiKind),+                  ("timePartitioning" .=) <$> _tltiTimePartitioning,+                  ("view" .=) <$> _tltiView, ("id" .=) <$> _tltiId,+                  ("labels" .=) <$> _tltiLabels,+                  ("type" .=) <$> _tltiType,+                  ("expirationTime" .=) <$> _tltiExpirationTime])++--+-- /See:/ 'tableSchema' smart constructor.+newtype TableSchema = TableSchema'+    { _tsFields :: Maybe [TableFieldSchema]+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TableSchema' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tsFields'+tableSchema+    :: TableSchema+tableSchema =+    TableSchema'+    { _tsFields = Nothing+    }++-- | Describes the fields in a table.+tsFields :: Lens' TableSchema [TableFieldSchema]+tsFields+  = lens _tsFields (\ s a -> s{_tsFields = a}) .+      _Default+      . _Coerce++instance FromJSON TableSchema where+        parseJSON+          = withObject "TableSchema"+              (\ o -> TableSchema' <$> (o .:? "fields" .!= mempty))++instance ToJSON TableSchema where+        toJSON TableSchema'{..}+          = object (catMaybes [("fields" .=) <$> _tsFields])++--+-- /See:/ 'projectList' smart constructor.+data ProjectList = ProjectList'+    { _plTotalItems    :: !(Maybe (Textual Int32))+    , _plEtag          :: !(Maybe Text)+    , _plNextPageToken :: !(Maybe Text)+    , _plKind          :: !Text+    , _plProjects      :: !(Maybe [ProjectListProjectsItem])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'plTotalItems'+--+-- * 'plEtag'+--+-- * 'plNextPageToken'+--+-- * 'plKind'+--+-- * 'plProjects'+projectList+    :: ProjectList+projectList =+    ProjectList'+    { _plTotalItems = Nothing+    , _plEtag = Nothing+    , _plNextPageToken = Nothing+    , _plKind = "bigquery#projectList"+    , _plProjects = Nothing+    }++-- | The total number of projects in the list.+plTotalItems :: Lens' ProjectList (Maybe Int32)+plTotalItems+  = lens _plTotalItems (\ s a -> s{_plTotalItems = a})+      . mapping _Coerce++-- | A hash of the page of results+plEtag :: Lens' ProjectList (Maybe Text)+plEtag = lens _plEtag (\ s a -> s{_plEtag = a})++-- | A token to request the next page of results.+plNextPageToken :: Lens' ProjectList (Maybe Text)+plNextPageToken+  = lens _plNextPageToken+      (\ s a -> s{_plNextPageToken = a})++-- | The type of list.+plKind :: Lens' ProjectList Text+plKind = lens _plKind (\ s a -> s{_plKind = a})++-- | Projects to which you have at least READ access.+plProjects :: Lens' ProjectList [ProjectListProjectsItem]+plProjects+  = lens _plProjects (\ s a -> s{_plProjects = a}) .+      _Default+      . _Coerce++instance FromJSON ProjectList where+        parseJSON+          = withObject "ProjectList"+              (\ o ->+                 ProjectList' <$>+                   (o .:? "totalItems") <*> (o .:? "etag") <*>+                     (o .:? "nextPageToken")+                     <*> (o .:? "kind" .!= "bigquery#projectList")+                     <*> (o .:? "projects" .!= mempty))++instance ToJSON ProjectList where+        toJSON ProjectList'{..}+          = object+              (catMaybes+                 [("totalItems" .=) <$> _plTotalItems,+                  ("etag" .=) <$> _plEtag,+                  ("nextPageToken" .=) <$> _plNextPageToken,+                  Just ("kind" .= _plKind),+                  ("projects" .=) <$> _plProjects])++--+-- /See:/ 'explainQueryStep' smart constructor.+data ExplainQueryStep = ExplainQueryStep'+    { _eqsSubsteps :: !(Maybe [Text])+    , _eqsKind     :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ExplainQueryStep' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eqsSubsteps'+--+-- * 'eqsKind'+explainQueryStep+    :: ExplainQueryStep+explainQueryStep =+    ExplainQueryStep'+    { _eqsSubsteps = Nothing+    , _eqsKind = Nothing+    }++-- | Human-readable stage descriptions.+eqsSubsteps :: Lens' ExplainQueryStep [Text]+eqsSubsteps+  = lens _eqsSubsteps (\ s a -> s{_eqsSubsteps = a}) .+      _Default+      . _Coerce++-- | Machine-readable operation type.+eqsKind :: Lens' ExplainQueryStep (Maybe Text)+eqsKind = lens _eqsKind (\ s a -> s{_eqsKind = a})++instance FromJSON ExplainQueryStep where+        parseJSON+          = withObject "ExplainQueryStep"+              (\ o ->+                 ExplainQueryStep' <$>+                   (o .:? "substeps" .!= mempty) <*> (o .:? "kind"))++instance ToJSON ExplainQueryStep where+        toJSON ExplainQueryStep'{..}+          = object+              (catMaybes+                 [("substeps" .=) <$> _eqsSubsteps,+                  ("kind" .=) <$> _eqsKind])++--+-- /See:/ 'queryTimelineSample' smart constructor.+data QueryTimelineSample = QueryTimelineSample'+    { _qtsPendingUnits   :: !(Maybe (Textual Int64))+    , _qtsTotalSlotMs    :: !(Maybe (Textual Int64))+    , _qtsActiveUnits    :: !(Maybe (Textual Int64))+    , _qtsElapsedMs      :: !(Maybe (Textual Int64))+    , _qtsCompletedUnits :: !(Maybe (Textual Int64))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'QueryTimelineSample' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'qtsPendingUnits'+--+-- * 'qtsTotalSlotMs'+--+-- * 'qtsActiveUnits'+--+-- * 'qtsElapsedMs'+--+-- * 'qtsCompletedUnits'+queryTimelineSample+    :: QueryTimelineSample+queryTimelineSample =+    QueryTimelineSample'+    { _qtsPendingUnits = Nothing+    , _qtsTotalSlotMs = Nothing+    , _qtsActiveUnits = Nothing+    , _qtsElapsedMs = Nothing+    , _qtsCompletedUnits = Nothing+    }++-- | Total parallel units of work remaining for the active stages.+qtsPendingUnits :: Lens' QueryTimelineSample (Maybe Int64)+qtsPendingUnits+  = lens _qtsPendingUnits+      (\ s a -> s{_qtsPendingUnits = a})+      . mapping _Coerce++-- | Cumulative slot-ms consumed by the query.+qtsTotalSlotMs :: Lens' QueryTimelineSample (Maybe Int64)+qtsTotalSlotMs+  = lens _qtsTotalSlotMs+      (\ s a -> s{_qtsTotalSlotMs = a})+      . mapping _Coerce++-- | Total number of units currently being processed by workers. This does+-- not correspond directly to slot usage. This is the largest value+-- observed since the last sample.+qtsActiveUnits :: Lens' QueryTimelineSample (Maybe Int64)+qtsActiveUnits+  = lens _qtsActiveUnits+      (\ s a -> s{_qtsActiveUnits = a})+      . mapping _Coerce++-- | Milliseconds elapsed since the start of query execution.+qtsElapsedMs :: Lens' QueryTimelineSample (Maybe Int64)+qtsElapsedMs+  = lens _qtsElapsedMs (\ s a -> s{_qtsElapsedMs = a})+      . mapping _Coerce++-- | Total parallel units of work completed by this query.+qtsCompletedUnits :: Lens' QueryTimelineSample (Maybe Int64)+qtsCompletedUnits+  = lens _qtsCompletedUnits+      (\ s a -> s{_qtsCompletedUnits = a})+      . mapping _Coerce++instance FromJSON QueryTimelineSample where+        parseJSON+          = withObject "QueryTimelineSample"+              (\ o ->+                 QueryTimelineSample' <$>+                   (o .:? "pendingUnits") <*> (o .:? "totalSlotMs") <*>+                     (o .:? "activeUnits")+                     <*> (o .:? "elapsedMs")+                     <*> (o .:? "completedUnits"))++instance ToJSON QueryTimelineSample where+        toJSON QueryTimelineSample'{..}+          = object+              (catMaybes+                 [("pendingUnits" .=) <$> _qtsPendingUnits,+                  ("totalSlotMs" .=) <$> _qtsTotalSlotMs,+                  ("activeUnits" .=) <$> _qtsActiveUnits,+                  ("elapsedMs" .=) <$> _qtsElapsedMs,+                  ("completedUnits" .=) <$> _qtsCompletedUnits])++--+-- /See:/ 'queryParameterTypeStructTypesItem' smart constructor.+data QueryParameterTypeStructTypesItem = QueryParameterTypeStructTypesItem'+    { _qptstiName        :: !(Maybe Text)+    , _qptstiType        :: !(Maybe QueryParameterType)+    , _qptstiDescription :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'QueryParameterTypeStructTypesItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'qptstiName'+--+-- * 'qptstiType'+--+-- * 'qptstiDescription'+queryParameterTypeStructTypesItem+    :: QueryParameterTypeStructTypesItem+queryParameterTypeStructTypesItem =+    QueryParameterTypeStructTypesItem'+    { _qptstiName = Nothing+    , _qptstiType = Nothing+    , _qptstiDescription = Nothing+    }++-- | [Optional] The name of this field.+qptstiName :: Lens' QueryParameterTypeStructTypesItem (Maybe Text)+qptstiName+  = lens _qptstiName (\ s a -> s{_qptstiName = a})++-- | [Required] The type of this field.+qptstiType :: Lens' QueryParameterTypeStructTypesItem (Maybe QueryParameterType)+qptstiType+  = lens _qptstiType (\ s a -> s{_qptstiType = a})++-- | [Optional] Human-oriented description of the field.+qptstiDescription :: Lens' QueryParameterTypeStructTypesItem (Maybe Text)+qptstiDescription+  = lens _qptstiDescription+      (\ s a -> s{_qptstiDescription = a})++instance FromJSON QueryParameterTypeStructTypesItem+         where+        parseJSON+          = withObject "QueryParameterTypeStructTypesItem"+              (\ o ->+                 QueryParameterTypeStructTypesItem' <$>+                   (o .:? "name") <*> (o .:? "type") <*>+                     (o .:? "description"))++instance ToJSON QueryParameterTypeStructTypesItem+         where+        toJSON QueryParameterTypeStructTypesItem'{..}+          = object+              (catMaybes+                 [("name" .=) <$> _qptstiName,+                  ("type" .=) <$> _qptstiType,+                  ("description" .=) <$> _qptstiDescription])++--+-- /See:/ 'bigtableColumnFamily' smart constructor.+data BigtableColumnFamily = BigtableColumnFamily'+    { _bcfFamilyId       :: !(Maybe Text)+    , _bcfColumns        :: !(Maybe [BigtableColumn])+    , _bcfOnlyReadLatest :: !(Maybe Bool)+    , _bcfType           :: !(Maybe Text)+    , _bcfEncoding       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BigtableColumnFamily' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bcfFamilyId'+--+-- * 'bcfColumns'+--+-- * 'bcfOnlyReadLatest'+--+-- * 'bcfType'+--+-- * 'bcfEncoding'+bigtableColumnFamily+    :: BigtableColumnFamily+bigtableColumnFamily =+    BigtableColumnFamily'+    { _bcfFamilyId = Nothing+    , _bcfColumns = Nothing+    , _bcfOnlyReadLatest = Nothing+    , _bcfType = Nothing+    , _bcfEncoding = Nothing+    }++-- | Identifier of the column family.+bcfFamilyId :: Lens' BigtableColumnFamily (Maybe Text)+bcfFamilyId+  = lens _bcfFamilyId (\ s a -> s{_bcfFamilyId = a})++-- | [Optional] Lists of columns that should be exposed as individual fields+-- as opposed to a list of (column name, value) pairs. All columns whose+-- qualifier matches a qualifier in this list can be accessed as .. Other+-- columns can be accessed as a list through .Column field.+bcfColumns :: Lens' BigtableColumnFamily [BigtableColumn]+bcfColumns+  = lens _bcfColumns (\ s a -> s{_bcfColumns = a}) .+      _Default+      . _Coerce++-- | [Optional] If this is set only the latest version of value are exposed+-- for all columns in this column family. This can be overridden for a+-- specific column by listing that column in \'columns\' and specifying a+-- different setting for that column.+bcfOnlyReadLatest :: Lens' BigtableColumnFamily (Maybe Bool)+bcfOnlyReadLatest+  = lens _bcfOnlyReadLatest+      (\ s a -> s{_bcfOnlyReadLatest = a})++-- | [Optional] The type to convert the value in cells of this column family.+-- The values are expected to be encoded using HBase Bytes.toBytes function+-- when using the BINARY encoding value. Following BigQuery types are+-- allowed (case-sensitive) - BYTES STRING INTEGER FLOAT BOOLEAN Default+-- type is BYTES. This can be overridden for a specific column by listing+-- that column in \'columns\' and specifying a type for it.+bcfType :: Lens' BigtableColumnFamily (Maybe Text)+bcfType = lens _bcfType (\ s a -> s{_bcfType = a})++-- | [Optional] The encoding of the values when the type is not STRING.+-- Acceptable encoding values are: TEXT - indicates values are alphanumeric+-- text strings. BINARY - indicates values are encoded using HBase+-- Bytes.toBytes family of functions. This can be overridden for a specific+-- column by listing that column in \'columns\' and specifying an encoding+-- for it.+bcfEncoding :: Lens' BigtableColumnFamily (Maybe Text)+bcfEncoding+  = lens _bcfEncoding (\ s a -> s{_bcfEncoding = a})++instance FromJSON BigtableColumnFamily where+        parseJSON+          = withObject "BigtableColumnFamily"+              (\ o ->+                 BigtableColumnFamily' <$>+                   (o .:? "familyId") <*> (o .:? "columns" .!= mempty)+                     <*> (o .:? "onlyReadLatest")+                     <*> (o .:? "type")+                     <*> (o .:? "encoding"))++instance ToJSON BigtableColumnFamily where+        toJSON BigtableColumnFamily'{..}+          = object+              (catMaybes+                 [("familyId" .=) <$> _bcfFamilyId,+                  ("columns" .=) <$> _bcfColumns,+                  ("onlyReadLatest" .=) <$> _bcfOnlyReadLatest,+                  ("type" .=) <$> _bcfType,+                  ("encoding" .=) <$> _bcfEncoding])++--+-- /See:/ 'jobStatistics' smart constructor.+data JobStatistics = JobStatistics'+    { _jsCreationTime        :: !(Maybe (Textual Int64))+    , _jsStartTime           :: !(Maybe (Textual Int64))+    , _jsCompletionRatio     :: !(Maybe (Textual Double))+    , _jsTotalSlotMs         :: !(Maybe (Textual Int64))+    , _jsLoad                :: !(Maybe JobStatistics3)+    , _jsTotalBytesProcessed :: !(Maybe (Textual Int64))+    , _jsQuotaDeferments     :: !(Maybe [Text])+    , _jsEndTime             :: !(Maybe (Textual Int64))+    , _jsQuery               :: !(Maybe JobStatistics2)+    , _jsExtract             :: !(Maybe JobStatistics4)+    , _jsReservationUsage    :: !(Maybe [JobStatisticsReservationUsageItem])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'JobStatistics' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'jsCreationTime'+--+-- * 'jsStartTime'+--+-- * 'jsCompletionRatio'+--+-- * 'jsTotalSlotMs'+--+-- * 'jsLoad'+--+-- * 'jsTotalBytesProcessed'+--+-- * 'jsQuotaDeferments'+--+-- * 'jsEndTime'+--+-- * 'jsQuery'+--+-- * 'jsExtract'+--+-- * 'jsReservationUsage'+jobStatistics+    :: JobStatistics+jobStatistics =+    JobStatistics'+    { _jsCreationTime = Nothing+    , _jsStartTime = Nothing+    , _jsCompletionRatio = Nothing+    , _jsTotalSlotMs = Nothing+    , _jsLoad = Nothing+    , _jsTotalBytesProcessed = Nothing+    , _jsQuotaDeferments = Nothing+    , _jsEndTime = Nothing+    , _jsQuery = Nothing+    , _jsExtract = Nothing+    , _jsReservationUsage = Nothing+    }++-- | [Output-only] Creation time of this job, in milliseconds since the+-- epoch. This field will be present on all jobs.+jsCreationTime :: Lens' JobStatistics (Maybe Int64)+jsCreationTime+  = lens _jsCreationTime+      (\ s a -> s{_jsCreationTime = a})+      . mapping _Coerce++-- | [Output-only] Start time of this job, in milliseconds since the epoch.+-- This field will be present when the job transitions from the PENDING+-- state to either RUNNING or DONE.+jsStartTime :: Lens' JobStatistics (Maybe Int64)+jsStartTime+  = lens _jsStartTime (\ s a -> s{_jsStartTime = a}) .+      mapping _Coerce++-- | [TrustedTester] [Output-only] Job progress (0.0 -> 1.0) for LOAD and+-- EXTRACT jobs.+jsCompletionRatio :: Lens' JobStatistics (Maybe Double)+jsCompletionRatio+  = lens _jsCompletionRatio+      (\ s a -> s{_jsCompletionRatio = a})+      . mapping _Coerce++-- | [Output-only] Slot-milliseconds for the job.+jsTotalSlotMs :: Lens' JobStatistics (Maybe Int64)+jsTotalSlotMs+  = lens _jsTotalSlotMs+      (\ s a -> s{_jsTotalSlotMs = a})+      . mapping _Coerce++-- | [Output-only] Statistics for a load job.+jsLoad :: Lens' JobStatistics (Maybe JobStatistics3)+jsLoad = lens _jsLoad (\ s a -> s{_jsLoad = a})++-- | [Output-only] [Deprecated] Use the bytes processed in the query+-- statistics instead.+jsTotalBytesProcessed :: Lens' JobStatistics (Maybe Int64)+jsTotalBytesProcessed+  = lens _jsTotalBytesProcessed+      (\ s a -> s{_jsTotalBytesProcessed = a})+      . mapping _Coerce++-- | [Output-only] Quotas which delayed this job\'s start time.+jsQuotaDeferments :: Lens' JobStatistics [Text]+jsQuotaDeferments+  = lens _jsQuotaDeferments+      (\ s a -> s{_jsQuotaDeferments = a})+      . _Default+      . _Coerce++-- | [Output-only] End time of this job, in milliseconds since the epoch.+-- This field will be present whenever a job is in the DONE state.+jsEndTime :: Lens' JobStatistics (Maybe Int64)+jsEndTime+  = lens _jsEndTime (\ s a -> s{_jsEndTime = a}) .+      mapping _Coerce++-- | [Output-only] Statistics for a query job.+jsQuery :: Lens' JobStatistics (Maybe JobStatistics2)+jsQuery = lens _jsQuery (\ s a -> s{_jsQuery = a})++-- | [Output-only] Statistics for an extract job.+jsExtract :: Lens' JobStatistics (Maybe JobStatistics4)+jsExtract+  = lens _jsExtract (\ s a -> s{_jsExtract = a})++-- | [Output-only] Job resource usage breakdown by reservation.+jsReservationUsage :: Lens' JobStatistics [JobStatisticsReservationUsageItem]+jsReservationUsage+  = lens _jsReservationUsage+      (\ s a -> s{_jsReservationUsage = a})+      . _Default+      . _Coerce++instance FromJSON JobStatistics where+        parseJSON+          = withObject "JobStatistics"+              (\ o ->+                 JobStatistics' <$>+                   (o .:? "creationTime") <*> (o .:? "startTime") <*>+                     (o .:? "completionRatio")+                     <*> (o .:? "totalSlotMs")+                     <*> (o .:? "load")+                     <*> (o .:? "totalBytesProcessed")+                     <*> (o .:? "quotaDeferments" .!= mempty)+                     <*> (o .:? "endTime")+                     <*> (o .:? "query")+                     <*> (o .:? "extract")+                     <*> (o .:? "reservationUsage" .!= mempty))++instance ToJSON JobStatistics where+        toJSON JobStatistics'{..}+          = object+              (catMaybes+                 [("creationTime" .=) <$> _jsCreationTime,+                  ("startTime" .=) <$> _jsStartTime,+                  ("completionRatio" .=) <$> _jsCompletionRatio,+                  ("totalSlotMs" .=) <$> _jsTotalSlotMs,+                  ("load" .=) <$> _jsLoad,+                  ("totalBytesProcessed" .=) <$>+                    _jsTotalBytesProcessed,+                  ("quotaDeferments" .=) <$> _jsQuotaDeferments,+                  ("endTime" .=) <$> _jsEndTime,+                  ("query" .=) <$> _jsQuery,+                  ("extract" .=) <$> _jsExtract,+                  ("reservationUsage" .=) <$> _jsReservationUsage])++-- | The labels associated with this job. You can use these to organize and+-- group your jobs. Label keys and values can be no longer than 63+-- characters, can only contain lowercase letters, numeric characters,+-- underscores and dashes. International characters are allowed. Label+-- values are optional. Label keys must start with a letter and each label+-- in the list must have a different key.+--+-- /See:/ 'jobConfigurationLabels' smart constructor.+newtype JobConfigurationLabels = JobConfigurationLabels'+    { _jclAddtional :: HashMap Text Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'JobConfigurationLabels' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'jclAddtional'+jobConfigurationLabels+    :: HashMap Text Text -- ^ 'jclAddtional'+    -> JobConfigurationLabels+jobConfigurationLabels pJclAddtional_ =+    JobConfigurationLabels'+    { _jclAddtional = _Coerce # pJclAddtional_+    }++jclAddtional :: Lens' JobConfigurationLabels (HashMap Text Text)+jclAddtional+  = lens _jclAddtional (\ s a -> s{_jclAddtional = a})+      . _Coerce++instance FromJSON JobConfigurationLabels where+        parseJSON+          = withObject "JobConfigurationLabels"+              (\ o ->+                 JobConfigurationLabels' <$> (parseJSONObject o))++instance ToJSON JobConfigurationLabels where+        toJSON = toJSON . _jclAddtional++--+-- /See:/ 'dataSet' smart constructor.+data DataSet = DataSet'+    { _dsCreationTime                 :: !(Maybe (Textual Int64))+    , _dsDefaultPartitionExpirationMs :: !(Maybe (Textual Int64))+    , _dsAccess                       :: !(Maybe [DataSetAccessItem])+    , _dsEtag                         :: !(Maybe Text)+    , _dsLocation                     :: !(Maybe Text)+    , _dsFriendlyName                 :: !(Maybe Text)+    , _dsKind                         :: !Text+    , _dsLastModifiedTime             :: !(Maybe (Textual Int64))+    , _dsDataSetReference             :: !(Maybe DataSetReference)+    , _dsSelfLink                     :: !(Maybe Text)+    , _dsId                           :: !(Maybe Text)+    , _dsLabels                       :: !(Maybe DataSetLabels)+    , _dsDefaultTableExpirationMs     :: !(Maybe (Textual Int64))+    , _dsDescription                  :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DataSet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dsCreationTime'+--+-- * 'dsDefaultPartitionExpirationMs'+--+-- * 'dsAccess'+--+-- * 'dsEtag'+--+-- * 'dsLocation'+--+-- * 'dsFriendlyName'+--+-- * 'dsKind'+--+-- * 'dsLastModifiedTime'+--+-- * 'dsDataSetReference'+--+-- * 'dsSelfLink'+--+-- * 'dsId'+--+-- * 'dsLabels'+--+-- * 'dsDefaultTableExpirationMs'+--+-- * 'dsDescription'+dataSet+    :: DataSet+dataSet =+    DataSet'+    { _dsCreationTime = Nothing+    , _dsDefaultPartitionExpirationMs = Nothing+    , _dsAccess = Nothing+    , _dsEtag = Nothing+    , _dsLocation = Nothing+    , _dsFriendlyName = Nothing+    , _dsKind = "bigquery#dataset"+    , _dsLastModifiedTime = Nothing+    , _dsDataSetReference = Nothing+    , _dsSelfLink = Nothing+    , _dsId = Nothing+    , _dsLabels = Nothing+    , _dsDefaultTableExpirationMs = Nothing+    , _dsDescription = Nothing+    }++-- | [Output-only] The time when this dataset was created, in milliseconds+-- since the epoch.+dsCreationTime :: Lens' DataSet (Maybe Int64)+dsCreationTime+  = lens _dsCreationTime+      (\ s a -> s{_dsCreationTime = a})+      . mapping _Coerce++-- | [Optional] The default partition expiration for all partitioned tables+-- in the dataset, in milliseconds. Once this property is set, all+-- newly-created partitioned tables in the dataset will have an+-- expirationMs property in the timePartitioning settings set to this+-- value, and changing the value will only affect new tables, not existing+-- ones. The storage in a partition will have an expiration time of its+-- partition time plus this value. Setting this property overrides the use+-- of defaultTableExpirationMs for partitioned tables: only one of+-- defaultTableExpirationMs and defaultPartitionExpirationMs will be used+-- for any new partitioned table. If you provide an explicit+-- timePartitioning.expirationMs when creating or updating a partitioned+-- table, that value takes precedence over the default partition expiration+-- time indicated by this property.+dsDefaultPartitionExpirationMs :: Lens' DataSet (Maybe Int64)+dsDefaultPartitionExpirationMs+  = lens _dsDefaultPartitionExpirationMs+      (\ s a -> s{_dsDefaultPartitionExpirationMs = a})+      . mapping _Coerce++-- | [Optional] An array of objects that define dataset access for one or+-- more entities. You can set this property when inserting or updating a+-- dataset in order to control who is allowed to access the data. If+-- unspecified at dataset creation time, BigQuery adds default dataset+-- access for the following entities: access.specialGroup: projectReaders;+-- access.role: READER; access.specialGroup: projectWriters; access.role:+-- WRITER; access.specialGroup: projectOwners; access.role: OWNER;+-- access.userByEmail: [dataset creator email]; access.role: OWNER;+dsAccess :: Lens' DataSet [DataSetAccessItem]+dsAccess+  = lens _dsAccess (\ s a -> s{_dsAccess = a}) .+      _Default+      . _Coerce++-- | [Output-only] A hash of the resource.+dsEtag :: Lens' DataSet (Maybe Text)+dsEtag = lens _dsEtag (\ s a -> s{_dsEtag = a})++-- | The geographic location where the dataset should reside. The default+-- value is US. See details at+-- https:\/\/cloud.google.com\/bigquery\/docs\/locations.+dsLocation :: Lens' DataSet (Maybe Text)+dsLocation+  = lens _dsLocation (\ s a -> s{_dsLocation = a})++-- | [Optional] A descriptive name for the dataset.+dsFriendlyName :: Lens' DataSet (Maybe Text)+dsFriendlyName+  = lens _dsFriendlyName+      (\ s a -> s{_dsFriendlyName = a})++-- | [Output-only] The resource type.+dsKind :: Lens' DataSet Text+dsKind = lens _dsKind (\ s a -> s{_dsKind = a})++-- | [Output-only] The date when this dataset or any of its tables was last+-- modified, in milliseconds since the epoch.+dsLastModifiedTime :: Lens' DataSet (Maybe Int64)+dsLastModifiedTime+  = lens _dsLastModifiedTime+      (\ s a -> s{_dsLastModifiedTime = a})+      . mapping _Coerce++-- | [Required] A reference that identifies the dataset.+dsDataSetReference :: Lens' DataSet (Maybe DataSetReference)+dsDataSetReference+  = lens _dsDataSetReference+      (\ s a -> s{_dsDataSetReference = a})++-- | [Output-only] A URL that can be used to access the resource again. You+-- can use this URL in Get or Update requests to the resource.+dsSelfLink :: Lens' DataSet (Maybe Text)+dsSelfLink+  = lens _dsSelfLink (\ s a -> s{_dsSelfLink = a})++-- | [Output-only] The fully-qualified unique name of the dataset in the+-- format projectId:datasetId. The dataset name without the project name is+-- given in the datasetId field. When creating a new dataset, leave this+-- field blank, and instead specify the datasetId field.+dsId :: Lens' DataSet (Maybe Text)+dsId = lens _dsId (\ s a -> s{_dsId = a})++-- | The labels associated with this dataset. You can use these to organize+-- and group your datasets. You can set this property when inserting or+-- updating a dataset. See Creating and Updating Dataset Labels for more+-- information.+dsLabels :: Lens' DataSet (Maybe DataSetLabels)+dsLabels = lens _dsLabels (\ s a -> s{_dsLabels = a})++-- | [Optional] The default lifetime of all tables in the dataset, in+-- milliseconds. The minimum value is 3600000 milliseconds (one hour). Once+-- this property is set, all newly-created tables in the dataset will have+-- an expirationTime property set to the creation time plus the value in+-- this property, and changing the value will only affect new tables, not+-- existing ones. When the expirationTime for a given table is reached,+-- that table will be deleted automatically. If a table\'s expirationTime+-- is modified or removed before the table expires, or if you provide an+-- explicit expirationTime when creating a table, that value takes+-- precedence over the default expiration time indicated by this property.+dsDefaultTableExpirationMs :: Lens' DataSet (Maybe Int64)+dsDefaultTableExpirationMs+  = lens _dsDefaultTableExpirationMs+      (\ s a -> s{_dsDefaultTableExpirationMs = a})+      . mapping _Coerce++-- | [Optional] A user-friendly description of the dataset.+dsDescription :: Lens' DataSet (Maybe Text)+dsDescription+  = lens _dsDescription+      (\ s a -> s{_dsDescription = a})++instance FromJSON DataSet where+        parseJSON+          = withObject "DataSet"+              (\ o ->+                 DataSet' <$>+                   (o .:? "creationTime") <*>+                     (o .:? "defaultPartitionExpirationMs")+                     <*> (o .:? "access" .!= mempty)+                     <*> (o .:? "etag")+                     <*> (o .:? "location")+                     <*> (o .:? "friendlyName")+                     <*> (o .:? "kind" .!= "bigquery#dataset")+                     <*> (o .:? "lastModifiedTime")+                     <*> (o .:? "datasetReference")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "id")+                     <*> (o .:? "labels")+                     <*> (o .:? "defaultTableExpirationMs")+                     <*> (o .:? "description"))++instance ToJSON DataSet where+        toJSON DataSet'{..}+          = object+              (catMaybes+                 [("creationTime" .=) <$> _dsCreationTime,+                  ("defaultPartitionExpirationMs" .=) <$>+                    _dsDefaultPartitionExpirationMs,+                  ("access" .=) <$> _dsAccess, ("etag" .=) <$> _dsEtag,+                  ("location" .=) <$> _dsLocation,+                  ("friendlyName" .=) <$> _dsFriendlyName,+                  Just ("kind" .= _dsKind),+                  ("lastModifiedTime" .=) <$> _dsLastModifiedTime,+                  ("datasetReference" .=) <$> _dsDataSetReference,+                  ("selfLink" .=) <$> _dsSelfLink, ("id" .=) <$> _dsId,+                  ("labels" .=) <$> _dsLabels,+                  ("defaultTableExpirationMs" .=) <$>+                    _dsDefaultTableExpirationMs,+                  ("description" .=) <$> _dsDescription])++-- | [TrustedTester] [Required] Defines the ranges for range partitioning.+--+-- /See:/ 'rangePartitioningRange' smart constructor.+data RangePartitioningRange = RangePartitioningRange'+    { _rprStart    :: !(Maybe (Textual Int64))+    , _rprInterval :: !(Maybe (Textual Int64))+    , _rprEnd      :: !(Maybe (Textual Int64))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RangePartitioningRange' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rprStart'+--+-- * 'rprInterval'+--+-- * 'rprEnd'+rangePartitioningRange+    :: RangePartitioningRange+rangePartitioningRange =+    RangePartitioningRange'+    { _rprStart = Nothing+    , _rprInterval = Nothing+    , _rprEnd = Nothing+    }++-- | [TrustedTester] [Required] The start of range partitioning, inclusive.+rprStart :: Lens' RangePartitioningRange (Maybe Int64)+rprStart+  = lens _rprStart (\ s a -> s{_rprStart = a}) .+      mapping _Coerce++-- | [TrustedTester] [Required] The width of each interval.+rprInterval :: Lens' RangePartitioningRange (Maybe Int64)+rprInterval+  = lens _rprInterval (\ s a -> s{_rprInterval = a}) .+      mapping _Coerce++-- | [TrustedTester] [Required] The end of range partitioning, exclusive.+rprEnd :: Lens' RangePartitioningRange (Maybe Int64)+rprEnd+  = lens _rprEnd (\ s a -> s{_rprEnd = a}) .+      mapping _Coerce++instance FromJSON RangePartitioningRange where+        parseJSON+          = withObject "RangePartitioningRange"+              (\ o ->+                 RangePartitioningRange' <$>+                   (o .:? "start") <*> (o .:? "interval") <*>+                     (o .:? "end"))++instance ToJSON RangePartitioningRange where+        toJSON RangePartitioningRange'{..}+          = object+              (catMaybes+                 [("start" .=) <$> _rprStart,+                  ("interval" .=) <$> _rprInterval,+                  ("end" .=) <$> _rprEnd])++--+-- /See:/ 'jobStatisticsReservationUsageItem' smart constructor.+data JobStatisticsReservationUsageItem = JobStatisticsReservationUsageItem'+    { _jsruiName   :: !(Maybe Text)+    , _jsruiSlotMs :: !(Maybe (Textual Int64))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'JobStatisticsReservationUsageItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'jsruiName'+--+-- * 'jsruiSlotMs'+jobStatisticsReservationUsageItem+    :: JobStatisticsReservationUsageItem+jobStatisticsReservationUsageItem =+    JobStatisticsReservationUsageItem'+    { _jsruiName = Nothing+    , _jsruiSlotMs = Nothing+    }++-- | [Output-only] Reservation name or \"unreserved\" for on-demand resources+-- usage.+jsruiName :: Lens' JobStatisticsReservationUsageItem (Maybe Text)+jsruiName+  = lens _jsruiName (\ s a -> s{_jsruiName = a})++-- | [Output-only] Slot-milliseconds the job spent in the given reservation.+jsruiSlotMs :: Lens' JobStatisticsReservationUsageItem (Maybe Int64)+jsruiSlotMs+  = lens _jsruiSlotMs (\ s a -> s{_jsruiSlotMs = a}) .+      mapping _Coerce++instance FromJSON JobStatisticsReservationUsageItem+         where+        parseJSON+          = withObject "JobStatisticsReservationUsageItem"+              (\ o ->+                 JobStatisticsReservationUsageItem' <$>+                   (o .:? "name") <*> (o .:? "slotMs"))++instance ToJSON JobStatisticsReservationUsageItem+         where+        toJSON JobStatisticsReservationUsageItem'{..}+          = object+              (catMaybes+                 [("name" .=) <$> _jsruiName,+                  ("slotMs" .=) <$> _jsruiSlotMs])++--+-- /See:/ 'bigtableOptions' smart constructor.+data BigtableOptions = BigtableOptions'+    { _boReadRowkeyAsString              :: !(Maybe Bool)+    , _boIgnoreUnspecifiedColumnFamilies :: !(Maybe Bool)+    , _boColumnFamilies                  :: !(Maybe [BigtableColumnFamily])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BigtableOptions' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'boReadRowkeyAsString'+--+-- * 'boIgnoreUnspecifiedColumnFamilies'+--+-- * 'boColumnFamilies'+bigtableOptions+    :: BigtableOptions+bigtableOptions =+    BigtableOptions'+    { _boReadRowkeyAsString = Nothing+    , _boIgnoreUnspecifiedColumnFamilies = Nothing+    , _boColumnFamilies = Nothing+    }++-- | [Optional] If field is true, then the rowkey column families will be+-- read and converted to string. Otherwise they are read with BYTES type+-- values and users need to manually cast them with CAST if necessary. The+-- default value is false.+boReadRowkeyAsString :: Lens' BigtableOptions (Maybe Bool)+boReadRowkeyAsString+  = lens _boReadRowkeyAsString+      (\ s a -> s{_boReadRowkeyAsString = a})++-- | [Optional] If field is true, then the column families that are not+-- specified in columnFamilies list are not exposed in the table schema.+-- Otherwise, they are read with BYTES type values. The default value is+-- false.+boIgnoreUnspecifiedColumnFamilies :: Lens' BigtableOptions (Maybe Bool)+boIgnoreUnspecifiedColumnFamilies+  = lens _boIgnoreUnspecifiedColumnFamilies+      (\ s a -> s{_boIgnoreUnspecifiedColumnFamilies = a})++-- | [Optional] List of column families to expose in the table schema along+-- with their types. This list restricts the column families that can be+-- referenced in queries and specifies their value types. You can use this+-- list to do type conversions - see the \'type\' field for more details.+-- If you leave this list empty, all column families are present in the+-- table schema and their values are read as BYTES. During a query only the+-- column families referenced in that query are read from Bigtable.+boColumnFamilies :: Lens' BigtableOptions [BigtableColumnFamily]+boColumnFamilies+  = lens _boColumnFamilies+      (\ s a -> s{_boColumnFamilies = a})+      . _Default+      . _Coerce++instance FromJSON BigtableOptions where+        parseJSON+          = withObject "BigtableOptions"+              (\ o ->+                 BigtableOptions' <$>+                   (o .:? "readRowkeyAsString") <*>+                     (o .:? "ignoreUnspecifiedColumnFamilies")+                     <*> (o .:? "columnFamilies" .!= mempty))++instance ToJSON BigtableOptions where+        toJSON BigtableOptions'{..}+          = object+              (catMaybes+                 [("readRowkeyAsString" .=) <$> _boReadRowkeyAsString,+                  ("ignoreUnspecifiedColumnFamilies" .=) <$>+                    _boIgnoreUnspecifiedColumnFamilies,+                  ("columnFamilies" .=) <$> _boColumnFamilies])++--+-- /See:/ 'clustering' smart constructor.+newtype Clustering = Clustering'+    { _cFields :: Maybe [Text]+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Clustering' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cFields'+clustering+    :: Clustering+clustering =+    Clustering'+    { _cFields = Nothing+    }++-- | [Repeated] One or more fields on which data should be clustered. Only+-- top-level, non-repeated, simple-type fields are supported. When you+-- cluster a table using multiple columns, the order of columns you specify+-- is important. The order of the specified columns determines the sort+-- order of the data.+cFields :: Lens' Clustering [Text]+cFields+  = lens _cFields (\ s a -> s{_cFields = a}) . _Default+      . _Coerce++instance FromJSON Clustering where+        parseJSON+          = withObject "Clustering"+              (\ o -> Clustering' <$> (o .:? "fields" .!= mempty))++instance ToJSON Clustering where+        toJSON Clustering'{..}+          = object (catMaybes [("fields" .=) <$> _cFields])++--+-- /See:/ 'externalDataConfiguration' smart constructor.+data ExternalDataConfiguration = ExternalDataConfiguration'+    { _edcBigtableOptions     :: !(Maybe BigtableOptions)+    , _edcIgnoreUnknownValues :: !(Maybe Bool)+    , _edcCompression         :: !(Maybe Text)+    , _edcSourceFormat        :: !(Maybe Text)+    , _edcSchema              :: !(Maybe TableSchema)+    , _edcMaxBadRecords       :: !(Maybe (Textual Int32))+    , _edcGoogleSheetsOptions :: !(Maybe GoogleSheetsOptions)+    , _edcAutodetect          :: !(Maybe Bool)+    , _edcSourceURIs          :: !(Maybe [Text])+    , _edcCSVOptions          :: !(Maybe CSVOptions)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ExternalDataConfiguration' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'edcBigtableOptions'+--+-- * 'edcIgnoreUnknownValues'+--+-- * 'edcCompression'+--+-- * 'edcSourceFormat'+--+-- * 'edcSchema'+--+-- * 'edcMaxBadRecords'+--+-- * 'edcGoogleSheetsOptions'+--+-- * 'edcAutodetect'+--+-- * 'edcSourceURIs'+--+-- * 'edcCSVOptions'+externalDataConfiguration+    :: ExternalDataConfiguration+externalDataConfiguration =+    ExternalDataConfiguration'+    { _edcBigtableOptions = Nothing+    , _edcIgnoreUnknownValues = Nothing+    , _edcCompression = Nothing+    , _edcSourceFormat = Nothing+    , _edcSchema = Nothing+    , _edcMaxBadRecords = Nothing+    , _edcGoogleSheetsOptions = Nothing+    , _edcAutodetect = Nothing+    , _edcSourceURIs = Nothing+    , _edcCSVOptions = Nothing+    }++-- | [Optional] Additional options if sourceFormat is set to BIGTABLE.+edcBigtableOptions :: Lens' ExternalDataConfiguration (Maybe BigtableOptions)+edcBigtableOptions+  = lens _edcBigtableOptions+      (\ s a -> s{_edcBigtableOptions = a})++-- | [Optional] Indicates if BigQuery should allow extra values that are not+-- represented in the table schema. If true, the extra values are ignored.+-- If false, records with extra columns are treated as bad records, and if+-- there are too many bad records, an invalid error is returned in the job+-- result. The default value is false. The sourceFormat property determines+-- what BigQuery treats as an extra value: CSV: Trailing columns JSON:+-- Named values that don\'t match any column names Google Cloud Bigtable:+-- This setting is ignored. Google Cloud Datastore backups: This setting is+-- ignored. Avro: This setting is ignored.+edcIgnoreUnknownValues :: Lens' ExternalDataConfiguration (Maybe Bool)+edcIgnoreUnknownValues+  = lens _edcIgnoreUnknownValues+      (\ s a -> s{_edcIgnoreUnknownValues = a})++-- | [Optional] The compression type of the data source. Possible values+-- include GZIP and NONE. The default value is NONE. This setting is+-- ignored for Google Cloud Bigtable, Google Cloud Datastore backups and+-- Avro formats.+edcCompression :: Lens' ExternalDataConfiguration (Maybe Text)+edcCompression+  = lens _edcCompression+      (\ s a -> s{_edcCompression = a})++-- | [Required] The data format. For CSV files, specify \"CSV\". For Google+-- sheets, specify \"GOOGLE_SHEETS\". For newline-delimited JSON, specify+-- \"NEWLINE_DELIMITED_JSON\". For Avro files, specify \"AVRO\". For Google+-- Cloud Datastore backups, specify \"DATASTORE_BACKUP\". [Beta] For Google+-- Cloud Bigtable, specify \"BIGTABLE\".+edcSourceFormat :: Lens' ExternalDataConfiguration (Maybe Text)+edcSourceFormat+  = lens _edcSourceFormat+      (\ s a -> s{_edcSourceFormat = a})++-- | [Optional] The schema for the data. Schema is required for CSV and JSON+-- formats. Schema is disallowed for Google Cloud Bigtable, Cloud Datastore+-- backups, and Avro formats.+edcSchema :: Lens' ExternalDataConfiguration (Maybe TableSchema)+edcSchema+  = lens _edcSchema (\ s a -> s{_edcSchema = a})++-- | [Optional] The maximum number of bad records that BigQuery can ignore+-- when reading data. If the number of bad records exceeds this value, an+-- invalid error is returned in the job result. This is only valid for CSV,+-- JSON, and Google Sheets. The default value is 0, which requires that all+-- records are valid. This setting is ignored for Google Cloud Bigtable,+-- Google Cloud Datastore backups and Avro formats.+edcMaxBadRecords :: Lens' ExternalDataConfiguration (Maybe Int32)+edcMaxBadRecords+  = lens _edcMaxBadRecords+      (\ s a -> s{_edcMaxBadRecords = a})+      . mapping _Coerce++-- | [Optional] Additional options if sourceFormat is set to GOOGLE_SHEETS.+edcGoogleSheetsOptions :: Lens' ExternalDataConfiguration (Maybe GoogleSheetsOptions)+edcGoogleSheetsOptions+  = lens _edcGoogleSheetsOptions+      (\ s a -> s{_edcGoogleSheetsOptions = a})++-- | Try to detect schema and format options automatically. Any option+-- specified explicitly will be honored.+edcAutodetect :: Lens' ExternalDataConfiguration (Maybe Bool)+edcAutodetect+  = lens _edcAutodetect+      (\ s a -> s{_edcAutodetect = a})++-- | [Required] The fully-qualified URIs that point to your data in Google+-- Cloud. For Google Cloud Storage URIs: Each URI can contain one \'*\'+-- wildcard character and it must come after the \'bucket\' name. Size+-- limits related to load jobs apply to external data sources. For Google+-- Cloud Bigtable URIs: Exactly one URI can be specified and it has be a+-- fully specified and valid HTTPS URL for a Google Cloud Bigtable table.+-- For Google Cloud Datastore backups, exactly one URI can be specified.+-- Also, the \'*\' wildcard character is not allowed.+edcSourceURIs :: Lens' ExternalDataConfiguration [Text]+edcSourceURIs+  = lens _edcSourceURIs+      (\ s a -> s{_edcSourceURIs = a})+      . _Default+      . _Coerce++-- | Additional properties to set if sourceFormat is set to CSV.+edcCSVOptions :: Lens' ExternalDataConfiguration (Maybe CSVOptions)+edcCSVOptions+  = lens _edcCSVOptions+      (\ s a -> s{_edcCSVOptions = a})++instance FromJSON ExternalDataConfiguration where+        parseJSON+          = withObject "ExternalDataConfiguration"+              (\ o ->+                 ExternalDataConfiguration' <$>+                   (o .:? "bigtableOptions") <*>+                     (o .:? "ignoreUnknownValues")+                     <*> (o .:? "compression")+                     <*> (o .:? "sourceFormat")+                     <*> (o .:? "schema")+                     <*> (o .:? "maxBadRecords")+                     <*> (o .:? "googleSheetsOptions")+                     <*> (o .:? "autodetect")+                     <*> (o .:? "sourceUris" .!= mempty)+                     <*> (o .:? "csvOptions"))++instance ToJSON ExternalDataConfiguration where+        toJSON ExternalDataConfiguration'{..}+          = object+              (catMaybes+                 [("bigtableOptions" .=) <$> _edcBigtableOptions,+                  ("ignoreUnknownValues" .=) <$>+                    _edcIgnoreUnknownValues,+                  ("compression" .=) <$> _edcCompression,+                  ("sourceFormat" .=) <$> _edcSourceFormat,+                  ("schema" .=) <$> _edcSchema,+                  ("maxBadRecords" .=) <$> _edcMaxBadRecords,+                  ("googleSheetsOptions" .=) <$>+                    _edcGoogleSheetsOptions,+                  ("autodetect" .=) <$> _edcAutodetect,+                  ("sourceUris" .=) <$> _edcSourceURIs,+                  ("csvOptions" .=) <$> _edcCSVOptions])++--+-- /See:/ 'tableReference' smart constructor.+data TableReference = TableReference'+    { _trDataSetId :: !(Maybe Text)+    , _trProjectId :: !(Maybe Text)+    , _trTableId   :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TableReference' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'trDataSetId'+--+-- * 'trProjectId'+--+-- * 'trTableId'+tableReference+    :: TableReference+tableReference =+    TableReference'+    { _trDataSetId = Nothing+    , _trProjectId = Nothing+    , _trTableId = Nothing+    }++-- | [Required] The ID of the dataset containing this table.+trDataSetId :: Lens' TableReference (Maybe Text)+trDataSetId+  = lens _trDataSetId (\ s a -> s{_trDataSetId = a})++-- | [Required] The ID of the project containing this table.+trProjectId :: Lens' TableReference (Maybe Text)+trProjectId+  = lens _trProjectId (\ s a -> s{_trProjectId = a})++-- | [Required] The ID of the table. The ID must contain only letters (a-z,+-- A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024+-- characters.+trTableId :: Lens' TableReference (Maybe Text)+trTableId+  = lens _trTableId (\ s a -> s{_trTableId = a})++instance FromJSON TableReference where+        parseJSON+          = withObject "TableReference"+              (\ o ->+                 TableReference' <$>+                   (o .:? "datasetId") <*> (o .:? "projectId") <*>+                     (o .:? "tableId"))++instance ToJSON TableReference where+        toJSON TableReference'{..}+          = object+              (catMaybes+                 [("datasetId" .=) <$> _trDataSetId,+                  ("projectId" .=) <$> _trProjectId,+                  ("tableId" .=) <$> _trTableId])++-- | [Output-only, Beta] Model options used for the first training run. These+-- options are immutable for subsequent training runs. Default values are+-- used for any options not specified in the input query.+--+-- /See:/ 'modelDefinitionModelOptions' smart constructor.+data ModelDefinitionModelOptions = ModelDefinitionModelOptions'+    { _mdmoModelType :: !(Maybe Text)+    , _mdmoLabels    :: !(Maybe [Text])+    , _mdmoLossType  :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ModelDefinitionModelOptions' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mdmoModelType'+--+-- * 'mdmoLabels'+--+-- * 'mdmoLossType'+modelDefinitionModelOptions+    :: ModelDefinitionModelOptions+modelDefinitionModelOptions =+    ModelDefinitionModelOptions'+    { _mdmoModelType = Nothing+    , _mdmoLabels = Nothing+    , _mdmoLossType = Nothing+    }++mdmoModelType :: Lens' ModelDefinitionModelOptions (Maybe Text)+mdmoModelType+  = lens _mdmoModelType+      (\ s a -> s{_mdmoModelType = a})++mdmoLabels :: Lens' ModelDefinitionModelOptions [Text]+mdmoLabels+  = lens _mdmoLabels (\ s a -> s{_mdmoLabels = a}) .+      _Default+      . _Coerce++mdmoLossType :: Lens' ModelDefinitionModelOptions (Maybe Text)+mdmoLossType+  = lens _mdmoLossType (\ s a -> s{_mdmoLossType = a})++instance FromJSON ModelDefinitionModelOptions where+        parseJSON+          = withObject "ModelDefinitionModelOptions"+              (\ o ->+                 ModelDefinitionModelOptions' <$>+                   (o .:? "modelType") <*> (o .:? "labels" .!= mempty)+                     <*> (o .:? "lossType"))++instance ToJSON ModelDefinitionModelOptions where+        toJSON ModelDefinitionModelOptions'{..}+          = object+              (catMaybes+                 [("modelType" .=) <$> _mdmoModelType,+                  ("labels" .=) <$> _mdmoLabels,+                  ("lossType" .=) <$> _mdmoLossType])++--+-- /See:/ 'rangePartitioning' smart constructor.+data RangePartitioning = RangePartitioning'+    { _rpField :: !(Maybe Text)+    , _rpRange :: !(Maybe RangePartitioningRange)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RangePartitioning' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rpField'+--+-- * 'rpRange'+rangePartitioning+    :: RangePartitioning+rangePartitioning =+    RangePartitioning'+    { _rpField = Nothing+    , _rpRange = Nothing+    }++-- | [TrustedTester] [Required] The table is partitioned by this field. The+-- field must be a top-level NULLABLE\/REQUIRED field. The only supported+-- type is INTEGER\/INT64.+rpField :: Lens' RangePartitioning (Maybe Text)+rpField = lens _rpField (\ s a -> s{_rpField = a})++-- | [TrustedTester] [Required] Defines the ranges for range partitioning.+rpRange :: Lens' RangePartitioning (Maybe RangePartitioningRange)+rpRange = lens _rpRange (\ s a -> s{_rpRange = a})++instance FromJSON RangePartitioning where+        parseJSON+          = withObject "RangePartitioning"+              (\ o ->+                 RangePartitioning' <$>+                   (o .:? "field") <*> (o .:? "range"))++instance ToJSON RangePartitioning where+        toJSON RangePartitioning'{..}+          = object+              (catMaybes+                 [("field" .=) <$> _rpField,+                  ("range" .=) <$> _rpRange])++--+-- /See:/ 'tableFieldSchema' smart constructor.+data TableFieldSchema = TableFieldSchema'+    { _tfsMode        :: !(Maybe Text)+    , _tfsName        :: !(Maybe Text)+    , _tfsType        :: !(Maybe Text)+    , _tfsDescription :: !(Maybe Text)+    , _tfsFields      :: !(Maybe [TableFieldSchema])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TableFieldSchema' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tfsMode'+--+-- * 'tfsName'+--+-- * 'tfsType'+--+-- * 'tfsDescription'+--+-- * 'tfsFields'+tableFieldSchema+    :: TableFieldSchema+tableFieldSchema =+    TableFieldSchema'+    { _tfsMode = Nothing+    , _tfsName = Nothing+    , _tfsType = Nothing+    , _tfsDescription = Nothing+    , _tfsFields = Nothing+    }++-- | [Optional] The field mode. Possible values include NULLABLE, REQUIRED+-- and REPEATED. The default value is NULLABLE.+tfsMode :: Lens' TableFieldSchema (Maybe Text)+tfsMode = lens _tfsMode (\ s a -> s{_tfsMode = a})++-- | [Required] The field name. The name must contain only letters (a-z,+-- A-Z), numbers (0-9), or underscores (_), and must start with a letter or+-- underscore. The maximum length is 128 characters.+tfsName :: Lens' TableFieldSchema (Maybe Text)+tfsName = lens _tfsName (\ s a -> s{_tfsName = a})++-- | [Required] The field data type. Possible values include STRING, BYTES,+-- INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT),+-- BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, RECORD+-- (where RECORD indicates that the field contains a nested schema) or+-- STRUCT (same as RECORD).+tfsType :: Lens' TableFieldSchema (Maybe Text)+tfsType = lens _tfsType (\ s a -> s{_tfsType = a})++-- | [Optional] The field description. The maximum length is 1,024+-- characters.+tfsDescription :: Lens' TableFieldSchema (Maybe Text)+tfsDescription+  = lens _tfsDescription+      (\ s a -> s{_tfsDescription = a})++-- | [Optional] Describes the nested schema fields if the type property is+-- set to RECORD.+tfsFields :: Lens' TableFieldSchema [TableFieldSchema]+tfsFields+  = lens _tfsFields (\ s a -> s{_tfsFields = a}) .+      _Default+      . _Coerce++instance FromJSON TableFieldSchema where+        parseJSON+          = withObject "TableFieldSchema"+              (\ o ->+                 TableFieldSchema' <$>+                   (o .:? "mode") <*> (o .:? "name") <*> (o .:? "type")+                     <*> (o .:? "description")+                     <*> (o .:? "fields" .!= mempty))++instance ToJSON TableFieldSchema where+        toJSON TableFieldSchema'{..}+          = object+              (catMaybes+                 [("mode" .=) <$> _tfsMode, ("name" .=) <$> _tfsName,+                  ("type" .=) <$> _tfsType,+                  ("description" .=) <$> _tfsDescription,+                  ("fields" .=) <$> _tfsFields])++--+-- /See:/ 'getQueryResultsResponse' smart constructor.+data GetQueryResultsResponse = GetQueryResultsResponse'+    { _gqrrJobReference        :: !(Maybe JobReference)+    , _gqrrEtag                :: !(Maybe Text)+    , _gqrrKind                :: !Text+    , _gqrrSchema              :: !(Maybe TableSchema)+    , _gqrrTotalBytesProcessed :: !(Maybe (Textual Int64))+    , _gqrrRows                :: !(Maybe [TableRow])+    , _gqrrPageToken           :: !(Maybe Text)+    , _gqrrNumDmlAffectedRows  :: !(Maybe (Textual Int64))+    , _gqrrTotalRows           :: !(Maybe (Textual Word64))+    , _gqrrErrors              :: !(Maybe [ErrorProto])+    , _gqrrJobComplete         :: !(Maybe Bool)+    , _gqrrCacheHit            :: !(Maybe Bool)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GetQueryResultsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gqrrJobReference'+--+-- * 'gqrrEtag'+--+-- * 'gqrrKind'+--+-- * 'gqrrSchema'+--+-- * 'gqrrTotalBytesProcessed'+--+-- * 'gqrrRows'+--+-- * 'gqrrPageToken'+--+-- * 'gqrrNumDmlAffectedRows'+--+-- * 'gqrrTotalRows'+--+-- * 'gqrrErrors'+--+-- * 'gqrrJobComplete'+--+-- * 'gqrrCacheHit'+getQueryResultsResponse+    :: GetQueryResultsResponse+getQueryResultsResponse =+    GetQueryResultsResponse'+    { _gqrrJobReference = Nothing+    , _gqrrEtag = Nothing+    , _gqrrKind = "bigquery#getQueryResultsResponse"+    , _gqrrSchema = Nothing+    , _gqrrTotalBytesProcessed = Nothing+    , _gqrrRows = Nothing+    , _gqrrPageToken = Nothing+    , _gqrrNumDmlAffectedRows = Nothing+    , _gqrrTotalRows = Nothing+    , _gqrrErrors = Nothing+    , _gqrrJobComplete = Nothing+    , _gqrrCacheHit = Nothing+    }++-- | Reference to the BigQuery Job that was created to run the query. This+-- field will be present even if the original request timed out, in which+-- case GetQueryResults can be used to read the results once the query has+-- completed. Since this API only returns the first page of results,+-- subsequent pages can be fetched via the same mechanism+-- (GetQueryResults).+gqrrJobReference :: Lens' GetQueryResultsResponse (Maybe JobReference)+gqrrJobReference+  = lens _gqrrJobReference+      (\ s a -> s{_gqrrJobReference = a})++-- | A hash of this response.+gqrrEtag :: Lens' GetQueryResultsResponse (Maybe Text)+gqrrEtag = lens _gqrrEtag (\ s a -> s{_gqrrEtag = a})++-- | The resource type of the response.+gqrrKind :: Lens' GetQueryResultsResponse Text+gqrrKind = lens _gqrrKind (\ s a -> s{_gqrrKind = a})++-- | The schema of the results. Present only when the query completes+-- successfully.+gqrrSchema :: Lens' GetQueryResultsResponse (Maybe TableSchema)+gqrrSchema+  = lens _gqrrSchema (\ s a -> s{_gqrrSchema = a})++-- | The total number of bytes processed for this query.+gqrrTotalBytesProcessed :: Lens' GetQueryResultsResponse (Maybe Int64)+gqrrTotalBytesProcessed+  = lens _gqrrTotalBytesProcessed+      (\ s a -> s{_gqrrTotalBytesProcessed = a})+      . mapping _Coerce++-- | An object with as many results as can be contained within the maximum+-- permitted reply size. To get any additional rows, you can call+-- GetQueryResults and specify the jobReference returned above. Present+-- only when the query completes successfully.+gqrrRows :: Lens' GetQueryResultsResponse [TableRow]+gqrrRows+  = lens _gqrrRows (\ s a -> s{_gqrrRows = a}) .+      _Default+      . _Coerce++-- | A token used for paging results.+gqrrPageToken :: Lens' GetQueryResultsResponse (Maybe Text)+gqrrPageToken+  = lens _gqrrPageToken+      (\ s a -> s{_gqrrPageToken = a})++-- | [Output-only] The number of rows affected by a DML statement. Present+-- only for DML statements INSERT, UPDATE or DELETE.+gqrrNumDmlAffectedRows :: Lens' GetQueryResultsResponse (Maybe Int64)+gqrrNumDmlAffectedRows+  = lens _gqrrNumDmlAffectedRows+      (\ s a -> s{_gqrrNumDmlAffectedRows = a})+      . mapping _Coerce++-- | The total number of rows in the complete query result set, which can be+-- more than the number of rows in this single page of results. Present+-- only when the query completes successfully.+gqrrTotalRows :: Lens' GetQueryResultsResponse (Maybe Word64)+gqrrTotalRows+  = lens _gqrrTotalRows+      (\ s a -> s{_gqrrTotalRows = a})+      . mapping _Coerce++-- | [Output-only] The first errors or warnings encountered during the+-- running of the job. The final message includes the number of errors that+-- caused the process to stop. Errors here do not necessarily mean that the+-- job has completed or was unsuccessful.+gqrrErrors :: Lens' GetQueryResultsResponse [ErrorProto]+gqrrErrors+  = lens _gqrrErrors (\ s a -> s{_gqrrErrors = a}) .+      _Default+      . _Coerce++-- | Whether the query has completed or not. If rows or totalRows are+-- present, this will always be true. If this is false, totalRows will not+-- be available.+gqrrJobComplete :: Lens' GetQueryResultsResponse (Maybe Bool)+gqrrJobComplete+  = lens _gqrrJobComplete+      (\ s a -> s{_gqrrJobComplete = a})++-- | Whether the query result was fetched from the query cache.+gqrrCacheHit :: Lens' GetQueryResultsResponse (Maybe Bool)+gqrrCacheHit+  = lens _gqrrCacheHit (\ s a -> s{_gqrrCacheHit = a})++instance FromJSON GetQueryResultsResponse where+        parseJSON+          = withObject "GetQueryResultsResponse"+              (\ o ->+                 GetQueryResultsResponse' <$>+                   (o .:? "jobReference") <*> (o .:? "etag") <*>+                     (o .:? "kind" .!= "bigquery#getQueryResultsResponse")+                     <*> (o .:? "schema")+                     <*> (o .:? "totalBytesProcessed")+                     <*> (o .:? "rows" .!= mempty)+                     <*> (o .:? "pageToken")+                     <*> (o .:? "numDmlAffectedRows")+                     <*> (o .:? "totalRows")+                     <*> (o .:? "errors" .!= mempty)+                     <*> (o .:? "jobComplete")+                     <*> (o .:? "cacheHit"))++instance ToJSON GetQueryResultsResponse where+        toJSON GetQueryResultsResponse'{..}+          = object+              (catMaybes+                 [("jobReference" .=) <$> _gqrrJobReference,+                  ("etag" .=) <$> _gqrrEtag,+                  Just ("kind" .= _gqrrKind),+                  ("schema" .=) <$> _gqrrSchema,+                  ("totalBytesProcessed" .=) <$>+                    _gqrrTotalBytesProcessed,+                  ("rows" .=) <$> _gqrrRows,+                  ("pageToken" .=) <$> _gqrrPageToken,+                  ("numDmlAffectedRows" .=) <$>+                    _gqrrNumDmlAffectedRows,+                  ("totalRows" .=) <$> _gqrrTotalRows,+                  ("errors" .=) <$> _gqrrErrors,+                  ("jobComplete" .=) <$> _gqrrJobComplete,+                  ("cacheHit" .=) <$> _gqrrCacheHit])++--+-- /See:/ 'dataSetList' smart constructor.+data DataSetList = DataSetList'+    { _dslEtag          :: !(Maybe Text)+    , _dslNextPageToken :: !(Maybe Text)+    , _dslKind          :: !Text+    , _dslDataSets      :: !(Maybe [DataSetListDataSetsItem])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DataSetList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dslEtag'+--+-- * 'dslNextPageToken'+--+-- * 'dslKind'+--+-- * 'dslDataSets'+dataSetList+    :: DataSetList+dataSetList =+    DataSetList'+    { _dslEtag = Nothing+    , _dslNextPageToken = Nothing+    , _dslKind = "bigquery#datasetList"+    , _dslDataSets = Nothing+    }++-- | A hash value of the results page. You can use this property to determine+-- if the page has changed since the last request.+dslEtag :: Lens' DataSetList (Maybe Text)+dslEtag = lens _dslEtag (\ s a -> s{_dslEtag = a})++-- | A token that can be used to request the next results page. This property+-- is omitted on the final results page.+dslNextPageToken :: Lens' DataSetList (Maybe Text)+dslNextPageToken+  = lens _dslNextPageToken+      (\ s a -> s{_dslNextPageToken = a})++-- | The list type. This property always returns the value+-- \"bigquery#datasetList\".+dslKind :: Lens' DataSetList Text+dslKind = lens _dslKind (\ s a -> s{_dslKind = a})++-- | An array of the dataset resources in the project. Each resource contains+-- basic information. For full information about a particular dataset+-- resource, use the Datasets: get method. This property is omitted when+-- there are no datasets in the project.+dslDataSets :: Lens' DataSetList [DataSetListDataSetsItem]+dslDataSets+  = lens _dslDataSets (\ s a -> s{_dslDataSets = a}) .+      _Default+      . _Coerce++instance FromJSON DataSetList where+        parseJSON+          = withObject "DataSetList"+              (\ o ->+                 DataSetList' <$>+                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "bigquery#datasetList")+                     <*> (o .:? "datasets" .!= mempty))++instance ToJSON DataSetList where+        toJSON DataSetList'{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _dslEtag,+                  ("nextPageToken" .=) <$> _dslNextPageToken,+                  Just ("kind" .= _dslKind),+                  ("datasets" .=) <$> _dslDataSets])++--+-- /See:/ 'queryRequest' smart constructor.+data QueryRequest = QueryRequest'+    { _qrLocation        :: !(Maybe Text)+    , _qrUseQueryCache   :: !Bool+    , _qrPreserveNulls   :: !(Maybe Bool)+    , _qrKind            :: !Text+    , _qrQueryParameters :: !(Maybe [QueryParameter])+    , _qrQuery           :: !(Maybe Text)+    , _qrParameterMode   :: !(Maybe Text)+    , _qrTimeoutMs       :: !(Maybe (Textual Word32))+    , _qrUseLegacySQL    :: !Bool+    , _qrDryRun          :: !(Maybe Bool)+    , _qrMaxResults      :: !(Maybe (Textual Word32))+    , _qrDefaultDataSet  :: !(Maybe DataSetReference)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'QueryRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'qrLocation'+--+-- * 'qrUseQueryCache'+--+-- * 'qrPreserveNulls'+--+-- * 'qrKind'+--+-- * 'qrQueryParameters'+--+-- * 'qrQuery'+--+-- * 'qrParameterMode'+--+-- * 'qrTimeoutMs'+--+-- * 'qrUseLegacySQL'+--+-- * 'qrDryRun'+--+-- * 'qrMaxResults'+--+-- * 'qrDefaultDataSet'+queryRequest+    :: QueryRequest+queryRequest =+    QueryRequest'+    { _qrLocation = Nothing+    , _qrUseQueryCache = True+    , _qrPreserveNulls = Nothing+    , _qrKind = "bigquery#queryRequest"+    , _qrQueryParameters = Nothing+    , _qrQuery = Nothing+    , _qrParameterMode = Nothing+    , _qrTimeoutMs = Nothing+    , _qrUseLegacySQL = True+    , _qrDryRun = Nothing+    , _qrMaxResults = Nothing+    , _qrDefaultDataSet = Nothing+    }++-- | The geographic location where the job should run. See details at+-- https:\/\/cloud.google.com\/bigquery\/docs\/locations#specifying_your_location.+qrLocation :: Lens' QueryRequest (Maybe Text)+qrLocation+  = lens _qrLocation (\ s a -> s{_qrLocation = a})++-- | [Optional] Whether to look for the result in the query cache. The query+-- cache is a best-effort cache that will be flushed whenever tables in the+-- query are modified. The default value is true.+qrUseQueryCache :: Lens' QueryRequest Bool+qrUseQueryCache+  = lens _qrUseQueryCache+      (\ s a -> s{_qrUseQueryCache = a})++-- | [Deprecated] This property is deprecated.+qrPreserveNulls :: Lens' QueryRequest (Maybe Bool)+qrPreserveNulls+  = lens _qrPreserveNulls+      (\ s a -> s{_qrPreserveNulls = a})++-- | The resource type of the request.+qrKind :: Lens' QueryRequest Text+qrKind = lens _qrKind (\ s a -> s{_qrKind = a})++-- | Query parameters for Standard SQL queries.+qrQueryParameters :: Lens' QueryRequest [QueryParameter]+qrQueryParameters+  = lens _qrQueryParameters+      (\ s a -> s{_qrQueryParameters = a})+      . _Default+      . _Coerce++-- | [Required] A query string, following the BigQuery query syntax, of the+-- query to execute. Example: \"SELECT count(f1) FROM+-- [myProjectId:myDatasetId.myTableId]\".+qrQuery :: Lens' QueryRequest (Maybe Text)+qrQuery = lens _qrQuery (\ s a -> s{_qrQuery = a})++-- | Standard SQL only. Set to POSITIONAL to use positional (?) query+-- parameters or to NAMED to use named (\'myparam) query parameters in this+-- query.+qrParameterMode :: Lens' QueryRequest (Maybe Text)+qrParameterMode+  = lens _qrParameterMode+      (\ s a -> s{_qrParameterMode = a})++-- | [Optional] How long to wait for the query to complete, in milliseconds,+-- before the request times out and returns. Note that this is only a+-- timeout for the request, not the query. If the query takes longer to run+-- than the timeout value, the call returns without any results and with+-- the \'jobComplete\' flag set to false. You can call GetQueryResults() to+-- wait for the query to complete and read the results. The default value+-- is 10000 milliseconds (10 seconds).+qrTimeoutMs :: Lens' QueryRequest (Maybe Word32)+qrTimeoutMs+  = lens _qrTimeoutMs (\ s a -> s{_qrTimeoutMs = a}) .+      mapping _Coerce++-- | Specifies whether to use BigQuery\'s legacy SQL dialect for this query.+-- The default value is true. If set to false, the query will use+-- BigQuery\'s standard SQL:+-- https:\/\/cloud.google.com\/bigquery\/sql-reference\/ When useLegacySql+-- is set to false, the value of flattenResults is ignored; query will be+-- run as if flattenResults is false.+qrUseLegacySQL :: Lens' QueryRequest Bool+qrUseLegacySQL+  = lens _qrUseLegacySQL+      (\ s a -> s{_qrUseLegacySQL = a})++-- | [Optional] If set to true, BigQuery doesn\'t run the job. Instead, if+-- the query is valid, BigQuery returns statistics about the job such as+-- how many bytes would be processed. If the query is invalid, an error+-- returns. The default value is false.+qrDryRun :: Lens' QueryRequest (Maybe Bool)+qrDryRun = lens _qrDryRun (\ s a -> s{_qrDryRun = a})++-- | [Optional] The maximum number of rows of data to return per page of+-- results. Setting this flag to a small value such as 1000 and then paging+-- through results might improve reliability when the query result set is+-- large. In addition to this limit, responses are also limited to 10 MB.+-- By default, there is no maximum row count, and only the byte limit+-- applies.+qrMaxResults :: Lens' QueryRequest (Maybe Word32)+qrMaxResults+  = lens _qrMaxResults (\ s a -> s{_qrMaxResults = a})+      . mapping _Coerce++-- | [Optional] Specifies the default datasetId and projectId to assume for+-- any unqualified table names in the query. If not set, all table names in+-- the query string must be qualified in the format \'datasetId.tableId\'.+qrDefaultDataSet :: Lens' QueryRequest (Maybe DataSetReference)+qrDefaultDataSet+  = lens _qrDefaultDataSet+      (\ s a -> s{_qrDefaultDataSet = a})++instance FromJSON QueryRequest where+        parseJSON+          = withObject "QueryRequest"+              (\ o ->+                 QueryRequest' <$>+                   (o .:? "location") <*>+                     (o .:? "useQueryCache" .!= True)+                     <*> (o .:? "preserveNulls")+                     <*> (o .:? "kind" .!= "bigquery#queryRequest")+                     <*> (o .:? "queryParameters" .!= mempty)+                     <*> (o .:? "query")+                     <*> (o .:? "parameterMode")+                     <*> (o .:? "timeoutMs")+                     <*> (o .:? "useLegacySql" .!= True)+                     <*> (o .:? "dryRun")+                     <*> (o .:? "maxResults")+                     <*> (o .:? "defaultDataset"))++instance ToJSON QueryRequest where+        toJSON QueryRequest'{..}+          = object+              (catMaybes+                 [("location" .=) <$> _qrLocation,+                  Just ("useQueryCache" .= _qrUseQueryCache),+                  ("preserveNulls" .=) <$> _qrPreserveNulls,+                  Just ("kind" .= _qrKind),+                  ("queryParameters" .=) <$> _qrQueryParameters,+                  ("query" .=) <$> _qrQuery,+                  ("parameterMode" .=) <$> _qrParameterMode,+                  ("timeoutMs" .=) <$> _qrTimeoutMs,+                  Just ("useLegacySql" .= _qrUseLegacySQL),+                  ("dryRun" .=) <$> _qrDryRun,+                  ("maxResults" .=) <$> _qrMaxResults,+                  ("defaultDataset" .=) <$> _qrDefaultDataSet])++--+-- /See:/ 'queryParameter' smart constructor.+data QueryParameter = QueryParameter'+    { _qpParameterValue :: !(Maybe QueryParameterValue)+    , _qpParameterType  :: !(Maybe QueryParameterType)+    , _qpName           :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'QueryParameter' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'qpParameterValue'+--+-- * 'qpParameterType'+--+-- * 'qpName'+queryParameter+    :: QueryParameter+queryParameter =+    QueryParameter'+    { _qpParameterValue = Nothing+    , _qpParameterType = Nothing+    , _qpName = Nothing+    }++-- | [Required] The value of this parameter.+qpParameterValue :: Lens' QueryParameter (Maybe QueryParameterValue)+qpParameterValue+  = lens _qpParameterValue+      (\ s a -> s{_qpParameterValue = a})++-- | [Required] The type of this parameter.+qpParameterType :: Lens' QueryParameter (Maybe QueryParameterType)+qpParameterType+  = lens _qpParameterType+      (\ s a -> s{_qpParameterType = a})++-- | [Optional] If unset, this is a positional parameter. Otherwise, should+-- be unique within a query.+qpName :: Lens' QueryParameter (Maybe Text)+qpName = lens _qpName (\ s a -> s{_qpName = a})++instance FromJSON QueryParameter where+        parseJSON+          = withObject "QueryParameter"+              (\ o ->+                 QueryParameter' <$>+                   (o .:? "parameterValue") <*> (o .:? "parameterType")+                     <*> (o .:? "name"))++instance ToJSON QueryParameter where+        toJSON QueryParameter'{..}+          = object+              (catMaybes+                 [("parameterValue" .=) <$> _qpParameterValue,+                  ("parameterType" .=) <$> _qpParameterType,+                  ("name" .=) <$> _qpName])++--+-- /See:/ 'iterationResult' smart constructor.+data IterationResult = IterationResult'+    { _irDurationMs   :: !(Maybe (Textual Int64))+    , _irLearnRate    :: !(Maybe (Textual Double))+    , _irEvalLoss     :: !(Maybe (Textual Double))+    , _irTrainingLoss :: !(Maybe (Textual Double))+    , _irIndex        :: !(Maybe (Textual Int32))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'IterationResult' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'irDurationMs'+--+-- * 'irLearnRate'+--+-- * 'irEvalLoss'+--+-- * 'irTrainingLoss'+--+-- * 'irIndex'+iterationResult+    :: IterationResult+iterationResult =+    IterationResult'+    { _irDurationMs = Nothing+    , _irLearnRate = Nothing+    , _irEvalLoss = Nothing+    , _irTrainingLoss = Nothing+    , _irIndex = Nothing+    }++-- | [Output-only, Beta] Time taken to run the training iteration in+-- milliseconds.+irDurationMs :: Lens' IterationResult (Maybe Int64)+irDurationMs+  = lens _irDurationMs (\ s a -> s{_irDurationMs = a})+      . mapping _Coerce++-- | [Output-only, Beta] Learning rate used for this iteration, it varies for+-- different training iterations if learn_rate_strategy option is not+-- constant.+irLearnRate :: Lens' IterationResult (Maybe Double)+irLearnRate+  = lens _irLearnRate (\ s a -> s{_irLearnRate = a}) .+      mapping _Coerce++-- | [Output-only, Beta] Eval loss computed on the eval data at the end of+-- the iteration. The eval loss is used for early stopping to avoid+-- overfitting. No eval loss if eval_split_method option is specified as+-- no_split or auto_split with input data size less than 500 rows.+irEvalLoss :: Lens' IterationResult (Maybe Double)+irEvalLoss+  = lens _irEvalLoss (\ s a -> s{_irEvalLoss = a}) .+      mapping _Coerce++-- | [Output-only, Beta] Training loss computed on the training data at the+-- end of the iteration. The training loss function is defined by model+-- type.+irTrainingLoss :: Lens' IterationResult (Maybe Double)+irTrainingLoss+  = lens _irTrainingLoss+      (\ s a -> s{_irTrainingLoss = a})+      . mapping _Coerce++-- | [Output-only, Beta] Index of the ML training iteration, starting from+-- zero for each training run.+irIndex :: Lens' IterationResult (Maybe Int32)+irIndex+  = lens _irIndex (\ s a -> s{_irIndex = a}) .+      mapping _Coerce++instance FromJSON IterationResult where+        parseJSON+          = withObject "IterationResult"+              (\ o ->+                 IterationResult' <$>+                   (o .:? "durationMs") <*> (o .:? "learnRate") <*>+                     (o .:? "evalLoss")+                     <*> (o .:? "trainingLoss")+                     <*> (o .:? "index"))++instance ToJSON IterationResult where+        toJSON IterationResult'{..}+          = object+              (catMaybes+                 [("durationMs" .=) <$> _irDurationMs,+                  ("learnRate" .=) <$> _irLearnRate,+                  ("evalLoss" .=) <$> _irEvalLoss,+                  ("trainingLoss" .=) <$> _irTrainingLoss,+                  ("index" .=) <$> _irIndex])++--+-- /See:/ 'jobStatistics4' smart constructor.+newtype JobStatistics4 = JobStatistics4'+    { _jsDestinationURIFileCounts :: Maybe [Textual Int64]+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'JobStatistics4' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'jsDestinationURIFileCounts'+jobStatistics4+    :: JobStatistics4+jobStatistics4 =+    JobStatistics4'+    { _jsDestinationURIFileCounts = Nothing+    }++-- | [Output-only] Number of files per destination URI or URI pattern+-- specified in the extract configuration. These values will be in the same+-- order as the URIs specified in the \'destinationUris\' field.+jsDestinationURIFileCounts :: Lens' JobStatistics4 [Int64]+jsDestinationURIFileCounts+  = lens _jsDestinationURIFileCounts+      (\ s a -> s{_jsDestinationURIFileCounts = a})+      . _Default+      . _Coerce++instance FromJSON JobStatistics4 where+        parseJSON+          = withObject "JobStatistics4"+              (\ o ->+                 JobStatistics4' <$>+                   (o .:? "destinationUriFileCounts" .!= mempty))++instance ToJSON JobStatistics4 where+        toJSON JobStatistics4'{..}+          = object+              (catMaybes+                 [("destinationUriFileCounts" .=) <$>+                    _jsDestinationURIFileCounts])++--+-- /See:/ 'projectReference' smart constructor.+newtype ProjectReference = ProjectReference'+    { _prProjectId :: Maybe Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectReference' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'prProjectId'+projectReference+    :: ProjectReference+projectReference =+    ProjectReference'+    { _prProjectId = Nothing+    }++-- | [Required] ID of the project. Can be either the numeric ID or the+-- assigned ID of the project.+prProjectId :: Lens' ProjectReference (Maybe Text)+prProjectId+  = lens _prProjectId (\ s a -> s{_prProjectId = a})++instance FromJSON ProjectReference where+        parseJSON+          = withObject "ProjectReference"+              (\ o -> ProjectReference' <$> (o .:? "projectId"))++instance ToJSON ProjectReference where+        toJSON ProjectReference'{..}+          = object+              (catMaybes [("projectId" .=) <$> _prProjectId])++--+-- /See:/ 'explainQueryStage' smart constructor.+data ExplainQueryStage = ExplainQueryStage'+    { _eqsReadMsAvg                 :: !(Maybe (Textual Int64))+    , _eqsStatus                    :: !(Maybe Text)+    , _eqsShuffleOutputBytesSpilled :: !(Maybe (Textual Int64))+    , _eqsReadMsMax                 :: !(Maybe (Textual Int64))+    , _eqsCompletedParallelInputs   :: !(Maybe (Textual Int64))+    , _eqsWaitRatioMax              :: !(Maybe (Textual Double))+    , _eqsParallelInputs            :: !(Maybe (Textual Int64))+    , _eqsShuffleOutputBytes        :: !(Maybe (Textual Int64))+    , _eqsRecordsWritten            :: !(Maybe (Textual Int64))+    , _eqsSteps                     :: !(Maybe [ExplainQueryStep])+    , _eqsInputStages               :: !(Maybe [Textual Int64])+    , _eqsWriteRatioAvg             :: !(Maybe (Textual Double))+    , _eqsRecordsRead               :: !(Maybe (Textual Int64))+    , _eqsComputeRatioAvg           :: !(Maybe (Textual Double))+    , _eqsName                      :: !(Maybe Text)+    , _eqsComputeMsMax              :: !(Maybe (Textual Int64))+    , _eqsReadRatioMax              :: !(Maybe (Textual Double))+    , _eqsWriteMsMax                :: !(Maybe (Textual Int64))+    , _eqsWaitRatioAvg              :: !(Maybe (Textual Double))+    , _eqsWaitMsAvg                 :: !(Maybe (Textual Int64))+    , _eqsId                        :: !(Maybe (Textual Int64))+    , _eqsComputeRatioMax           :: !(Maybe (Textual Double))+    , _eqsWriteRatioMax             :: !(Maybe (Textual Double))+    , _eqsComputeMsAvg              :: !(Maybe (Textual Int64))+    , _eqsReadRatioAvg              :: !(Maybe (Textual Double))+    , _eqsWriteMsAvg                :: !(Maybe (Textual Int64))+    , _eqsStartMs                   :: !(Maybe (Textual Int64))+    , _eqsEndMs                     :: !(Maybe (Textual Int64))+    , _eqsWaitMsMax                 :: !(Maybe (Textual Int64))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ExplainQueryStage' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eqsReadMsAvg'+--+-- * 'eqsStatus'+--+-- * 'eqsShuffleOutputBytesSpilled'+--+-- * 'eqsReadMsMax'+--+-- * 'eqsCompletedParallelInputs'+--+-- * 'eqsWaitRatioMax'+--+-- * 'eqsParallelInputs'+--+-- * 'eqsShuffleOutputBytes'+--+-- * 'eqsRecordsWritten'+--+-- * 'eqsSteps'+--+-- * 'eqsInputStages'+--+-- * 'eqsWriteRatioAvg'+--+-- * 'eqsRecordsRead'+--+-- * 'eqsComputeRatioAvg'+--+-- * 'eqsName'+--+-- * 'eqsComputeMsMax'+--+-- * 'eqsReadRatioMax'+--+-- * 'eqsWriteMsMax'+--+-- * 'eqsWaitRatioAvg'+--+-- * 'eqsWaitMsAvg'+--+-- * 'eqsId'+--+-- * 'eqsComputeRatioMax'+--+-- * 'eqsWriteRatioMax'+--+-- * 'eqsComputeMsAvg'+--+-- * 'eqsReadRatioAvg'+--+-- * 'eqsWriteMsAvg'+--+-- * 'eqsStartMs'+--+-- * 'eqsEndMs'+--+-- * 'eqsWaitMsMax'+explainQueryStage+    :: ExplainQueryStage+explainQueryStage =+    ExplainQueryStage'+    { _eqsReadMsAvg = Nothing+    , _eqsStatus = Nothing+    , _eqsShuffleOutputBytesSpilled = Nothing+    , _eqsReadMsMax = Nothing+    , _eqsCompletedParallelInputs = Nothing+    , _eqsWaitRatioMax = Nothing+    , _eqsParallelInputs = Nothing+    , _eqsShuffleOutputBytes = Nothing+    , _eqsRecordsWritten = Nothing+    , _eqsSteps = Nothing+    , _eqsInputStages = Nothing+    , _eqsWriteRatioAvg = Nothing+    , _eqsRecordsRead = Nothing+    , _eqsComputeRatioAvg = Nothing+    , _eqsName = Nothing+    , _eqsComputeMsMax = Nothing+    , _eqsReadRatioMax = Nothing+    , _eqsWriteMsMax = Nothing+    , _eqsWaitRatioAvg = Nothing+    , _eqsWaitMsAvg = Nothing+    , _eqsId = Nothing+    , _eqsComputeRatioMax = Nothing+    , _eqsWriteRatioMax = Nothing+    , _eqsComputeMsAvg = Nothing+    , _eqsReadRatioAvg = Nothing+    , _eqsWriteMsAvg = Nothing+    , _eqsStartMs = Nothing+    , _eqsEndMs = Nothing+    , _eqsWaitMsMax = Nothing+    }++-- | Milliseconds the average shard spent reading input.+eqsReadMsAvg :: Lens' ExplainQueryStage (Maybe Int64)+eqsReadMsAvg+  = lens _eqsReadMsAvg (\ s a -> s{_eqsReadMsAvg = a})+      . mapping _Coerce++-- | Current status for the stage.+eqsStatus :: Lens' ExplainQueryStage (Maybe Text)+eqsStatus+  = lens _eqsStatus (\ s a -> s{_eqsStatus = a})++-- | Total number of bytes written to shuffle and spilled to disk.+eqsShuffleOutputBytesSpilled :: Lens' ExplainQueryStage (Maybe Int64)+eqsShuffleOutputBytesSpilled+  = lens _eqsShuffleOutputBytesSpilled+      (\ s a -> s{_eqsShuffleOutputBytesSpilled = a})+      . mapping _Coerce++-- | Milliseconds the slowest shard spent reading input.+eqsReadMsMax :: Lens' ExplainQueryStage (Maybe Int64)+eqsReadMsMax+  = lens _eqsReadMsMax (\ s a -> s{_eqsReadMsMax = a})+      . mapping _Coerce++-- | Number of parallel input segments completed.+eqsCompletedParallelInputs :: Lens' ExplainQueryStage (Maybe Int64)+eqsCompletedParallelInputs+  = lens _eqsCompletedParallelInputs+      (\ s a -> s{_eqsCompletedParallelInputs = a})+      . mapping _Coerce++-- | Relative amount of time the slowest shard spent waiting to be scheduled.+eqsWaitRatioMax :: Lens' ExplainQueryStage (Maybe Double)+eqsWaitRatioMax+  = lens _eqsWaitRatioMax+      (\ s a -> s{_eqsWaitRatioMax = a})+      . mapping _Coerce++-- | Number of parallel input segments to be processed.+eqsParallelInputs :: Lens' ExplainQueryStage (Maybe Int64)+eqsParallelInputs+  = lens _eqsParallelInputs+      (\ s a -> s{_eqsParallelInputs = a})+      . mapping _Coerce++-- | Total number of bytes written to shuffle.+eqsShuffleOutputBytes :: Lens' ExplainQueryStage (Maybe Int64)+eqsShuffleOutputBytes+  = lens _eqsShuffleOutputBytes+      (\ s a -> s{_eqsShuffleOutputBytes = a})+      . mapping _Coerce++-- | Number of records written by the stage.+eqsRecordsWritten :: Lens' ExplainQueryStage (Maybe Int64)+eqsRecordsWritten+  = lens _eqsRecordsWritten+      (\ s a -> s{_eqsRecordsWritten = a})+      . mapping _Coerce++-- | List of operations within the stage in dependency order (approximately+-- chronological).+eqsSteps :: Lens' ExplainQueryStage [ExplainQueryStep]+eqsSteps+  = lens _eqsSteps (\ s a -> s{_eqsSteps = a}) .+      _Default+      . _Coerce++-- | IDs for stages that are inputs to this stage.+eqsInputStages :: Lens' ExplainQueryStage [Int64]+eqsInputStages+  = lens _eqsInputStages+      (\ s a -> s{_eqsInputStages = a})+      . _Default+      . _Coerce++-- | Relative amount of time the average shard spent on writing output.+eqsWriteRatioAvg :: Lens' ExplainQueryStage (Maybe Double)+eqsWriteRatioAvg+  = lens _eqsWriteRatioAvg+      (\ s a -> s{_eqsWriteRatioAvg = a})+      . mapping _Coerce++-- | Number of records read into the stage.+eqsRecordsRead :: Lens' ExplainQueryStage (Maybe Int64)+eqsRecordsRead+  = lens _eqsRecordsRead+      (\ s a -> s{_eqsRecordsRead = a})+      . mapping _Coerce++-- | Relative amount of time the average shard spent on CPU-bound tasks.+eqsComputeRatioAvg :: Lens' ExplainQueryStage (Maybe Double)+eqsComputeRatioAvg+  = lens _eqsComputeRatioAvg+      (\ s a -> s{_eqsComputeRatioAvg = a})+      . mapping _Coerce++-- | Human-readable name for stage.+eqsName :: Lens' ExplainQueryStage (Maybe Text)+eqsName = lens _eqsName (\ s a -> s{_eqsName = a})++-- | Milliseconds the slowest shard spent on CPU-bound tasks.+eqsComputeMsMax :: Lens' ExplainQueryStage (Maybe Int64)+eqsComputeMsMax+  = lens _eqsComputeMsMax+      (\ s a -> s{_eqsComputeMsMax = a})+      . mapping _Coerce++-- | Relative amount of time the slowest shard spent reading input.+eqsReadRatioMax :: Lens' ExplainQueryStage (Maybe Double)+eqsReadRatioMax+  = lens _eqsReadRatioMax+      (\ s a -> s{_eqsReadRatioMax = a})+      . mapping _Coerce++-- | Milliseconds the slowest shard spent on writing output.+eqsWriteMsMax :: Lens' ExplainQueryStage (Maybe Int64)+eqsWriteMsMax+  = lens _eqsWriteMsMax+      (\ s a -> s{_eqsWriteMsMax = a})+      . mapping _Coerce++-- | Relative amount of time the average shard spent waiting to be scheduled.+eqsWaitRatioAvg :: Lens' ExplainQueryStage (Maybe Double)+eqsWaitRatioAvg+  = lens _eqsWaitRatioAvg+      (\ s a -> s{_eqsWaitRatioAvg = a})+      . mapping _Coerce++-- | Milliseconds the average shard spent waiting to be scheduled.+eqsWaitMsAvg :: Lens' ExplainQueryStage (Maybe Int64)+eqsWaitMsAvg+  = lens _eqsWaitMsAvg (\ s a -> s{_eqsWaitMsAvg = a})+      . mapping _Coerce++-- | Unique ID for stage within plan.+eqsId :: Lens' ExplainQueryStage (Maybe Int64)+eqsId+  = lens _eqsId (\ s a -> s{_eqsId = a}) .+      mapping _Coerce++-- | Relative amount of time the slowest shard spent on CPU-bound tasks.+eqsComputeRatioMax :: Lens' ExplainQueryStage (Maybe Double)+eqsComputeRatioMax+  = lens _eqsComputeRatioMax+      (\ s a -> s{_eqsComputeRatioMax = a})+      . mapping _Coerce++-- | Relative amount of time the slowest shard spent on writing output.+eqsWriteRatioMax :: Lens' ExplainQueryStage (Maybe Double)+eqsWriteRatioMax+  = lens _eqsWriteRatioMax+      (\ s a -> s{_eqsWriteRatioMax = a})+      . mapping _Coerce++-- | Milliseconds the average shard spent on CPU-bound tasks.+eqsComputeMsAvg :: Lens' ExplainQueryStage (Maybe Int64)+eqsComputeMsAvg+  = lens _eqsComputeMsAvg+      (\ s a -> s{_eqsComputeMsAvg = a})+      . mapping _Coerce++-- | Relative amount of time the average shard spent reading input.+eqsReadRatioAvg :: Lens' ExplainQueryStage (Maybe Double)+eqsReadRatioAvg+  = lens _eqsReadRatioAvg+      (\ s a -> s{_eqsReadRatioAvg = a})+      . mapping _Coerce++-- | Milliseconds the average shard spent on writing output.+eqsWriteMsAvg :: Lens' ExplainQueryStage (Maybe Int64)+eqsWriteMsAvg+  = lens _eqsWriteMsAvg+      (\ s a -> s{_eqsWriteMsAvg = a})+      . mapping _Coerce++-- | Stage start time represented as milliseconds since epoch.+eqsStartMs :: Lens' ExplainQueryStage (Maybe Int64)+eqsStartMs+  = lens _eqsStartMs (\ s a -> s{_eqsStartMs = a}) .+      mapping _Coerce++-- | Stage end time represented as milliseconds since epoch.+eqsEndMs :: Lens' ExplainQueryStage (Maybe Int64)+eqsEndMs+  = lens _eqsEndMs (\ s a -> s{_eqsEndMs = a}) .+      mapping _Coerce++-- | Milliseconds the slowest shard spent waiting to be scheduled.+eqsWaitMsMax :: Lens' ExplainQueryStage (Maybe Int64)+eqsWaitMsMax+  = lens _eqsWaitMsMax (\ s a -> s{_eqsWaitMsMax = a})+      . mapping _Coerce++instance FromJSON ExplainQueryStage where+        parseJSON+          = withObject "ExplainQueryStage"+              (\ o ->+                 ExplainQueryStage' <$>+                   (o .:? "readMsAvg") <*> (o .:? "status") <*>+                     (o .:? "shuffleOutputBytesSpilled")+                     <*> (o .:? "readMsMax")+                     <*> (o .:? "completedParallelInputs")+                     <*> (o .:? "waitRatioMax")+                     <*> (o .:? "parallelInputs")+                     <*> (o .:? "shuffleOutputBytes")+                     <*> (o .:? "recordsWritten")+                     <*> (o .:? "steps" .!= mempty)+                     <*> (o .:? "inputStages" .!= mempty)+                     <*> (o .:? "writeRatioAvg")+                     <*> (o .:? "recordsRead")+                     <*> (o .:? "computeRatioAvg")+                     <*> (o .:? "name")+                     <*> (o .:? "computeMsMax")+                     <*> (o .:? "readRatioMax")+                     <*> (o .:? "writeMsMax")+                     <*> (o .:? "waitRatioAvg")+                     <*> (o .:? "waitMsAvg")+                     <*> (o .:? "id")+                     <*> (o .:? "computeRatioMax")+                     <*> (o .:? "writeRatioMax")+                     <*> (o .:? "computeMsAvg")+                     <*> (o .:? "readRatioAvg")+                     <*> (o .:? "writeMsAvg")+                     <*> (o .:? "startMs")+                     <*> (o .:? "endMs")+                     <*> (o .:? "waitMsMax"))++instance ToJSON ExplainQueryStage where+        toJSON ExplainQueryStage'{..}+          = object+              (catMaybes+                 [("readMsAvg" .=) <$> _eqsReadMsAvg,+                  ("status" .=) <$> _eqsStatus,+                  ("shuffleOutputBytesSpilled" .=) <$>+                    _eqsShuffleOutputBytesSpilled,+                  ("readMsMax" .=) <$> _eqsReadMsMax,+                  ("completedParallelInputs" .=) <$>+                    _eqsCompletedParallelInputs,+                  ("waitRatioMax" .=) <$> _eqsWaitRatioMax,+                  ("parallelInputs" .=) <$> _eqsParallelInputs,+                  ("shuffleOutputBytes" .=) <$> _eqsShuffleOutputBytes,+                  ("recordsWritten" .=) <$> _eqsRecordsWritten,+                  ("steps" .=) <$> _eqsSteps,+                  ("inputStages" .=) <$> _eqsInputStages,+                  ("writeRatioAvg" .=) <$> _eqsWriteRatioAvg,+                  ("recordsRead" .=) <$> _eqsRecordsRead,+                  ("computeRatioAvg" .=) <$> _eqsComputeRatioAvg,+                  ("name" .=) <$> _eqsName,+                  ("computeMsMax" .=) <$> _eqsComputeMsMax,+                  ("readRatioMax" .=) <$> _eqsReadRatioMax,+                  ("writeMsMax" .=) <$> _eqsWriteMsMax,+                  ("waitRatioAvg" .=) <$> _eqsWaitRatioAvg,+                  ("waitMsAvg" .=) <$> _eqsWaitMsAvg,+                  ("id" .=) <$> _eqsId,+                  ("computeRatioMax" .=) <$> _eqsComputeRatioMax,+                  ("writeRatioMax" .=) <$> _eqsWriteRatioMax,+                  ("computeMsAvg" .=) <$> _eqsComputeMsAvg,+                  ("readRatioAvg" .=) <$> _eqsReadRatioAvg,+                  ("writeMsAvg" .=) <$> _eqsWriteMsAvg,+                  ("startMs" .=) <$> _eqsStartMs,+                  ("endMs" .=) <$> _eqsEndMs,+                  ("waitMsMax" .=) <$> _eqsWaitMsMax])++-- | [Output-only, Beta] Training options used by this training run. These+-- options are mutable for subsequent training runs. Default values are+-- explicitly stored for options not specified in the input query of the+-- first training run. For subsequent training runs, any option not+-- explicitly specified in the input query will be copied from the previous+-- training run.+--+-- /See:/ 'trainingRunTrainingOptions' smart constructor.+data TrainingRunTrainingOptions = TrainingRunTrainingOptions'+    { _trtoLineSearchInitLearnRate :: !(Maybe (Textual Double))+    , _trtoMinRelProgress          :: !(Maybe (Textual Double))+    , _trtoL1Reg                   :: !(Maybe (Textual Double))+    , _trtoLearnRate               :: !(Maybe (Textual Double))+    , _trtoLearnRateStrategy       :: !(Maybe Text)+    , _trtoMaxIteration            :: !(Maybe (Textual Int64))+    , _trtoEarlyStop               :: !(Maybe Bool)+    , _trtoL2Reg                   :: !(Maybe (Textual Double))+    , _trtoWarmStart               :: !(Maybe Bool)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TrainingRunTrainingOptions' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'trtoLineSearchInitLearnRate'+--+-- * 'trtoMinRelProgress'+--+-- * 'trtoL1Reg'+--+-- * 'trtoLearnRate'+--+-- * 'trtoLearnRateStrategy'+--+-- * 'trtoMaxIteration'+--+-- * 'trtoEarlyStop'+--+-- * 'trtoL2Reg'+--+-- * 'trtoWarmStart'+trainingRunTrainingOptions+    :: TrainingRunTrainingOptions+trainingRunTrainingOptions =+    TrainingRunTrainingOptions'+    { _trtoLineSearchInitLearnRate = Nothing+    , _trtoMinRelProgress = Nothing+    , _trtoL1Reg = Nothing+    , _trtoLearnRate = Nothing+    , _trtoLearnRateStrategy = Nothing+    , _trtoMaxIteration = Nothing+    , _trtoEarlyStop = Nothing+    , _trtoL2Reg = Nothing+    , _trtoWarmStart = Nothing+    }++trtoLineSearchInitLearnRate :: Lens' TrainingRunTrainingOptions (Maybe Double)+trtoLineSearchInitLearnRate+  = lens _trtoLineSearchInitLearnRate+      (\ s a -> s{_trtoLineSearchInitLearnRate = a})+      . mapping _Coerce++trtoMinRelProgress :: Lens' TrainingRunTrainingOptions (Maybe Double)+trtoMinRelProgress+  = lens _trtoMinRelProgress+      (\ s a -> s{_trtoMinRelProgress = a})+      . mapping _Coerce++trtoL1Reg :: Lens' TrainingRunTrainingOptions (Maybe Double)+trtoL1Reg+  = lens _trtoL1Reg (\ s a -> s{_trtoL1Reg = a}) .+      mapping _Coerce++trtoLearnRate :: Lens' TrainingRunTrainingOptions (Maybe Double)+trtoLearnRate+  = lens _trtoLearnRate+      (\ s a -> s{_trtoLearnRate = a})+      . mapping _Coerce++trtoLearnRateStrategy :: Lens' TrainingRunTrainingOptions (Maybe Text)+trtoLearnRateStrategy+  = lens _trtoLearnRateStrategy+      (\ s a -> s{_trtoLearnRateStrategy = a})++trtoMaxIteration :: Lens' TrainingRunTrainingOptions (Maybe Int64)+trtoMaxIteration+  = lens _trtoMaxIteration+      (\ s a -> s{_trtoMaxIteration = a})+      . mapping _Coerce++trtoEarlyStop :: Lens' TrainingRunTrainingOptions (Maybe Bool)+trtoEarlyStop+  = lens _trtoEarlyStop+      (\ s a -> s{_trtoEarlyStop = a})++trtoL2Reg :: Lens' TrainingRunTrainingOptions (Maybe Double)+trtoL2Reg+  = lens _trtoL2Reg (\ s a -> s{_trtoL2Reg = a}) .+      mapping _Coerce++trtoWarmStart :: Lens' TrainingRunTrainingOptions (Maybe Bool)+trtoWarmStart+  = lens _trtoWarmStart+      (\ s a -> s{_trtoWarmStart = a})++instance FromJSON TrainingRunTrainingOptions where+        parseJSON+          = withObject "TrainingRunTrainingOptions"+              (\ o ->+                 TrainingRunTrainingOptions' <$>+                   (o .:? "lineSearchInitLearnRate") <*>+                     (o .:? "minRelProgress")+                     <*> (o .:? "l1Reg")+                     <*> (o .:? "learnRate")+                     <*> (o .:? "learnRateStrategy")+                     <*> (o .:? "maxIteration")+                     <*> (o .:? "earlyStop")+                     <*> (o .:? "l2Reg")+                     <*> (o .:? "warmStart"))++instance ToJSON TrainingRunTrainingOptions where+        toJSON TrainingRunTrainingOptions'{..}+          = object+              (catMaybes+                 [("lineSearchInitLearnRate" .=) <$>+                    _trtoLineSearchInitLearnRate,+                  ("minRelProgress" .=) <$> _trtoMinRelProgress,+                  ("l1Reg" .=) <$> _trtoL1Reg,+                  ("learnRate" .=) <$> _trtoLearnRate,+                  ("learnRateStrategy" .=) <$> _trtoLearnRateStrategy,+                  ("maxIteration" .=) <$> _trtoMaxIteration,+                  ("earlyStop" .=) <$> _trtoEarlyStop,+                  ("l2Reg" .=) <$> _trtoL2Reg,+                  ("warmStart" .=) <$> _trtoWarmStart])++--+-- /See:/ 'bigQueryModelTraining' smart constructor.+data BigQueryModelTraining = BigQueryModelTraining'+    { _bqmtExpectedTotalIterations :: !(Maybe (Textual Int64))+    , _bqmtCurrentIteration        :: !(Maybe (Textual Int32))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BigQueryModelTraining' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bqmtExpectedTotalIterations'+--+-- * 'bqmtCurrentIteration'+bigQueryModelTraining+    :: BigQueryModelTraining+bigQueryModelTraining =+    BigQueryModelTraining'+    { _bqmtExpectedTotalIterations = Nothing+    , _bqmtCurrentIteration = Nothing+    }++-- | [Output-only, Beta] Expected number of iterations for the create model+-- query job specified as num_iterations in the input query. The actual+-- total number of iterations may be less than this number due to early+-- stop.+bqmtExpectedTotalIterations :: Lens' BigQueryModelTraining (Maybe Int64)+bqmtExpectedTotalIterations+  = lens _bqmtExpectedTotalIterations+      (\ s a -> s{_bqmtExpectedTotalIterations = a})+      . mapping _Coerce++-- | [Output-only, Beta] Index of current ML training iteration. Updated+-- during create model query job to show job progress.+bqmtCurrentIteration :: Lens' BigQueryModelTraining (Maybe Int32)+bqmtCurrentIteration+  = lens _bqmtCurrentIteration+      (\ s a -> s{_bqmtCurrentIteration = a})+      . mapping _Coerce++instance FromJSON BigQueryModelTraining where+        parseJSON+          = withObject "BigQueryModelTraining"+              (\ o ->+                 BigQueryModelTraining' <$>+                   (o .:? "expectedTotalIterations") <*>+                     (o .:? "currentIteration"))++instance ToJSON BigQueryModelTraining where+        toJSON BigQueryModelTraining'{..}+          = object+              (catMaybes+                 [("expectedTotalIterations" .=) <$>+                    _bqmtExpectedTotalIterations,+                  ("currentIteration" .=) <$> _bqmtCurrentIteration])++--+-- /See:/ 'jobConfigurationLoad' smart constructor.+data JobConfigurationLoad = JobConfigurationLoad'+    { _jclSkipLeadingRows                    :: !(Maybe (Textual Int32))+    , _jclProjectionFields                   :: !(Maybe [Text])+    , _jclDestinationTable                   :: !(Maybe TableReference)+    , _jclWriteDisPosition                   :: !(Maybe Text)+    , _jclAllowJaggedRows                    :: !(Maybe Bool)+    , _jclClustering                         :: !(Maybe Clustering)+    , _jclRangePartitioning                  :: !(Maybe RangePartitioning)+    , _jclSchemaInline                       :: !(Maybe Text)+    , _jclIgnoreUnknownValues                :: !(Maybe Bool)+    , _jclSchemaUpdateOptions                :: !(Maybe [Text])+    , _jclCreateDisPosition                  :: !(Maybe Text)+    , _jclSchemaInlineFormat                 :: !(Maybe Text)+    , _jclAllowQuotedNewlines                :: !(Maybe Bool)+    , _jclSourceFormat                       :: !(Maybe Text)+    , _jclUseAvroLogicalTypes                :: !(Maybe Bool)+    , _jclSchema                             :: !(Maybe TableSchema)+    , _jclTimePartitioning                   :: !(Maybe TimePartitioning)+    , _jclQuote                              :: !(Maybe Text)+    , _jclMaxBadRecords                      :: !(Maybe (Textual Int32))+    , _jclAutodetect                         :: !(Maybe Bool)+    , _jclSourceURIs                         :: !(Maybe [Text])+    , _jclEncoding                           :: !(Maybe Text)+    , _jclDestinationTableProperties         :: !(Maybe DestinationTableProperties)+    , _jclDestinationEncryptionConfiguration :: !(Maybe EncryptionConfiguration)+    , _jclFieldDelimiter                     :: !(Maybe Text)+    , _jclNullMarker                         :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'JobConfigurationLoad' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'jclSkipLeadingRows'+--+-- * 'jclProjectionFields'+--+-- * 'jclDestinationTable'+--+-- * 'jclWriteDisPosition'+--+-- * 'jclAllowJaggedRows'+--+-- * 'jclClustering'+--+-- * 'jclRangePartitioning'+--+-- * 'jclSchemaInline'+--+-- * 'jclIgnoreUnknownValues'+--+-- * 'jclSchemaUpdateOptions'+--+-- * 'jclCreateDisPosition'+--+-- * 'jclSchemaInlineFormat'+--+-- * 'jclAllowQuotedNewlines'+--+-- * 'jclSourceFormat'+--+-- * 'jclUseAvroLogicalTypes'+--+-- * 'jclSchema'+--+-- * 'jclTimePartitioning'+--+-- * 'jclQuote'+--+-- * 'jclMaxBadRecords'+--+-- * 'jclAutodetect'+--+-- * 'jclSourceURIs'+--+-- * 'jclEncoding'+--+-- * 'jclDestinationTableProperties'+--+-- * 'jclDestinationEncryptionConfiguration'+--+-- * 'jclFieldDelimiter'+--+-- * 'jclNullMarker'+jobConfigurationLoad+    :: JobConfigurationLoad+jobConfigurationLoad =+    JobConfigurationLoad'+    { _jclSkipLeadingRows = Nothing+    , _jclProjectionFields = Nothing+    , _jclDestinationTable = Nothing+    , _jclWriteDisPosition = Nothing+    , _jclAllowJaggedRows = Nothing+    , _jclClustering = Nothing+    , _jclRangePartitioning = Nothing+    , _jclSchemaInline = Nothing+    , _jclIgnoreUnknownValues = Nothing+    , _jclSchemaUpdateOptions = Nothing+    , _jclCreateDisPosition = Nothing+    , _jclSchemaInlineFormat = Nothing+    , _jclAllowQuotedNewlines = Nothing+    , _jclSourceFormat = Nothing+    , _jclUseAvroLogicalTypes = Nothing+    , _jclSchema = Nothing+    , _jclTimePartitioning = Nothing+    , _jclQuote = Nothing+    , _jclMaxBadRecords = Nothing+    , _jclAutodetect = Nothing+    , _jclSourceURIs = Nothing+    , _jclEncoding = Nothing+    , _jclDestinationTableProperties = Nothing+    , _jclDestinationEncryptionConfiguration = Nothing+    , _jclFieldDelimiter = Nothing+    , _jclNullMarker = Nothing+    }++-- | [Optional] The number of rows at the top of a CSV file that BigQuery+-- will skip when loading the data. The default value is 0. This property+-- is useful if you have header rows in the file that should be skipped.+jclSkipLeadingRows :: Lens' JobConfigurationLoad (Maybe Int32)+jclSkipLeadingRows+  = lens _jclSkipLeadingRows+      (\ s a -> s{_jclSkipLeadingRows = a})+      . mapping _Coerce++-- | If sourceFormat is set to \"DATASTORE_BACKUP\", indicates which entity+-- properties to load into BigQuery from a Cloud Datastore backup. Property+-- names are case sensitive and must be top-level properties. If no+-- properties are specified, BigQuery loads all properties. If any named+-- property isn\'t found in the Cloud Datastore backup, an invalid error is+-- returned in the job result.+jclProjectionFields :: Lens' JobConfigurationLoad [Text]+jclProjectionFields+  = lens _jclProjectionFields+      (\ s a -> s{_jclProjectionFields = a})+      . _Default+      . _Coerce++-- | [Required] The destination table to load the data into.+jclDestinationTable :: Lens' JobConfigurationLoad (Maybe TableReference)+jclDestinationTable+  = lens _jclDestinationTable+      (\ s a -> s{_jclDestinationTable = a})++-- | [Optional] Specifies the action that occurs if the destination table+-- already exists. The following values are supported: WRITE_TRUNCATE: If+-- the table already exists, BigQuery overwrites the table data.+-- WRITE_APPEND: If the table already exists, BigQuery appends the data to+-- the table. WRITE_EMPTY: If the table already exists and contains data, a+-- \'duplicate\' error is returned in the job result. The default value is+-- WRITE_APPEND. Each action is atomic and only occurs if BigQuery is able+-- to complete the job successfully. Creation, truncation and append+-- actions occur as one atomic update upon job completion.+jclWriteDisPosition :: Lens' JobConfigurationLoad (Maybe Text)+jclWriteDisPosition+  = lens _jclWriteDisPosition+      (\ s a -> s{_jclWriteDisPosition = a})++-- | [Optional] Accept rows that are missing trailing optional columns. The+-- missing values are treated as nulls. If false, records with missing+-- trailing columns are treated as bad records, and if there are too many+-- bad records, an invalid error is returned in the job result. The default+-- value is false. Only applicable to CSV, ignored for other formats.+jclAllowJaggedRows :: Lens' JobConfigurationLoad (Maybe Bool)+jclAllowJaggedRows+  = lens _jclAllowJaggedRows+      (\ s a -> s{_jclAllowJaggedRows = a})++-- | [Beta] Clustering specification for the destination table. Must be+-- specified with time-based partitioning, data in the table will be first+-- partitioned and subsequently clustered.+jclClustering :: Lens' JobConfigurationLoad (Maybe Clustering)+jclClustering+  = lens _jclClustering+      (\ s a -> s{_jclClustering = a})++-- | [TrustedTester] Range partitioning specification for this table. Only+-- one of timePartitioning and rangePartitioning should be specified.+jclRangePartitioning :: Lens' JobConfigurationLoad (Maybe RangePartitioning)+jclRangePartitioning+  = lens _jclRangePartitioning+      (\ s a -> s{_jclRangePartitioning = a})++-- | [Deprecated] The inline schema. For CSV schemas, specify as+-- \"Field1:Type1[,Field2:Type2]*\". For example, \"foo:STRING,+-- bar:INTEGER, baz:FLOAT\".+jclSchemaInline :: Lens' JobConfigurationLoad (Maybe Text)+jclSchemaInline+  = lens _jclSchemaInline+      (\ s a -> s{_jclSchemaInline = a})++-- | [Optional] Indicates if BigQuery should allow extra values that are not+-- represented in the table schema. If true, the extra values are ignored.+-- If false, records with extra columns are treated as bad records, and if+-- there are too many bad records, an invalid error is returned in the job+-- result. The default value is false. The sourceFormat property determines+-- what BigQuery treats as an extra value: CSV: Trailing columns JSON:+-- Named values that don\'t match any column names+jclIgnoreUnknownValues :: Lens' JobConfigurationLoad (Maybe Bool)+jclIgnoreUnknownValues+  = lens _jclIgnoreUnknownValues+      (\ s a -> s{_jclIgnoreUnknownValues = a})++-- | Allows the schema of the destination table to be updated as a side+-- effect of the load job if a schema is autodetected or supplied in the+-- job configuration. Schema update options are supported in two cases:+-- when writeDisposition is WRITE_APPEND; when writeDisposition is+-- WRITE_TRUNCATE and the destination table is a partition of a table,+-- specified by partition decorators. For normal tables, WRITE_TRUNCATE+-- will always overwrite the schema. One or more of the following values+-- are specified: ALLOW_FIELD_ADDITION: allow adding a nullable field to+-- the schema. ALLOW_FIELD_RELAXATION: allow relaxing a required field in+-- the original schema to nullable.+jclSchemaUpdateOptions :: Lens' JobConfigurationLoad [Text]+jclSchemaUpdateOptions+  = lens _jclSchemaUpdateOptions+      (\ s a -> s{_jclSchemaUpdateOptions = a})+      . _Default+      . _Coerce++-- | [Optional] Specifies whether the job is allowed to create new tables.+-- The following values are supported: CREATE_IF_NEEDED: If the table does+-- not exist, BigQuery creates the table. CREATE_NEVER: The table must+-- already exist. If it does not, a \'notFound\' error is returned in the+-- job result. The default value is CREATE_IF_NEEDED. Creation, truncation+-- and append actions occur as one atomic update upon job completion.+jclCreateDisPosition :: Lens' JobConfigurationLoad (Maybe Text)+jclCreateDisPosition+  = lens _jclCreateDisPosition+      (\ s a -> s{_jclCreateDisPosition = a})++-- | [Deprecated] The format of the schemaInline property.+jclSchemaInlineFormat :: Lens' JobConfigurationLoad (Maybe Text)+jclSchemaInlineFormat+  = lens _jclSchemaInlineFormat+      (\ s a -> s{_jclSchemaInlineFormat = a})++-- | Indicates if BigQuery should allow quoted data sections that contain+-- newline characters in a CSV file. The default value is false.+jclAllowQuotedNewlines :: Lens' JobConfigurationLoad (Maybe Bool)+jclAllowQuotedNewlines+  = lens _jclAllowQuotedNewlines+      (\ s a -> s{_jclAllowQuotedNewlines = a})++-- | [Optional] The format of the data files. For CSV files, specify \"CSV\".+-- For datastore backups, specify \"DATASTORE_BACKUP\". For+-- newline-delimited JSON, specify \"NEWLINE_DELIMITED_JSON\". For Avro,+-- specify \"AVRO\". For parquet, specify \"PARQUET\". For orc, specify+-- \"ORC\". The default value is CSV.+jclSourceFormat :: Lens' JobConfigurationLoad (Maybe Text)+jclSourceFormat+  = lens _jclSourceFormat+      (\ s a -> s{_jclSourceFormat = a})++-- | [Optional] If sourceFormat is set to \"AVRO\", indicates whether to+-- enable interpreting logical types into their corresponding types (ie.+-- TIMESTAMP), instead of only using their raw types (ie. INTEGER).+jclUseAvroLogicalTypes :: Lens' JobConfigurationLoad (Maybe Bool)+jclUseAvroLogicalTypes+  = lens _jclUseAvroLogicalTypes+      (\ s a -> s{_jclUseAvroLogicalTypes = a})++-- | [Optional] The schema for the destination table. The schema can be+-- omitted if the destination table already exists, or if you\'re loading+-- data from Google Cloud Datastore.+jclSchema :: Lens' JobConfigurationLoad (Maybe TableSchema)+jclSchema+  = lens _jclSchema (\ s a -> s{_jclSchema = a})++-- | Time-based partitioning specification for the destination table. Only+-- one of timePartitioning and rangePartitioning should be specified.+jclTimePartitioning :: Lens' JobConfigurationLoad (Maybe TimePartitioning)+jclTimePartitioning+  = lens _jclTimePartitioning+      (\ s a -> s{_jclTimePartitioning = a})++-- | [Optional] The value that is used to quote data sections in a CSV file.+-- BigQuery converts the string to ISO-8859-1 encoding, and then uses the+-- first byte of the encoded string to split the data in its raw, binary+-- state. The default value is a double-quote (\'\"\'). If your data does+-- not contain quoted sections, set the property value to an empty string.+-- If your data contains quoted newline characters, you must also set the+-- allowQuotedNewlines property to true.+jclQuote :: Lens' JobConfigurationLoad (Maybe Text)+jclQuote = lens _jclQuote (\ s a -> s{_jclQuote = a})++-- | [Optional] The maximum number of bad records that BigQuery can ignore+-- when running the job. If the number of bad records exceeds this value,+-- an invalid error is returned in the job result. This is only valid for+-- CSV and JSON. The default value is 0, which requires that all records+-- are valid.+jclMaxBadRecords :: Lens' JobConfigurationLoad (Maybe Int32)+jclMaxBadRecords+  = lens _jclMaxBadRecords+      (\ s a -> s{_jclMaxBadRecords = a})+      . mapping _Coerce++-- | [Optional] Indicates if we should automatically infer the options and+-- schema for CSV and JSON sources.+jclAutodetect :: Lens' JobConfigurationLoad (Maybe Bool)+jclAutodetect+  = lens _jclAutodetect+      (\ s a -> s{_jclAutodetect = a})++-- | [Required] The fully-qualified URIs that point to your data in Google+-- Cloud. For Google Cloud Storage URIs: Each URI can contain one \'*\'+-- wildcard character and it must come after the \'bucket\' name. Size+-- limits related to load jobs apply to external data sources. For Google+-- Cloud Bigtable URIs: Exactly one URI can be specified and it has be a+-- fully specified and valid HTTPS URL for a Google Cloud Bigtable table.+-- For Google Cloud Datastore backups: Exactly one URI can be specified.+-- Also, the \'*\' wildcard character is not allowed.+jclSourceURIs :: Lens' JobConfigurationLoad [Text]+jclSourceURIs+  = lens _jclSourceURIs+      (\ s a -> s{_jclSourceURIs = a})+      . _Default+      . _Coerce++-- | [Optional] The character encoding of the data. The supported values are+-- UTF-8 or ISO-8859-1. The default value is UTF-8. BigQuery decodes the+-- data after the raw, binary data has been split using the values of the+-- quote and fieldDelimiter properties.+jclEncoding :: Lens' JobConfigurationLoad (Maybe Text)+jclEncoding+  = lens _jclEncoding (\ s a -> s{_jclEncoding = a})++-- | [Beta] [Optional] Properties with which to create the destination table+-- if it is new.+jclDestinationTableProperties :: Lens' JobConfigurationLoad (Maybe DestinationTableProperties)+jclDestinationTableProperties+  = lens _jclDestinationTableProperties+      (\ s a -> s{_jclDestinationTableProperties = a})++-- | Custom encryption configuration (e.g., Cloud KMS keys).+jclDestinationEncryptionConfiguration :: Lens' JobConfigurationLoad (Maybe EncryptionConfiguration)+jclDestinationEncryptionConfiguration+  = lens _jclDestinationEncryptionConfiguration+      (\ s a ->+         s{_jclDestinationEncryptionConfiguration = a})++-- | [Optional] The separator for fields in a CSV file. The separator can be+-- any ISO-8859-1 single-byte character. To use a character in the range+-- 128-255, you must encode the character as UTF8. BigQuery converts the+-- string to ISO-8859-1 encoding, and then uses the first byte of the+-- encoded string to split the data in its raw, binary state. BigQuery also+-- supports the escape sequence \"\\t\" to specify a tab separator. The+-- default value is a comma (\',\').+jclFieldDelimiter :: Lens' JobConfigurationLoad (Maybe Text)+jclFieldDelimiter+  = lens _jclFieldDelimiter+      (\ s a -> s{_jclFieldDelimiter = a})++-- | [Optional] Specifies a string that represents a null value in a CSV+-- file. For example, if you specify \"\\N\", BigQuery interprets \"\\N\"+-- as a null value when loading a CSV file. The default value is the empty+-- string. If you set this property to a custom value, BigQuery throws an+-- error if an empty string is present for all data types except for STRING+-- and BYTE. For STRING and BYTE columns, BigQuery interprets the empty+-- string as an empty value.+jclNullMarker :: Lens' JobConfigurationLoad (Maybe Text)+jclNullMarker+  = lens _jclNullMarker+      (\ s a -> s{_jclNullMarker = a})++instance FromJSON JobConfigurationLoad where+        parseJSON+          = withObject "JobConfigurationLoad"+              (\ o ->+                 JobConfigurationLoad' <$>+                   (o .:? "skipLeadingRows") <*>+                     (o .:? "projectionFields" .!= mempty)+                     <*> (o .:? "destinationTable")+                     <*> (o .:? "writeDisposition")+                     <*> (o .:? "allowJaggedRows")+                     <*> (o .:? "clustering")+                     <*> (o .:? "rangePartitioning")+                     <*> (o .:? "schemaInline")+                     <*> (o .:? "ignoreUnknownValues")+                     <*> (o .:? "schemaUpdateOptions" .!= mempty)+                     <*> (o .:? "createDisposition")+                     <*> (o .:? "schemaInlineFormat")+                     <*> (o .:? "allowQuotedNewlines")+                     <*> (o .:? "sourceFormat")+                     <*> (o .:? "useAvroLogicalTypes")+                     <*> (o .:? "schema")+                     <*> (o .:? "timePartitioning")+                     <*> (o .:? "quote")+                     <*> (o .:? "maxBadRecords")+                     <*> (o .:? "autodetect")+                     <*> (o .:? "sourceUris" .!= mempty)+                     <*> (o .:? "encoding")+                     <*> (o .:? "destinationTableProperties")+                     <*> (o .:? "destinationEncryptionConfiguration")+                     <*> (o .:? "fieldDelimiter")+                     <*> (o .:? "nullMarker"))++instance ToJSON JobConfigurationLoad where+        toJSON JobConfigurationLoad'{..}+          = object+              (catMaybes+                 [("skipLeadingRows" .=) <$> _jclSkipLeadingRows,+                  ("projectionFields" .=) <$> _jclProjectionFields,+                  ("destinationTable" .=) <$> _jclDestinationTable,+                  ("writeDisposition" .=) <$> _jclWriteDisPosition,+                  ("allowJaggedRows" .=) <$> _jclAllowJaggedRows,+                  ("clustering" .=) <$> _jclClustering,+                  ("rangePartitioning" .=) <$> _jclRangePartitioning,+                  ("schemaInline" .=) <$> _jclSchemaInline,+                  ("ignoreUnknownValues" .=) <$>+                    _jclIgnoreUnknownValues,+                  ("schemaUpdateOptions" .=) <$>+                    _jclSchemaUpdateOptions,+                  ("createDisposition" .=) <$> _jclCreateDisPosition,+                  ("schemaInlineFormat" .=) <$> _jclSchemaInlineFormat,+                  ("allowQuotedNewlines" .=) <$>+                    _jclAllowQuotedNewlines,+                  ("sourceFormat" .=) <$> _jclSourceFormat,+                  ("useAvroLogicalTypes" .=) <$>+                    _jclUseAvroLogicalTypes,+                  ("schema" .=) <$> _jclSchema,+                  ("timePartitioning" .=) <$> _jclTimePartitioning,+                  ("quote" .=) <$> _jclQuote,+                  ("maxBadRecords" .=) <$> _jclMaxBadRecords,+                  ("autodetect" .=) <$> _jclAutodetect,+                  ("sourceUris" .=) <$> _jclSourceURIs,+                  ("encoding" .=) <$> _jclEncoding,+                  ("destinationTableProperties" .=) <$>+                    _jclDestinationTableProperties,+                  ("destinationEncryptionConfiguration" .=) <$>+                    _jclDestinationEncryptionConfiguration,+                  ("fieldDelimiter" .=) <$> _jclFieldDelimiter,+                  ("nullMarker" .=) <$> _jclNullMarker])++--+-- /See:/ 'dataSetReference' smart constructor.+data DataSetReference = DataSetReference'+    { _dsrDataSetId :: !(Maybe Text)+    , _dsrProjectId :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DataSetReference' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dsrDataSetId'+--+-- * 'dsrProjectId'+dataSetReference+    :: DataSetReference+dataSetReference =+    DataSetReference'+    { _dsrDataSetId = Nothing+    , _dsrProjectId = Nothing+    }++-- | [Required] A unique ID for this dataset, without the project name. The+-- ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores+-- (_). The maximum length is 1,024 characters.+dsrDataSetId :: Lens' DataSetReference (Maybe Text)+dsrDataSetId+  = lens _dsrDataSetId (\ s a -> s{_dsrDataSetId = a})++-- | [Optional] The ID of the project containing this dataset.+dsrProjectId :: Lens' DataSetReference (Maybe Text)+dsrProjectId+  = lens _dsrProjectId (\ s a -> s{_dsrProjectId = a})++instance FromJSON DataSetReference where+        parseJSON+          = withObject "DataSetReference"+              (\ o ->+                 DataSetReference' <$>+                   (o .:? "datasetId") <*> (o .:? "projectId"))++instance ToJSON DataSetReference where+        toJSON DataSetReference'{..}+          = object+              (catMaybes+                 [("datasetId" .=) <$> _dsrDataSetId,+                  ("projectId" .=) <$> _dsrProjectId])++--+-- /See:/ 'materializedViewDefinition' smart constructor.+data MaterializedViewDefinition = MaterializedViewDefinition'+    { _mvdQuery           :: !(Maybe Text)+    , _mvdLastRefreshTime :: !(Maybe (Textual Int64))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MaterializedViewDefinition' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mvdQuery'+--+-- * 'mvdLastRefreshTime'+materializedViewDefinition+    :: MaterializedViewDefinition+materializedViewDefinition =+    MaterializedViewDefinition'+    { _mvdQuery = Nothing+    , _mvdLastRefreshTime = Nothing+    }++-- | [Required] A query whose result is persisted.+mvdQuery :: Lens' MaterializedViewDefinition (Maybe Text)+mvdQuery = lens _mvdQuery (\ s a -> s{_mvdQuery = a})++-- | [Output-only] [TrustedTester] The time when this materialized view was+-- last modified, in milliseconds since the epoch.+mvdLastRefreshTime :: Lens' MaterializedViewDefinition (Maybe Int64)+mvdLastRefreshTime+  = lens _mvdLastRefreshTime+      (\ s a -> s{_mvdLastRefreshTime = a})+      . mapping _Coerce++instance FromJSON MaterializedViewDefinition where+        parseJSON+          = withObject "MaterializedViewDefinition"+              (\ o ->+                 MaterializedViewDefinition' <$>+                   (o .:? "query") <*> (o .:? "lastRefreshTime"))++instance ToJSON MaterializedViewDefinition where+        toJSON MaterializedViewDefinition'{..}+          = object+              (catMaybes+                 [("query" .=) <$> _mvdQuery,+                  ("lastRefreshTime" .=) <$> _mvdLastRefreshTime])++--+-- /See:/ 'tableDataInsertAllRequest' smart constructor.+data TableDataInsertAllRequest = TableDataInsertAllRequest'+    { _tdiarKind                :: !Text+    , _tdiarIgnoreUnknownValues :: !(Maybe Bool)+    , _tdiarRows                :: !(Maybe [TableDataInsertAllRequestRowsItem])+    , _tdiarTemplateSuffix      :: !(Maybe Text)+    , _tdiarSkipInvalidRows     :: !(Maybe Bool)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TableDataInsertAllRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tdiarKind'+--+-- * 'tdiarIgnoreUnknownValues'+--+-- * 'tdiarRows'+--+-- * 'tdiarTemplateSuffix'+--+-- * 'tdiarSkipInvalidRows'+tableDataInsertAllRequest+    :: TableDataInsertAllRequest+tableDataInsertAllRequest =+    TableDataInsertAllRequest'+    { _tdiarKind = "bigquery#tableDataInsertAllRequest"+    , _tdiarIgnoreUnknownValues = Nothing+    , _tdiarRows = Nothing+    , _tdiarTemplateSuffix = Nothing+    , _tdiarSkipInvalidRows = Nothing+    }++-- | The resource type of the response.+tdiarKind :: Lens' TableDataInsertAllRequest Text+tdiarKind+  = lens _tdiarKind (\ s a -> s{_tdiarKind = a})++-- | [Optional] Accept rows that contain values that do not match the schema.+-- The unknown values are ignored. Default is false, which treats unknown+-- values as errors.+tdiarIgnoreUnknownValues :: Lens' TableDataInsertAllRequest (Maybe Bool)+tdiarIgnoreUnknownValues+  = lens _tdiarIgnoreUnknownValues+      (\ s a -> s{_tdiarIgnoreUnknownValues = a})++-- | The rows to insert.+tdiarRows :: Lens' TableDataInsertAllRequest [TableDataInsertAllRequestRowsItem]+tdiarRows+  = lens _tdiarRows (\ s a -> s{_tdiarRows = a}) .+      _Default+      . _Coerce++-- | If specified, treats the destination table as a base template, and+-- inserts the rows into an instance table named+-- \"{destination}{templateSuffix}\". BigQuery will manage creation of the+-- instance table, using the schema of the base template table. See+-- https:\/\/cloud.google.com\/bigquery\/streaming-data-into-bigquery#template-tables+-- for considerations when working with templates tables.+tdiarTemplateSuffix :: Lens' TableDataInsertAllRequest (Maybe Text)+tdiarTemplateSuffix+  = lens _tdiarTemplateSuffix+      (\ s a -> s{_tdiarTemplateSuffix = a})++-- | [Optional] Insert all valid rows of a request, even if invalid rows+-- exist. The default value is false, which causes the entire request to+-- fail if any invalid rows exist.+tdiarSkipInvalidRows :: Lens' TableDataInsertAllRequest (Maybe Bool)+tdiarSkipInvalidRows+  = lens _tdiarSkipInvalidRows+      (\ s a -> s{_tdiarSkipInvalidRows = a})++instance FromJSON TableDataInsertAllRequest where+        parseJSON+          = withObject "TableDataInsertAllRequest"+              (\ o ->+                 TableDataInsertAllRequest' <$>+                   (o .:? "kind" .!=+                      "bigquery#tableDataInsertAllRequest")+                     <*> (o .:? "ignoreUnknownValues")+                     <*> (o .:? "rows" .!= mempty)+                     <*> (o .:? "templateSuffix")+                     <*> (o .:? "skipInvalidRows"))++instance ToJSON TableDataInsertAllRequest where+        toJSON TableDataInsertAllRequest'{..}+          = object+              (catMaybes+                 [Just ("kind" .= _tdiarKind),+                  ("ignoreUnknownValues" .=) <$>+                    _tdiarIgnoreUnknownValues,+                  ("rows" .=) <$> _tdiarRows,+                  ("templateSuffix" .=) <$> _tdiarTemplateSuffix,+                  ("skipInvalidRows" .=) <$> _tdiarSkipInvalidRows])++--+-- /See:/ 'getServiceAccountResponse' smart constructor.+data GetServiceAccountResponse = GetServiceAccountResponse'+    { _gsarEmail :: !(Maybe Text)+    , _gsarKind  :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GetServiceAccountResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gsarEmail'+--+-- * 'gsarKind'+getServiceAccountResponse+    :: GetServiceAccountResponse+getServiceAccountResponse =+    GetServiceAccountResponse'+    { _gsarEmail = Nothing+    , _gsarKind = "bigquery#getServiceAccountResponse"+    }++-- | The service account email address.+gsarEmail :: Lens' GetServiceAccountResponse (Maybe Text)+gsarEmail+  = lens _gsarEmail (\ s a -> s{_gsarEmail = a})++-- | The resource type of the response.+gsarKind :: Lens' GetServiceAccountResponse Text+gsarKind = lens _gsarKind (\ s a -> s{_gsarKind = a})++instance FromJSON GetServiceAccountResponse where+        parseJSON+          = withObject "GetServiceAccountResponse"+              (\ o ->+                 GetServiceAccountResponse' <$>+                   (o .:? "email") <*>+                     (o .:? "kind" .!=+                        "bigquery#getServiceAccountResponse"))++instance ToJSON GetServiceAccountResponse where+        toJSON GetServiceAccountResponse'{..}+          = object+              (catMaybes+                 [("email" .=) <$> _gsarEmail,+                  Just ("kind" .= _gsarKind)])++--+-- /See:/ 'projectListProjectsItem' smart constructor.+data ProjectListProjectsItem = ProjectListProjectsItem'+    { _plpiFriendlyName     :: !(Maybe Text)+    , _plpiKind             :: !Text+    , _plpiProjectReference :: !(Maybe ProjectReference)+    , _plpiId               :: !(Maybe Text)+    , _plpiNumericId        :: !(Maybe (Textual Word64))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectListProjectsItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'plpiFriendlyName'+--+-- * 'plpiKind'+--+-- * 'plpiProjectReference'+--+-- * 'plpiId'+--+-- * 'plpiNumericId'+projectListProjectsItem+    :: ProjectListProjectsItem+projectListProjectsItem =+    ProjectListProjectsItem'+    { _plpiFriendlyName = Nothing+    , _plpiKind = "bigquery#project"+    , _plpiProjectReference = Nothing+    , _plpiId = Nothing+    , _plpiNumericId = Nothing+    }++-- | A descriptive name for this project.+plpiFriendlyName :: Lens' ProjectListProjectsItem (Maybe Text)+plpiFriendlyName+  = lens _plpiFriendlyName+      (\ s a -> s{_plpiFriendlyName = a})++-- | The resource type.+plpiKind :: Lens' ProjectListProjectsItem Text+plpiKind = lens _plpiKind (\ s a -> s{_plpiKind = a})++-- | A unique reference to this project.+plpiProjectReference :: Lens' ProjectListProjectsItem (Maybe ProjectReference)+plpiProjectReference+  = lens _plpiProjectReference+      (\ s a -> s{_plpiProjectReference = a})++-- | An opaque ID of this project.+plpiId :: Lens' ProjectListProjectsItem (Maybe Text)+plpiId = lens _plpiId (\ s a -> s{_plpiId = a})++-- | The numeric ID of this project.+plpiNumericId :: Lens' ProjectListProjectsItem (Maybe Word64)+plpiNumericId+  = lens _plpiNumericId+      (\ s a -> s{_plpiNumericId = a})+      . mapping _Coerce++instance FromJSON ProjectListProjectsItem where+        parseJSON+          = withObject "ProjectListProjectsItem"+              (\ o ->+                 ProjectListProjectsItem' <$>+                   (o .:? "friendlyName") <*>+                     (o .:? "kind" .!= "bigquery#project")+                     <*> (o .:? "projectReference")+                     <*> (o .:? "id")+                     <*> (o .:? "numericId"))++instance ToJSON ProjectListProjectsItem where+        toJSON ProjectListProjectsItem'{..}+          = object+              (catMaybes+                 [("friendlyName" .=) <$> _plpiFriendlyName,+                  Just ("kind" .= _plpiKind),+                  ("projectReference" .=) <$> _plpiProjectReference,+                  ("id" .=) <$> _plpiId,+                  ("numericId" .=) <$> _plpiNumericId])++--+-- /See:/ 'bigtableColumn' smart constructor.+data BigtableColumn = BigtableColumn'+    { _bcQualifierEncoded :: !(Maybe Bytes)+    , _bcFieldName        :: !(Maybe Text)+    , _bcQualifierString  :: !(Maybe Text)+    , _bcOnlyReadLatest   :: !(Maybe Bool)+    , _bcType             :: !(Maybe Text)+    , _bcEncoding         :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BigtableColumn' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bcQualifierEncoded'+--+-- * 'bcFieldName'+--+-- * 'bcQualifierString'+--+-- * 'bcOnlyReadLatest'+--+-- * 'bcType'+--+-- * 'bcEncoding'+bigtableColumn+    :: BigtableColumn+bigtableColumn =+    BigtableColumn'+    { _bcQualifierEncoded = Nothing+    , _bcFieldName = Nothing+    , _bcQualifierString = Nothing+    , _bcOnlyReadLatest = Nothing+    , _bcType = Nothing+    , _bcEncoding = Nothing+    }++-- | [Required] Qualifier of the column. Columns in the parent column family+-- that has this exact qualifier are exposed as . field. If the qualifier+-- is valid UTF-8 string, it can be specified in the qualifier_string+-- field. Otherwise, a base-64 encoded value must be set to+-- qualifier_encoded. The column field name is the same as the column+-- qualifier. However, if the qualifier is not a valid BigQuery field+-- identifier i.e. does not match [a-zA-Z][a-zA-Z0-9_]*, a valid identifier+-- must be provided as field_name.+bcQualifierEncoded :: Lens' BigtableColumn (Maybe ByteString)+bcQualifierEncoded+  = lens _bcQualifierEncoded+      (\ s a -> s{_bcQualifierEncoded = a})+      . mapping _Bytes++-- | [Optional] If the qualifier is not a valid BigQuery field identifier+-- i.e. does not match [a-zA-Z][a-zA-Z0-9_]*, a valid identifier must be+-- provided as the column field name and is used as field name in queries.+bcFieldName :: Lens' BigtableColumn (Maybe Text)+bcFieldName+  = lens _bcFieldName (\ s a -> s{_bcFieldName = a})++bcQualifierString :: Lens' BigtableColumn (Maybe Text)+bcQualifierString+  = lens _bcQualifierString+      (\ s a -> s{_bcQualifierString = a})++-- | [Optional] If this is set, only the latest version of value in this+-- column are exposed. \'onlyReadLatest\' can also be set at the column+-- family level. However, the setting at this level takes precedence if+-- \'onlyReadLatest\' is set at both levels.+bcOnlyReadLatest :: Lens' BigtableColumn (Maybe Bool)+bcOnlyReadLatest+  = lens _bcOnlyReadLatest+      (\ s a -> s{_bcOnlyReadLatest = a})++-- | [Optional] The type to convert the value in cells of this column. The+-- values are expected to be encoded using HBase Bytes.toBytes function+-- when using the BINARY encoding value. Following BigQuery types are+-- allowed (case-sensitive) - BYTES STRING INTEGER FLOAT BOOLEAN Default+-- type is BYTES. \'type\' can also be set at the column family level.+-- However, the setting at this level takes precedence if \'type\' is set+-- at both levels.+bcType :: Lens' BigtableColumn (Maybe Text)+bcType = lens _bcType (\ s a -> s{_bcType = a})++-- | [Optional] The encoding of the values when the type is not STRING.+-- Acceptable encoding values are: TEXT - indicates values are alphanumeric+-- text strings. BINARY - indicates values are encoded using HBase+-- Bytes.toBytes family of functions. \'encoding\' can also be set at the+-- column family level. However, the setting at this level takes precedence+-- if \'encoding\' is set at both levels.+bcEncoding :: Lens' BigtableColumn (Maybe Text)+bcEncoding+  = lens _bcEncoding (\ s a -> s{_bcEncoding = a})++instance FromJSON BigtableColumn where+        parseJSON+          = withObject "BigtableColumn"+              (\ o ->+                 BigtableColumn' <$>+                   (o .:? "qualifierEncoded") <*> (o .:? "fieldName")+                     <*> (o .:? "qualifierString")+                     <*> (o .:? "onlyReadLatest")+                     <*> (o .:? "type")+                     <*> (o .:? "encoding"))++instance ToJSON BigtableColumn where+        toJSON BigtableColumn'{..}+          = object+              (catMaybes+                 [("qualifierEncoded" .=) <$> _bcQualifierEncoded,+                  ("fieldName" .=) <$> _bcFieldName,+                  ("qualifierString" .=) <$> _bcQualifierString,+                  ("onlyReadLatest" .=) <$> _bcOnlyReadLatest,+                  ("type" .=) <$> _bcType,+                  ("encoding" .=) <$> _bcEncoding])++--+-- /See:/ 'streamingbuffer' smart constructor.+data Streamingbuffer = Streamingbuffer'+    { _sEstimatedBytes  :: !(Maybe (Textual Word64))+    , _sOldestEntryTime :: !(Maybe (Textual Word64))+    , _sEstimatedRows   :: !(Maybe (Textual Word64))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Streamingbuffer' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sEstimatedBytes'+--+-- * 'sOldestEntryTime'+--+-- * 'sEstimatedRows'+streamingbuffer+    :: Streamingbuffer+streamingbuffer =+    Streamingbuffer'+    { _sEstimatedBytes = Nothing+    , _sOldestEntryTime = Nothing+    , _sEstimatedRows = Nothing+    }++-- | [Output-only] A lower-bound estimate of the number of bytes currently in+-- the streaming buffer.+sEstimatedBytes :: Lens' Streamingbuffer (Maybe Word64)+sEstimatedBytes+  = lens _sEstimatedBytes+      (\ s a -> s{_sEstimatedBytes = a})+      . mapping _Coerce++-- | [Output-only] Contains the timestamp of the oldest entry in the+-- streaming buffer, in milliseconds since the epoch, if the streaming+-- buffer is available.+sOldestEntryTime :: Lens' Streamingbuffer (Maybe Word64)+sOldestEntryTime+  = lens _sOldestEntryTime+      (\ s a -> s{_sOldestEntryTime = a})+      . mapping _Coerce++-- | [Output-only] A lower-bound estimate of the number of rows currently in+-- the streaming buffer.+sEstimatedRows :: Lens' Streamingbuffer (Maybe Word64)+sEstimatedRows+  = lens _sEstimatedRows+      (\ s a -> s{_sEstimatedRows = a})+      . mapping _Coerce++instance FromJSON Streamingbuffer where+        parseJSON+          = withObject "Streamingbuffer"+              (\ o ->+                 Streamingbuffer' <$>+                   (o .:? "estimatedBytes") <*>+                     (o .:? "oldestEntryTime")+                     <*> (o .:? "estimatedRows"))++instance ToJSON Streamingbuffer where+        toJSON Streamingbuffer'{..}+          = object+              (catMaybes+                 [("estimatedBytes" .=) <$> _sEstimatedBytes,+                  ("oldestEntryTime" .=) <$> _sOldestEntryTime,+                  ("estimatedRows" .=) <$> _sEstimatedRows])++--+-- /See:/ 'tableRow' smart constructor.+newtype TableRow = TableRow'+    { _trF :: Maybe [TableCell]+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TableRow' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'trF'+tableRow+    :: TableRow+tableRow =+    TableRow'+    { _trF = Nothing+    }++-- | Represents a single row in the result set, consisting of one or more+-- fields.+trF :: Lens' TableRow [TableCell]+trF+  = lens _trF (\ s a -> s{_trF = a}) . _Default .+      _Coerce++instance FromJSON TableRow where+        parseJSON+          = withObject "TableRow"+              (\ o -> TableRow' <$> (o .:? "f" .!= mempty))++instance ToJSON TableRow where+        toJSON TableRow'{..}+          = object (catMaybes [("f" .=) <$> _trF])++--+-- /See:/ 'jobListJobsItem' smart constructor.+data JobListJobsItem = JobListJobsItem'+    { _jljiJobReference  :: !(Maybe JobReference)+    , _jljiStatus        :: !(Maybe JobStatus)+    , _jljiState         :: !(Maybe Text)+    , _jljiUserEmail     :: !(Maybe Text)+    , _jljiKind          :: !Text+    , _jljiErrorResult   :: !(Maybe ErrorProto)+    , _jljiId            :: !(Maybe Text)+    , _jljiStatistics    :: !(Maybe JobStatistics)+    , _jljiConfiguration :: !(Maybe JobConfiguration)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'JobListJobsItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'jljiJobReference'+--+-- * 'jljiStatus'+--+-- * 'jljiState'+--+-- * 'jljiUserEmail'+--+-- * 'jljiKind'+--+-- * 'jljiErrorResult'+--+-- * 'jljiId'+--+-- * 'jljiStatistics'+--+-- * 'jljiConfiguration'+jobListJobsItem+    :: JobListJobsItem+jobListJobsItem =+    JobListJobsItem'+    { _jljiJobReference = Nothing+    , _jljiStatus = Nothing+    , _jljiState = Nothing+    , _jljiUserEmail = Nothing+    , _jljiKind = "bigquery#job"+    , _jljiErrorResult = Nothing+    , _jljiId = Nothing+    , _jljiStatistics = Nothing+    , _jljiConfiguration = Nothing+    }++-- | Job reference uniquely identifying the job.+jljiJobReference :: Lens' JobListJobsItem (Maybe JobReference)+jljiJobReference+  = lens _jljiJobReference+      (\ s a -> s{_jljiJobReference = a})++-- | [Full-projection-only] Describes the state of the job.+jljiStatus :: Lens' JobListJobsItem (Maybe JobStatus)+jljiStatus+  = lens _jljiStatus (\ s a -> s{_jljiStatus = a})++-- | Running state of the job. When the state is DONE, errorResult can be+-- checked to determine whether the job succeeded or failed.+jljiState :: Lens' JobListJobsItem (Maybe Text)+jljiState+  = lens _jljiState (\ s a -> s{_jljiState = a})++-- | [Full-projection-only] Email address of the user who ran the job.+jljiUserEmail :: Lens' JobListJobsItem (Maybe Text)+jljiUserEmail+  = lens _jljiUserEmail+      (\ s a -> s{_jljiUserEmail = a})++-- | The resource type.+jljiKind :: Lens' JobListJobsItem Text+jljiKind = lens _jljiKind (\ s a -> s{_jljiKind = a})++-- | A result object that will be present only if the job has failed.+jljiErrorResult :: Lens' JobListJobsItem (Maybe ErrorProto)+jljiErrorResult+  = lens _jljiErrorResult+      (\ s a -> s{_jljiErrorResult = a})++-- | Unique opaque ID of the job.+jljiId :: Lens' JobListJobsItem (Maybe Text)+jljiId = lens _jljiId (\ s a -> s{_jljiId = a})++-- | [Output-only] Information about the job, including starting time and+-- ending time of the job.+jljiStatistics :: Lens' JobListJobsItem (Maybe JobStatistics)+jljiStatistics+  = lens _jljiStatistics+      (\ s a -> s{_jljiStatistics = a})++-- | [Full-projection-only] Specifies the job configuration.+jljiConfiguration :: Lens' JobListJobsItem (Maybe JobConfiguration)+jljiConfiguration+  = lens _jljiConfiguration+      (\ s a -> s{_jljiConfiguration = a})++instance FromJSON JobListJobsItem where+        parseJSON+          = withObject "JobListJobsItem"+              (\ o ->+                 JobListJobsItem' <$>+                   (o .:? "jobReference") <*> (o .:? "status") <*>+                     (o .:? "state")+                     <*> (o .:? "user_email")+                     <*> (o .:? "kind" .!= "bigquery#job")+                     <*> (o .:? "errorResult")+                     <*> (o .:? "id")+                     <*> (o .:? "statistics")+                     <*> (o .:? "configuration"))++instance ToJSON JobListJobsItem where+        toJSON JobListJobsItem'{..}+          = object+              (catMaybes+                 [("jobReference" .=) <$> _jljiJobReference,+                  ("status" .=) <$> _jljiStatus,+                  ("state" .=) <$> _jljiState,+                  ("user_email" .=) <$> _jljiUserEmail,+                  Just ("kind" .= _jljiKind),+                  ("errorResult" .=) <$> _jljiErrorResult,+                  ("id" .=) <$> _jljiId,+                  ("statistics" .=) <$> _jljiStatistics,+                  ("configuration" .=) <$> _jljiConfiguration])++--+-- /See:/ 'timePartitioning' smart constructor.+data TimePartitioning = TimePartitioning'+    { _tpField                  :: !(Maybe Text)+    , _tpExpirationMs           :: !(Maybe (Textual Int64))+    , _tpRequirePartitionFilter :: !(Maybe Bool)+    , _tpType                   :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TimePartitioning' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tpField'+--+-- * 'tpExpirationMs'+--+-- * 'tpRequirePartitionFilter'+--+-- * 'tpType'+timePartitioning+    :: TimePartitioning+timePartitioning =+    TimePartitioning'+    { _tpField = Nothing+    , _tpExpirationMs = Nothing+    , _tpRequirePartitionFilter = Nothing+    , _tpType = Nothing+    }++-- | [Beta] [Optional] If not set, the table is partitioned by pseudo column,+-- referenced via either \'_PARTITIONTIME\' as TIMESTAMP type, or+-- \'_PARTITIONDATE\' as DATE type. If field is specified, the table is+-- instead partitioned by this field. The field must be a top-level+-- TIMESTAMP or DATE field. Its mode must be NULLABLE or REQUIRED.+tpField :: Lens' TimePartitioning (Maybe Text)+tpField = lens _tpField (\ s a -> s{_tpField = a})++-- | [Optional] Number of milliseconds for which to keep the storage for+-- partitions in the table. The storage in a partition will have an+-- expiration time of its partition time plus this value.+tpExpirationMs :: Lens' TimePartitioning (Maybe Int64)+tpExpirationMs+  = lens _tpExpirationMs+      (\ s a -> s{_tpExpirationMs = a})+      . mapping _Coerce++tpRequirePartitionFilter :: Lens' TimePartitioning (Maybe Bool)+tpRequirePartitionFilter+  = lens _tpRequirePartitionFilter+      (\ s a -> s{_tpRequirePartitionFilter = a})++-- | [Required] The only type supported is DAY, which will generate one+-- partition per day.+tpType :: Lens' TimePartitioning (Maybe Text)+tpType = lens _tpType (\ s a -> s{_tpType = a})++instance FromJSON TimePartitioning where+        parseJSON+          = withObject "TimePartitioning"+              (\ o ->+                 TimePartitioning' <$>+                   (o .:? "field") <*> (o .:? "expirationMs") <*>+                     (o .:? "requirePartitionFilter")+                     <*> (o .:? "type"))++instance ToJSON TimePartitioning where+        toJSON TimePartitioning'{..}+          = object+              (catMaybes+                 [("field" .=) <$> _tpField,+                  ("expirationMs" .=) <$> _tpExpirationMs,+                  ("requirePartitionFilter" .=) <$>+                    _tpRequirePartitionFilter,+                  ("type" .=) <$> _tpType])++-- | [Optional] The struct field values, in order of the struct type\'s+-- declaration.+--+-- /See:/ 'queryParameterValueStructValues' smart constructor.+newtype QueryParameterValueStructValues = QueryParameterValueStructValues'+    { _qpvsvAddtional :: HashMap Text QueryParameterValue+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'QueryParameterValueStructValues' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'qpvsvAddtional'+queryParameterValueStructValues+    :: HashMap Text QueryParameterValue -- ^ 'qpvsvAddtional'+    -> QueryParameterValueStructValues+queryParameterValueStructValues pQpvsvAddtional_ =+    QueryParameterValueStructValues'+    { _qpvsvAddtional = _Coerce # pQpvsvAddtional_+    }++qpvsvAddtional :: Lens' QueryParameterValueStructValues (HashMap Text QueryParameterValue)+qpvsvAddtional+  = lens _qpvsvAddtional+      (\ s a -> s{_qpvsvAddtional = a})+      . _Coerce++instance FromJSON QueryParameterValueStructValues+         where+        parseJSON+          = withObject "QueryParameterValueStructValues"+              (\ o ->+                 QueryParameterValueStructValues' <$>+                   (parseJSONObject o))++instance ToJSON QueryParameterValueStructValues where+        toJSON = toJSON . _qpvsvAddtional++-- | The labels associated with this dataset. You can use these to organize+-- and group your datasets. You can set this property when inserting or+-- updating a dataset. See Creating and Updating Dataset Labels for more+-- information.+--+-- /See:/ 'dataSetLabels' smart constructor.+newtype DataSetLabels = DataSetLabels'+    { _dslAddtional :: HashMap Text Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DataSetLabels' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dslAddtional'+dataSetLabels+    :: HashMap Text Text -- ^ 'dslAddtional'+    -> DataSetLabels+dataSetLabels pDslAddtional_ =+    DataSetLabels'+    { _dslAddtional = _Coerce # pDslAddtional_+    }++dslAddtional :: Lens' DataSetLabels (HashMap Text Text)+dslAddtional+  = lens _dslAddtional (\ s a -> s{_dslAddtional = a})+      . _Coerce++instance FromJSON DataSetLabels where+        parseJSON+          = withObject "DataSetLabels"+              (\ o -> DataSetLabels' <$> (parseJSONObject o))++instance ToJSON DataSetLabels where+        toJSON = toJSON . _dslAddtional++--+-- /See:/ 'jobConfiguration' smart constructor.+data JobConfiguration = JobConfiguration'+    { _jcJobType      :: !(Maybe Text)+    , _jcCopy         :: !(Maybe JobConfigurationTableCopy)+    , _jcLoad         :: !(Maybe JobConfigurationLoad)+    , _jcQuery        :: !(Maybe JobConfigurationQuery)+    , _jcJobTimeoutMs :: !(Maybe (Textual Int64))+    , _jcExtract      :: !(Maybe JobConfigurationExtract)+    , _jcLabels       :: !(Maybe JobConfigurationLabels)+    , _jcDryRun       :: !(Maybe Bool)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'JobConfiguration' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'jcJobType'+--+-- * 'jcCopy'+--+-- * 'jcLoad'+--+-- * 'jcQuery'+--+-- * 'jcJobTimeoutMs'+--+-- * 'jcExtract'+--+-- * 'jcLabels'+--+-- * 'jcDryRun'+jobConfiguration+    :: JobConfiguration+jobConfiguration =+    JobConfiguration'+    { _jcJobType = Nothing+    , _jcCopy = Nothing+    , _jcLoad = Nothing+    , _jcQuery = Nothing+    , _jcJobTimeoutMs = Nothing+    , _jcExtract = Nothing+    , _jcLabels = Nothing+    , _jcDryRun = Nothing+    }++-- | [Output-only] The type of the job. Can be QUERY, LOAD, EXTRACT, COPY or+-- UNKNOWN.+jcJobType :: Lens' JobConfiguration (Maybe Text)+jcJobType+  = lens _jcJobType (\ s a -> s{_jcJobType = a})++-- | [Pick one] Copies a table.+jcCopy :: Lens' JobConfiguration (Maybe JobConfigurationTableCopy)+jcCopy = lens _jcCopy (\ s a -> s{_jcCopy = a})++-- | [Pick one] Configures a load job.+jcLoad :: Lens' JobConfiguration (Maybe JobConfigurationLoad)+jcLoad = lens _jcLoad (\ s a -> s{_jcLoad = a})++-- | [Pick one] Configures a query job.+jcQuery :: Lens' JobConfiguration (Maybe JobConfigurationQuery)+jcQuery = lens _jcQuery (\ s a -> s{_jcQuery = a})++-- | [Optional] Job timeout in milliseconds. If this time limit is exceeded,+-- BigQuery may attempt to terminate the job.+jcJobTimeoutMs :: Lens' JobConfiguration (Maybe Int64)+jcJobTimeoutMs+  = lens _jcJobTimeoutMs+      (\ s a -> s{_jcJobTimeoutMs = a})+      . mapping _Coerce++-- | [Pick one] Configures an extract job.+jcExtract :: Lens' JobConfiguration (Maybe JobConfigurationExtract)+jcExtract+  = lens _jcExtract (\ s a -> s{_jcExtract = a})++-- | The labels associated with this job. You can use these to organize and+-- group your jobs. Label keys and values can be no longer than 63+-- characters, can only contain lowercase letters, numeric characters,+-- underscores and dashes. International characters are allowed. Label+-- values are optional. Label keys must start with a letter and each label+-- in the list must have a different key.+jcLabels :: Lens' JobConfiguration (Maybe JobConfigurationLabels)+jcLabels = lens _jcLabels (\ s a -> s{_jcLabels = a})++-- | [Optional] If set, don\'t actually run this job. A valid query will+-- return a mostly empty response with some processing statistics, while an+-- invalid query will return the same error it would if it wasn\'t a dry+-- run. Behavior of non-query jobs is undefined.+jcDryRun :: Lens' JobConfiguration (Maybe Bool)+jcDryRun = lens _jcDryRun (\ s a -> s{_jcDryRun = a})++instance FromJSON JobConfiguration where+        parseJSON+          = withObject "JobConfiguration"+              (\ o ->+                 JobConfiguration' <$>+                   (o .:? "jobType") <*> (o .:? "copy") <*>+                     (o .:? "load")+                     <*> (o .:? "query")+                     <*> (o .:? "jobTimeoutMs")+                     <*> (o .:? "extract")+                     <*> (o .:? "labels")+                     <*> (o .:? "dryRun"))++instance ToJSON JobConfiguration where+        toJSON JobConfiguration'{..}+          = object+              (catMaybes+                 [("jobType" .=) <$> _jcJobType,+                  ("copy" .=) <$> _jcCopy, ("load" .=) <$> _jcLoad,+                  ("query" .=) <$> _jcQuery,+                  ("jobTimeoutMs" .=) <$> _jcJobTimeoutMs,+                  ("extract" .=) <$> _jcExtract,+                  ("labels" .=) <$> _jcLabels,+                  ("dryRun" .=) <$> _jcDryRun])++--+-- /See:/ 'job' smart constructor.+data Job = Job'+    { _jJobReference  :: !(Maybe JobReference)+    , _jStatus        :: !(Maybe JobStatus)+    , _jEtag          :: !(Maybe Text)+    , _jUserEmail     :: !(Maybe Text)+    , _jKind          :: !Text+    , _jSelfLink      :: !(Maybe Text)+    , _jId            :: !(Maybe Text)+    , _jStatistics    :: !(Maybe JobStatistics)+    , _jConfiguration :: !(Maybe JobConfiguration)+    } 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:+--+-- * 'jJobReference'+--+-- * 'jStatus'+--+-- * 'jEtag'+--+-- * 'jUserEmail'+--+-- * 'jKind'+--+-- * 'jSelfLink'+--+-- * 'jId'+--+-- * 'jStatistics'+--+-- * 'jConfiguration'+job+    :: Job+job =+    Job'+    { _jJobReference = Nothing+    , _jStatus = Nothing+    , _jEtag = Nothing+    , _jUserEmail = Nothing+    , _jKind = "bigquery#job"+    , _jSelfLink = Nothing+    , _jId = Nothing+    , _jStatistics = Nothing+    , _jConfiguration = Nothing+    }++-- | [Optional] Reference describing the unique-per-user name of the job.+jJobReference :: Lens' Job (Maybe JobReference)+jJobReference+  = lens _jJobReference+      (\ s a -> s{_jJobReference = a})++-- | [Output-only] The status of this job. Examine this value when polling an+-- asynchronous job to see if the job is complete.+jStatus :: Lens' Job (Maybe JobStatus)+jStatus = lens _jStatus (\ s a -> s{_jStatus = a})++-- | [Output-only] A hash of this resource.+jEtag :: Lens' Job (Maybe Text)+jEtag = lens _jEtag (\ s a -> s{_jEtag = a})++-- | [Output-only] Email address of the user who ran the job.+jUserEmail :: Lens' Job (Maybe Text)+jUserEmail+  = lens _jUserEmail (\ s a -> s{_jUserEmail = a})++-- | [Output-only] The type of the resource.+jKind :: Lens' Job Text+jKind = lens _jKind (\ s a -> s{_jKind = a})++-- | [Output-only] A URL that can be used to access this resource again.+jSelfLink :: Lens' Job (Maybe Text)+jSelfLink+  = lens _jSelfLink (\ s a -> s{_jSelfLink = a})++-- | [Output-only] Opaque ID field of the job+jId :: Lens' Job (Maybe Text)+jId = lens _jId (\ s a -> s{_jId = a})++-- | [Output-only] Information about the job, including starting time and+-- ending time of the job.+jStatistics :: Lens' Job (Maybe JobStatistics)+jStatistics+  = lens _jStatistics (\ s a -> s{_jStatistics = a})++-- | [Required] Describes the job configuration.+jConfiguration :: Lens' Job (Maybe JobConfiguration)+jConfiguration+  = lens _jConfiguration+      (\ s a -> s{_jConfiguration = a})++instance FromJSON Job where+        parseJSON+          = withObject "Job"+              (\ o ->+                 Job' <$>+                   (o .:? "jobReference") <*> (o .:? "status") <*>+                     (o .:? "etag")+                     <*> (o .:? "user_email")+                     <*> (o .:? "kind" .!= "bigquery#job")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "id")+                     <*> (o .:? "statistics")+                     <*> (o .:? "configuration"))++instance ToJSON Job where+        toJSON Job'{..}+          = object+              (catMaybes+                 [("jobReference" .=) <$> _jJobReference,+                  ("status" .=) <$> _jStatus, ("etag" .=) <$> _jEtag,+                  ("user_email" .=) <$> _jUserEmail,+                  Just ("kind" .= _jKind),+                  ("selfLink" .=) <$> _jSelfLink, ("id" .=) <$> _jId,+                  ("statistics" .=) <$> _jStatistics,+                  ("configuration" .=) <$> _jConfiguration])++--+-- /See:/ 'encryptionConfiguration' smart constructor.+newtype EncryptionConfiguration = EncryptionConfiguration'+    { _ecKmsKeyName :: Maybe Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EncryptionConfiguration' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ecKmsKeyName'+encryptionConfiguration+    :: EncryptionConfiguration+encryptionConfiguration =+    EncryptionConfiguration'+    { _ecKmsKeyName = Nothing+    }++-- | [Optional] Describes the Cloud KMS encryption key that will be used to+-- protect destination BigQuery table. The BigQuery Service Account+-- associated with your project requires access to this encryption key.+ecKmsKeyName :: Lens' EncryptionConfiguration (Maybe Text)+ecKmsKeyName+  = lens _ecKmsKeyName (\ s a -> s{_ecKmsKeyName = a})++instance FromJSON EncryptionConfiguration where+        parseJSON+          = withObject "EncryptionConfiguration"+              (\ o ->+                 EncryptionConfiguration' <$> (o .:? "kmsKeyName"))++instance ToJSON EncryptionConfiguration where+        toJSON EncryptionConfiguration'{..}+          = object+              (catMaybes [("kmsKeyName" .=) <$> _ecKmsKeyName])++--+-- /See:/ 'tableDataInsertAllResponseInsertErrorsItem' smart constructor.+data TableDataInsertAllResponseInsertErrorsItem = TableDataInsertAllResponseInsertErrorsItem'+    { _tdiarieiErrors :: !(Maybe [ErrorProto])+    , _tdiarieiIndex  :: !(Maybe (Textual Word32))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TableDataInsertAllResponseInsertErrorsItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tdiarieiErrors'+--+-- * 'tdiarieiIndex'+tableDataInsertAllResponseInsertErrorsItem+    :: TableDataInsertAllResponseInsertErrorsItem+tableDataInsertAllResponseInsertErrorsItem =+    TableDataInsertAllResponseInsertErrorsItem'+    { _tdiarieiErrors = Nothing+    , _tdiarieiIndex = Nothing+    }++-- | Error information for the row indicated by the index property.+tdiarieiErrors :: Lens' TableDataInsertAllResponseInsertErrorsItem [ErrorProto]+tdiarieiErrors+  = lens _tdiarieiErrors+      (\ s a -> s{_tdiarieiErrors = a})+      . _Default+      . _Coerce++-- | The index of the row that error applies to.+tdiarieiIndex :: Lens' TableDataInsertAllResponseInsertErrorsItem (Maybe Word32)+tdiarieiIndex+  = lens _tdiarieiIndex+      (\ s a -> s{_tdiarieiIndex = a})+      . mapping _Coerce++instance FromJSON+         TableDataInsertAllResponseInsertErrorsItem where+        parseJSON+          = withObject+              "TableDataInsertAllResponseInsertErrorsItem"+              (\ o ->+                 TableDataInsertAllResponseInsertErrorsItem' <$>+                   (o .:? "errors" .!= mempty) <*> (o .:? "index"))++instance ToJSON+         TableDataInsertAllResponseInsertErrorsItem where+        toJSON+          TableDataInsertAllResponseInsertErrorsItem'{..}+          = object+              (catMaybes+                 [("errors" .=) <$> _tdiarieiErrors,+                  ("index" .=) <$> _tdiarieiIndex])++--+-- /See:/ 'jobConfigurationExtract' smart constructor.+data JobConfigurationExtract = JobConfigurationExtract'+    { _jceDestinationFormat :: !(Maybe Text)+    , _jceSourceTable       :: !(Maybe TableReference)+    , _jcePrintHeader       :: !Bool+    , _jceCompression       :: !(Maybe Text)+    , _jceDestinationURIs   :: !(Maybe [Text])+    , _jceDestinationURI    :: !(Maybe Text)+    , _jceFieldDelimiter    :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'JobConfigurationExtract' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'jceDestinationFormat'+--+-- * 'jceSourceTable'+--+-- * 'jcePrintHeader'+--+-- * 'jceCompression'+--+-- * 'jceDestinationURIs'+--+-- * 'jceDestinationURI'+--+-- * 'jceFieldDelimiter'+jobConfigurationExtract+    :: JobConfigurationExtract+jobConfigurationExtract =+    JobConfigurationExtract'+    { _jceDestinationFormat = Nothing+    , _jceSourceTable = Nothing+    , _jcePrintHeader = True+    , _jceCompression = Nothing+    , _jceDestinationURIs = Nothing+    , _jceDestinationURI = Nothing+    , _jceFieldDelimiter = Nothing+    }++-- | [Optional] The exported file format. Possible values include CSV,+-- NEWLINE_DELIMITED_JSON and AVRO. The default value is CSV. Tables with+-- nested or repeated fields cannot be exported as CSV.+jceDestinationFormat :: Lens' JobConfigurationExtract (Maybe Text)+jceDestinationFormat+  = lens _jceDestinationFormat+      (\ s a -> s{_jceDestinationFormat = a})++-- | [Required] A reference to the table being exported.+jceSourceTable :: Lens' JobConfigurationExtract (Maybe TableReference)+jceSourceTable+  = lens _jceSourceTable+      (\ s a -> s{_jceSourceTable = a})++-- | [Optional] Whether to print out a header row in the results. Default is+-- true.+jcePrintHeader :: Lens' JobConfigurationExtract Bool+jcePrintHeader+  = lens _jcePrintHeader+      (\ s a -> s{_jcePrintHeader = a})++-- | [Optional] The compression type to use for exported files. Possible+-- values include GZIP, DEFLATE, SNAPPY, and NONE. The default value is+-- NONE. DEFLATE and SNAPPY are only supported for Avro.+jceCompression :: Lens' JobConfigurationExtract (Maybe Text)+jceCompression+  = lens _jceCompression+      (\ s a -> s{_jceCompression = a})++-- | [Pick one] A list of fully-qualified Google Cloud Storage URIs where the+-- extracted table should be written.+jceDestinationURIs :: Lens' JobConfigurationExtract [Text]+jceDestinationURIs+  = lens _jceDestinationURIs+      (\ s a -> s{_jceDestinationURIs = a})+      . _Default+      . _Coerce++-- | [Pick one] DEPRECATED: Use destinationUris instead, passing only one URI+-- as necessary. The fully-qualified Google Cloud Storage URI where the+-- extracted table should be written.+jceDestinationURI :: Lens' JobConfigurationExtract (Maybe Text)+jceDestinationURI+  = lens _jceDestinationURI+      (\ s a -> s{_jceDestinationURI = a})++-- | [Optional] Delimiter to use between fields in the exported data. Default+-- is \',\'+jceFieldDelimiter :: Lens' JobConfigurationExtract (Maybe Text)+jceFieldDelimiter+  = lens _jceFieldDelimiter+      (\ s a -> s{_jceFieldDelimiter = a})++instance FromJSON JobConfigurationExtract where+        parseJSON+          = withObject "JobConfigurationExtract"+              (\ o ->+                 JobConfigurationExtract' <$>+                   (o .:? "destinationFormat") <*> (o .:? "sourceTable")+                     <*> (o .:? "printHeader" .!= True)+                     <*> (o .:? "compression")+                     <*> (o .:? "destinationUris" .!= mempty)+                     <*> (o .:? "destinationUri")+                     <*> (o .:? "fieldDelimiter"))++instance ToJSON JobConfigurationExtract where+        toJSON JobConfigurationExtract'{..}+          = object+              (catMaybes+                 [("destinationFormat" .=) <$> _jceDestinationFormat,+                  ("sourceTable" .=) <$> _jceSourceTable,+                  Just ("printHeader" .= _jcePrintHeader),+                  ("compression" .=) <$> _jceCompression,+                  ("destinationUris" .=) <$> _jceDestinationURIs,+                  ("destinationUri" .=) <$> _jceDestinationURI,+                  ("fieldDelimiter" .=) <$> _jceFieldDelimiter])++--+-- /See:/ 'modelDefinition' smart constructor.+data ModelDefinition = ModelDefinition'+    { _mdModelOptions :: !(Maybe ModelDefinitionModelOptions)+    , _mdTrainingRuns :: !(Maybe [TrainingRun])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ModelDefinition' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mdModelOptions'+--+-- * 'mdTrainingRuns'+modelDefinition+    :: ModelDefinition+modelDefinition =+    ModelDefinition'+    { _mdModelOptions = Nothing+    , _mdTrainingRuns = Nothing+    }++-- | [Output-only, Beta] Model options used for the first training run. These+-- options are immutable for subsequent training runs. Default values are+-- used for any options not specified in the input query.+mdModelOptions :: Lens' ModelDefinition (Maybe ModelDefinitionModelOptions)+mdModelOptions+  = lens _mdModelOptions+      (\ s a -> s{_mdModelOptions = a})++-- | [Output-only, Beta] Information about ml training runs, each training+-- run comprises of multiple iterations and there may be multiple training+-- runs for the model if warm start is used or if a user decides to+-- continue a previously cancelled query.+mdTrainingRuns :: Lens' ModelDefinition [TrainingRun]+mdTrainingRuns+  = lens _mdTrainingRuns+      (\ s a -> s{_mdTrainingRuns = a})+      . _Default+      . _Coerce++instance FromJSON ModelDefinition where+        parseJSON+          = withObject "ModelDefinition"+              (\ o ->+                 ModelDefinition' <$>+                   (o .:? "modelOptions") <*>+                     (o .:? "trainingRuns" .!= mempty))++instance ToJSON ModelDefinition where+        toJSON ModelDefinition'{..}+          = object+              (catMaybes+                 [("modelOptions" .=) <$> _mdModelOptions,+                  ("trainingRuns" .=) <$> _mdTrainingRuns])++--+-- /See:/ 'jobCancelResponse' smart constructor.+data JobCancelResponse = JobCancelResponse'+    { _jcrKind :: !Text+    , _jcrJob  :: !(Maybe Job)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'JobCancelResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'jcrKind'+--+-- * 'jcrJob'+jobCancelResponse+    :: JobCancelResponse+jobCancelResponse =+    JobCancelResponse'+    { _jcrKind = "bigquery#jobCancelResponse"+    , _jcrJob = Nothing+    }++-- | The resource type of the response.+jcrKind :: Lens' JobCancelResponse Text+jcrKind = lens _jcrKind (\ s a -> s{_jcrKind = a})++-- | The final state of the job.+jcrJob :: Lens' JobCancelResponse (Maybe Job)+jcrJob = lens _jcrJob (\ s a -> s{_jcrJob = a})++instance FromJSON JobCancelResponse where+        parseJSON+          = withObject "JobCancelResponse"+              (\ o ->+                 JobCancelResponse' <$>+                   (o .:? "kind" .!= "bigquery#jobCancelResponse") <*>+                     (o .:? "job"))++instance ToJSON JobCancelResponse where+        toJSON JobCancelResponse'{..}+          = object+              (catMaybes+                 [Just ("kind" .= _jcrKind), ("job" .=) <$> _jcrJob])++-- | Represents a single JSON object.+--+-- /See:/ 'jsonObject' smart constructor.+newtype JSONObject = JSONObject'+    { _joAddtional :: HashMap Text JSONValue+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'JSONObject' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'joAddtional'+jsonObject+    :: HashMap Text JSONValue -- ^ 'joAddtional'+    -> JSONObject+jsonObject pJoAddtional_ =+    JSONObject'+    { _joAddtional = _Coerce # pJoAddtional_+    }++joAddtional :: Lens' JSONObject (HashMap Text JSONValue)+joAddtional+  = lens _joAddtional (\ s a -> s{_joAddtional = a}) .+      _Coerce++instance FromJSON JSONObject where+        parseJSON+          = withObject "JSONObject"+              (\ o -> JSONObject' <$> (parseJSONObject o))++instance ToJSON JSONObject where+        toJSON = toJSON . _joAddtional++--+-- /See:/ 'jobConfigurationQuery' smart constructor.+data JobConfigurationQuery = JobConfigurationQuery'+    { _jcqDestinationTable                   :: !(Maybe TableReference)+    , _jcqWriteDisPosition                   :: !(Maybe Text)+    , _jcqPriority                           :: !(Maybe Text)+    , _jcqClustering                         :: !(Maybe Clustering)+    , _jcqRangePartitioning                  :: !(Maybe RangePartitioning)+    , _jcqUseQueryCache                      :: !Bool+    , _jcqPreserveNulls                      :: !(Maybe Bool)+    , _jcqTableDefinitions                   :: !(Maybe JobConfigurationQueryTableDefinitions)+    , _jcqQueryParameters                    :: !(Maybe [QueryParameter])+    , _jcqSchemaUpdateOptions                :: !(Maybe [Text])+    , _jcqMaximumBytesBilled                 :: !(Maybe (Textual Int64))+    , _jcqCreateDisPosition                  :: !(Maybe Text)+    , _jcqUserDefinedFunctionResources       :: !(Maybe [UserDefinedFunctionResource])+    , _jcqAllowLargeResults                  :: !Bool+    , _jcqMaximumBillingTier                 :: !(Textual Int32)+    , _jcqTimePartitioning                   :: !(Maybe TimePartitioning)+    , _jcqQuery                              :: !(Maybe Text)+    , _jcqFlattenResults                     :: !Bool+    , _jcqParameterMode                      :: !(Maybe Text)+    , _jcqUseLegacySQL                       :: !Bool+    , _jcqDestinationEncryptionConfiguration :: !(Maybe EncryptionConfiguration)+    , _jcqDefaultDataSet                     :: !(Maybe DataSetReference)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'JobConfigurationQuery' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'jcqDestinationTable'+--+-- * 'jcqWriteDisPosition'+--+-- * 'jcqPriority'+--+-- * 'jcqClustering'+--+-- * 'jcqRangePartitioning'+--+-- * 'jcqUseQueryCache'+--+-- * 'jcqPreserveNulls'+--+-- * 'jcqTableDefinitions'+--+-- * 'jcqQueryParameters'+--+-- * 'jcqSchemaUpdateOptions'+--+-- * 'jcqMaximumBytesBilled'+--+-- * 'jcqCreateDisPosition'+--+-- * 'jcqUserDefinedFunctionResources'+--+-- * 'jcqAllowLargeResults'+--+-- * 'jcqMaximumBillingTier'+--+-- * 'jcqTimePartitioning'+--+-- * 'jcqQuery'+--+-- * 'jcqFlattenResults'+--+-- * 'jcqParameterMode'+--+-- * 'jcqUseLegacySQL'+--+-- * 'jcqDestinationEncryptionConfiguration'+--+-- * 'jcqDefaultDataSet'+jobConfigurationQuery+    :: JobConfigurationQuery+jobConfigurationQuery =+    JobConfigurationQuery'+    { _jcqDestinationTable = Nothing+    , _jcqWriteDisPosition = Nothing+    , _jcqPriority = Nothing+    , _jcqClustering = Nothing+    , _jcqRangePartitioning = Nothing+    , _jcqUseQueryCache = True+    , _jcqPreserveNulls = Nothing+    , _jcqTableDefinitions = Nothing+    , _jcqQueryParameters = Nothing+    , _jcqSchemaUpdateOptions = Nothing+    , _jcqMaximumBytesBilled = Nothing+    , _jcqCreateDisPosition = Nothing+    , _jcqUserDefinedFunctionResources = Nothing+    , _jcqAllowLargeResults = False+    , _jcqMaximumBillingTier = 1+    , _jcqTimePartitioning = Nothing+    , _jcqQuery = Nothing+    , _jcqFlattenResults = True+    , _jcqParameterMode = Nothing+    , _jcqUseLegacySQL = True+    , _jcqDestinationEncryptionConfiguration = Nothing+    , _jcqDefaultDataSet = Nothing+    }++-- | [Optional] Describes the table where the query results should be stored.+-- If not present, a new table will be created to store the results. This+-- property must be set for large results that exceed the maximum response+-- size.+jcqDestinationTable :: Lens' JobConfigurationQuery (Maybe TableReference)+jcqDestinationTable+  = lens _jcqDestinationTable+      (\ s a -> s{_jcqDestinationTable = a})++-- | [Optional] Specifies the action that occurs if the destination table+-- already exists. The following values are supported: WRITE_TRUNCATE: If+-- the table already exists, BigQuery overwrites the table data and uses+-- the schema from the query result. WRITE_APPEND: If the table already+-- exists, BigQuery appends the data to the table. WRITE_EMPTY: If the+-- table already exists and contains data, a \'duplicate\' error is+-- returned in the job result. The default value is WRITE_EMPTY. Each+-- action is atomic and only occurs if BigQuery is able to complete the job+-- successfully. Creation, truncation and append actions occur as one+-- atomic update upon job completion.+jcqWriteDisPosition :: Lens' JobConfigurationQuery (Maybe Text)+jcqWriteDisPosition+  = lens _jcqWriteDisPosition+      (\ s a -> s{_jcqWriteDisPosition = a})++-- | [Optional] Specifies a priority for the query. Possible values include+-- INTERACTIVE and BATCH. The default value is INTERACTIVE.+jcqPriority :: Lens' JobConfigurationQuery (Maybe Text)+jcqPriority+  = lens _jcqPriority (\ s a -> s{_jcqPriority = a})++-- | [Beta] Clustering specification for the destination table. Must be+-- specified with time-based partitioning, data in the table will be first+-- partitioned and subsequently clustered.+jcqClustering :: Lens' JobConfigurationQuery (Maybe Clustering)+jcqClustering+  = lens _jcqClustering+      (\ s a -> s{_jcqClustering = a})++-- | [TrustedTester] Range partitioning specification for this table. Only+-- one of timePartitioning and rangePartitioning should be specified.+jcqRangePartitioning :: Lens' JobConfigurationQuery (Maybe RangePartitioning)+jcqRangePartitioning+  = lens _jcqRangePartitioning+      (\ s a -> s{_jcqRangePartitioning = a})++-- | [Optional] Whether to look for the result in the query cache. The query+-- cache is a best-effort cache that will be flushed whenever tables in the+-- query are modified. Moreover, the query cache is only available when a+-- query does not have a destination table specified. The default value is+-- true.+jcqUseQueryCache :: Lens' JobConfigurationQuery Bool+jcqUseQueryCache+  = lens _jcqUseQueryCache+      (\ s a -> s{_jcqUseQueryCache = a})++-- | [Deprecated] This property is deprecated.+jcqPreserveNulls :: Lens' JobConfigurationQuery (Maybe Bool)+jcqPreserveNulls+  = lens _jcqPreserveNulls+      (\ s a -> s{_jcqPreserveNulls = a})++-- | [Optional] If querying an external data source outside of BigQuery,+-- describes the data format, location and other properties of the data+-- source. By defining these properties, the data source can then be+-- queried as if it were a standard BigQuery table.+jcqTableDefinitions :: Lens' JobConfigurationQuery (Maybe JobConfigurationQueryTableDefinitions)+jcqTableDefinitions+  = lens _jcqTableDefinitions+      (\ s a -> s{_jcqTableDefinitions = a})++-- | Query parameters for standard SQL queries.+jcqQueryParameters :: Lens' JobConfigurationQuery [QueryParameter]+jcqQueryParameters+  = lens _jcqQueryParameters+      (\ s a -> s{_jcqQueryParameters = a})+      . _Default+      . _Coerce++-- | Allows the schema of the destination table to be updated as a side+-- effect of the query job. Schema update options are supported in two+-- cases: when writeDisposition is WRITE_APPEND; when writeDisposition is+-- WRITE_TRUNCATE and the destination table is a partition of a table,+-- specified by partition decorators. For normal tables, WRITE_TRUNCATE+-- will always overwrite the schema. One or more of the following values+-- are specified: ALLOW_FIELD_ADDITION: allow adding a nullable field to+-- the schema. ALLOW_FIELD_RELAXATION: allow relaxing a required field in+-- the original schema to nullable.+jcqSchemaUpdateOptions :: Lens' JobConfigurationQuery [Text]+jcqSchemaUpdateOptions+  = lens _jcqSchemaUpdateOptions+      (\ s a -> s{_jcqSchemaUpdateOptions = a})+      . _Default+      . _Coerce++-- | [Optional] Limits the bytes billed for this job. Queries that will have+-- bytes billed beyond this limit will fail (without incurring a charge).+-- If unspecified, this will be set to your project default.+jcqMaximumBytesBilled :: Lens' JobConfigurationQuery (Maybe Int64)+jcqMaximumBytesBilled+  = lens _jcqMaximumBytesBilled+      (\ s a -> s{_jcqMaximumBytesBilled = a})+      . mapping _Coerce++-- | [Optional] Specifies whether the job is allowed to create new tables.+-- The following values are supported: CREATE_IF_NEEDED: If the table does+-- not exist, BigQuery creates the table. CREATE_NEVER: The table must+-- already exist. If it does not, a \'notFound\' error is returned in the+-- job result. The default value is CREATE_IF_NEEDED. Creation, truncation+-- and append actions occur as one atomic update upon job completion.+jcqCreateDisPosition :: Lens' JobConfigurationQuery (Maybe Text)+jcqCreateDisPosition+  = lens _jcqCreateDisPosition+      (\ s a -> s{_jcqCreateDisPosition = a})++-- | Describes user-defined function resources used in the query.+jcqUserDefinedFunctionResources :: Lens' JobConfigurationQuery [UserDefinedFunctionResource]+jcqUserDefinedFunctionResources+  = lens _jcqUserDefinedFunctionResources+      (\ s a -> s{_jcqUserDefinedFunctionResources = a})+      . _Default+      . _Coerce++-- | [Optional] If true and query uses legacy SQL dialect, allows the query+-- to produce arbitrarily large result tables at a slight cost in+-- performance. Requires destinationTable to be set. For standard SQL+-- queries, this flag is ignored and large results are always allowed.+-- However, you must still set destinationTable when result size exceeds+-- the allowed maximum response size.+jcqAllowLargeResults :: Lens' JobConfigurationQuery Bool+jcqAllowLargeResults+  = lens _jcqAllowLargeResults+      (\ s a -> s{_jcqAllowLargeResults = a})++-- | [Optional] Limits the billing tier for this job. Queries that have+-- resource usage beyond this tier will fail (without incurring a charge).+-- If unspecified, this will be set to your project default.+jcqMaximumBillingTier :: Lens' JobConfigurationQuery Int32+jcqMaximumBillingTier+  = lens _jcqMaximumBillingTier+      (\ s a -> s{_jcqMaximumBillingTier = a})+      . _Coerce++-- | Time-based partitioning specification for the destination table. Only+-- one of timePartitioning and rangePartitioning should be specified.+jcqTimePartitioning :: Lens' JobConfigurationQuery (Maybe TimePartitioning)+jcqTimePartitioning+  = lens _jcqTimePartitioning+      (\ s a -> s{_jcqTimePartitioning = a})++-- | [Required] SQL query text to execute. The useLegacySql field can be used+-- to indicate whether the query uses legacy SQL or standard SQL.+jcqQuery :: Lens' JobConfigurationQuery (Maybe Text)+jcqQuery = lens _jcqQuery (\ s a -> s{_jcqQuery = a})++-- | [Optional] If true and query uses legacy SQL dialect, flattens all+-- nested and repeated fields in the query results. allowLargeResults must+-- be true if this is set to false. For standard SQL queries, this flag is+-- ignored and results are never flattened.+jcqFlattenResults :: Lens' JobConfigurationQuery Bool+jcqFlattenResults+  = lens _jcqFlattenResults+      (\ s a -> s{_jcqFlattenResults = a})++-- | Standard SQL only. Set to POSITIONAL to use positional (?) query+-- parameters or to NAMED to use named (\'myparam) query parameters in this+-- query.+jcqParameterMode :: Lens' JobConfigurationQuery (Maybe Text)+jcqParameterMode+  = lens _jcqParameterMode+      (\ s a -> s{_jcqParameterMode = a})++-- | Specifies whether to use BigQuery\'s legacy SQL dialect for this query.+-- The default value is true. If set to false, the query will use+-- BigQuery\'s standard SQL:+-- https:\/\/cloud.google.com\/bigquery\/sql-reference\/ When useLegacySql+-- is set to false, the value of flattenResults is ignored; query will be+-- run as if flattenResults is false.+jcqUseLegacySQL :: Lens' JobConfigurationQuery Bool+jcqUseLegacySQL+  = lens _jcqUseLegacySQL+      (\ s a -> s{_jcqUseLegacySQL = a})++-- | Custom encryption configuration (e.g., Cloud KMS keys).+jcqDestinationEncryptionConfiguration :: Lens' JobConfigurationQuery (Maybe EncryptionConfiguration)+jcqDestinationEncryptionConfiguration+  = lens _jcqDestinationEncryptionConfiguration+      (\ s a ->+         s{_jcqDestinationEncryptionConfiguration = a})++-- | [Optional] Specifies the default dataset to use for unqualified table+-- names in the query. Note that this does not alter behavior of+-- unqualified dataset names.+jcqDefaultDataSet :: Lens' JobConfigurationQuery (Maybe DataSetReference)+jcqDefaultDataSet+  = lens _jcqDefaultDataSet+      (\ s a -> s{_jcqDefaultDataSet = a})++instance FromJSON JobConfigurationQuery where+        parseJSON+          = withObject "JobConfigurationQuery"+              (\ o ->+                 JobConfigurationQuery' <$>+                   (o .:? "destinationTable") <*>+                     (o .:? "writeDisposition")+                     <*> (o .:? "priority")+                     <*> (o .:? "clustering")+                     <*> (o .:? "rangePartitioning")+                     <*> (o .:? "useQueryCache" .!= True)+                     <*> (o .:? "preserveNulls")+                     <*> (o .:? "tableDefinitions")+                     <*> (o .:? "queryParameters" .!= mempty)+                     <*> (o .:? "schemaUpdateOptions" .!= mempty)+                     <*> (o .:? "maximumBytesBilled")+                     <*> (o .:? "createDisposition")+                     <*> (o .:? "userDefinedFunctionResources" .!= mempty)+                     <*> (o .:? "allowLargeResults" .!= False)+                     <*> (o .:? "maximumBillingTier" .!= 1)+                     <*> (o .:? "timePartitioning")+                     <*> (o .:? "query")+                     <*> (o .:? "flattenResults" .!= True)+                     <*> (o .:? "parameterMode")+                     <*> (o .:? "useLegacySql" .!= True)+                     <*> (o .:? "destinationEncryptionConfiguration")+                     <*> (o .:? "defaultDataset"))++instance ToJSON JobConfigurationQuery where+        toJSON JobConfigurationQuery'{..}+          = object+              (catMaybes+                 [("destinationTable" .=) <$> _jcqDestinationTable,+                  ("writeDisposition" .=) <$> _jcqWriteDisPosition,+                  ("priority" .=) <$> _jcqPriority,+                  ("clustering" .=) <$> _jcqClustering,+                  ("rangePartitioning" .=) <$> _jcqRangePartitioning,+                  Just ("useQueryCache" .= _jcqUseQueryCache),+                  ("preserveNulls" .=) <$> _jcqPreserveNulls,+                  ("tableDefinitions" .=) <$> _jcqTableDefinitions,+                  ("queryParameters" .=) <$> _jcqQueryParameters,+                  ("schemaUpdateOptions" .=) <$>+                    _jcqSchemaUpdateOptions,+                  ("maximumBytesBilled" .=) <$> _jcqMaximumBytesBilled,+                  ("createDisposition" .=) <$> _jcqCreateDisPosition,+                  ("userDefinedFunctionResources" .=) <$>+                    _jcqUserDefinedFunctionResources,+                  Just ("allowLargeResults" .= _jcqAllowLargeResults),+                  Just+                    ("maximumBillingTier" .= _jcqMaximumBillingTier),+                  ("timePartitioning" .=) <$> _jcqTimePartitioning,+                  ("query" .=) <$> _jcqQuery,+                  Just ("flattenResults" .= _jcqFlattenResults),+                  ("parameterMode" .=) <$> _jcqParameterMode,+                  Just ("useLegacySql" .= _jcqUseLegacySQL),+                  ("destinationEncryptionConfiguration" .=) <$>+                    _jcqDestinationEncryptionConfiguration,+                  ("defaultDataset" .=) <$> _jcqDefaultDataSet])++--+-- /See:/ 'googleSheetsOptions' smart constructor.+data GoogleSheetsOptions = GoogleSheetsOptions'+    { _gsoSkipLeadingRows :: !(Maybe (Textual Int64))+    , _gsoRange           :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GoogleSheetsOptions' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gsoSkipLeadingRows'+--+-- * 'gsoRange'+googleSheetsOptions+    :: GoogleSheetsOptions+googleSheetsOptions =+    GoogleSheetsOptions'+    { _gsoSkipLeadingRows = Nothing+    , _gsoRange = Nothing+    }++-- | [Optional] The number of rows at the top of a sheet that BigQuery will+-- skip when reading the data. The default value is 0. This property is+-- useful if you have header rows that should be skipped. When autodetect+-- is on, behavior is the following: * skipLeadingRows unspecified -+-- Autodetect tries to detect headers in the first row. If they are not+-- detected, the row is read as data. Otherwise data is read starting from+-- the second row. * skipLeadingRows is 0 - Instructs autodetect that there+-- are no headers and data should be read starting from the first row. *+-- skipLeadingRows = N > 0 - Autodetect skips N-1 rows and tries to detect+-- headers in row N. If headers are not detected, row N is just skipped.+-- Otherwise row N is used to extract column names for the detected schema.+gsoSkipLeadingRows :: Lens' GoogleSheetsOptions (Maybe Int64)+gsoSkipLeadingRows+  = lens _gsoSkipLeadingRows+      (\ s a -> s{_gsoSkipLeadingRows = a})+      . mapping _Coerce++-- | [Beta] [Optional] Range of a sheet to query from. Only used when+-- non-empty. Typical format:+-- sheet_name!top_left_cell_id:bottom_right_cell_id For example:+-- sheet1!A1:B20+gsoRange :: Lens' GoogleSheetsOptions (Maybe Text)+gsoRange = lens _gsoRange (\ s a -> s{_gsoRange = a})++instance FromJSON GoogleSheetsOptions where+        parseJSON+          = withObject "GoogleSheetsOptions"+              (\ o ->+                 GoogleSheetsOptions' <$>+                   (o .:? "skipLeadingRows") <*> (o .:? "range"))++instance ToJSON GoogleSheetsOptions where+        toJSON GoogleSheetsOptions'{..}+          = object+              (catMaybes+                 [("skipLeadingRows" .=) <$> _gsoSkipLeadingRows,+                  ("range" .=) <$> _gsoRange])++--+-- /See:/ 'tableDataInsertAllRequestRowsItem' smart constructor.+data TableDataInsertAllRequestRowsItem = TableDataInsertAllRequestRowsItem'+    { _tdiarriJSON     :: !(Maybe JSONObject)+    , _tdiarriInsertId :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TableDataInsertAllRequestRowsItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tdiarriJSON'+--+-- * 'tdiarriInsertId'+tableDataInsertAllRequestRowsItem+    :: TableDataInsertAllRequestRowsItem+tableDataInsertAllRequestRowsItem =+    TableDataInsertAllRequestRowsItem'+    { _tdiarriJSON = Nothing+    , _tdiarriInsertId = Nothing+    }++-- | [Required] A JSON object that contains a row of data. The object\'s+-- properties and values must match the destination table\'s schema.+tdiarriJSON :: Lens' TableDataInsertAllRequestRowsItem (Maybe JSONObject)+tdiarriJSON+  = lens _tdiarriJSON (\ s a -> s{_tdiarriJSON = a})++-- | [Optional] A unique ID for each row. BigQuery uses this property to+-- detect duplicate insertion requests on a best-effort basis.+tdiarriInsertId :: Lens' TableDataInsertAllRequestRowsItem (Maybe Text)+tdiarriInsertId+  = lens _tdiarriInsertId+      (\ s a -> s{_tdiarriInsertId = a})++instance FromJSON TableDataInsertAllRequestRowsItem+         where+        parseJSON+          = withObject "TableDataInsertAllRequestRowsItem"+              (\ o ->+                 TableDataInsertAllRequestRowsItem' <$>+                   (o .:? "json") <*> (o .:? "insertId"))++instance ToJSON TableDataInsertAllRequestRowsItem+         where+        toJSON TableDataInsertAllRequestRowsItem'{..}+          = object+              (catMaybes+                 [("json" .=) <$> _tdiarriJSON,+                  ("insertId" .=) <$> _tdiarriInsertId])++--+-- /See:/ 'jobList' smart constructor.+data JobList = JobList'+    { _jlEtag          :: !(Maybe Text)+    , _jlNextPageToken :: !(Maybe Text)+    , _jlKind          :: !Text+    , _jlJobs          :: !(Maybe [JobListJobsItem])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'JobList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'jlEtag'+--+-- * 'jlNextPageToken'+--+-- * 'jlKind'+--+-- * 'jlJobs'+jobList+    :: JobList+jobList =+    JobList'+    { _jlEtag = Nothing+    , _jlNextPageToken = Nothing+    , _jlKind = "bigquery#jobList"+    , _jlJobs = Nothing+    }++-- | A hash of this page of results.+jlEtag :: Lens' JobList (Maybe Text)+jlEtag = lens _jlEtag (\ s a -> s{_jlEtag = a})++-- | A token to request the next page of results.+jlNextPageToken :: Lens' JobList (Maybe Text)+jlNextPageToken+  = lens _jlNextPageToken+      (\ s a -> s{_jlNextPageToken = a})++-- | The resource type of the response.+jlKind :: Lens' JobList Text+jlKind = lens _jlKind (\ s a -> s{_jlKind = a})++-- | List of jobs that were requested.+jlJobs :: Lens' JobList [JobListJobsItem]+jlJobs+  = lens _jlJobs (\ s a -> s{_jlJobs = a}) . _Default .+      _Coerce++instance FromJSON JobList where+        parseJSON+          = withObject "JobList"+              (\ o ->+                 JobList' <$>+                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "bigquery#jobList")+                     <*> (o .:? "jobs" .!= mempty))++instance ToJSON JobList where+        toJSON JobList'{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _jlEtag,+                  ("nextPageToken" .=) <$> _jlNextPageToken,+                  Just ("kind" .= _jlKind), ("jobs" .=) <$> _jlJobs])++-- | [Optional] If querying an external data source outside of BigQuery,+-- describes the data format, location and other properties of the data+-- source. By defining these properties, the data source can then be+-- queried as if it were a standard BigQuery table.+--+-- /See:/ 'jobConfigurationQueryTableDefinitions' smart constructor.+newtype JobConfigurationQueryTableDefinitions = JobConfigurationQueryTableDefinitions'+    { _jcqtdAddtional :: HashMap Text ExternalDataConfiguration+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'JobConfigurationQueryTableDefinitions' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'jcqtdAddtional'+jobConfigurationQueryTableDefinitions+    :: HashMap Text ExternalDataConfiguration -- ^ 'jcqtdAddtional'+    -> JobConfigurationQueryTableDefinitions+jobConfigurationQueryTableDefinitions pJcqtdAddtional_ =+    JobConfigurationQueryTableDefinitions'+    { _jcqtdAddtional = _Coerce # pJcqtdAddtional_+    }++jcqtdAddtional :: Lens' JobConfigurationQueryTableDefinitions (HashMap Text ExternalDataConfiguration)+jcqtdAddtional+  = lens _jcqtdAddtional+      (\ s a -> s{_jcqtdAddtional = a})+      . _Coerce++instance FromJSON+         JobConfigurationQueryTableDefinitions where+        parseJSON+          = withObject "JobConfigurationQueryTableDefinitions"+              (\ o ->+                 JobConfigurationQueryTableDefinitions' <$>+                   (parseJSONObject o))++instance ToJSON JobConfigurationQueryTableDefinitions+         where+        toJSON = toJSON . _jcqtdAddtional++--+-- /See:/ 'tableCell' smart constructor.+newtype TableCell = TableCell'+    { _tcV :: Maybe JSONValue+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TableCell' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tcV'+tableCell+    :: TableCell+tableCell =+    TableCell'+    { _tcV = Nothing+    }++tcV :: Lens' TableCell (Maybe JSONValue)+tcV = lens _tcV (\ s a -> s{_tcV = a})++instance FromJSON TableCell where+        parseJSON+          = withObject "TableCell"+              (\ o -> TableCell' <$> (o .:? "v"))++instance ToJSON TableCell where+        toJSON TableCell'{..}+          = object (catMaybes [("v" .=) <$> _tcV])++--+-- /See:/ 'jobStatistics2ReservationUsageItem' smart constructor.+data JobStatistics2ReservationUsageItem = JobStatistics2ReservationUsageItem'+    { _jName   :: !(Maybe Text)+    , _jSlotMs :: !(Maybe (Textual Int64))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'JobStatistics2ReservationUsageItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'jName'+--+-- * 'jSlotMs'+jobStatistics2ReservationUsageItem+    :: JobStatistics2ReservationUsageItem+jobStatistics2ReservationUsageItem =+    JobStatistics2ReservationUsageItem'+    { _jName = Nothing+    , _jSlotMs = Nothing+    }++-- | [Output-only] Reservation name or \"unreserved\" for on-demand resources+-- usage.+jName :: Lens' JobStatistics2ReservationUsageItem (Maybe Text)+jName = lens _jName (\ s a -> s{_jName = a})++-- | [Output-only] Slot-milliseconds the job spent in the given reservation.+jSlotMs :: Lens' JobStatistics2ReservationUsageItem (Maybe Int64)+jSlotMs+  = lens _jSlotMs (\ s a -> s{_jSlotMs = a}) .+      mapping _Coerce++instance FromJSON JobStatistics2ReservationUsageItem+         where+        parseJSON+          = withObject "JobStatistics2ReservationUsageItem"+              (\ o ->+                 JobStatistics2ReservationUsageItem' <$>+                   (o .:? "name") <*> (o .:? "slotMs"))++instance ToJSON JobStatistics2ReservationUsageItem+         where+        toJSON JobStatistics2ReservationUsageItem'{..}+          = object+              (catMaybes+                 [("name" .=) <$> _jName, ("slotMs" .=) <$> _jSlotMs])++--+-- /See:/ 'queryParameterValue' smart constructor.+data QueryParameterValue = QueryParameterValue'+    { _qpvStructValues :: !(Maybe QueryParameterValueStructValues)+    , _qpvValue        :: !(Maybe Text)+    , _qpvArrayValues  :: !(Maybe [QueryParameterValue])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'QueryParameterValue' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'qpvStructValues'+--+-- * 'qpvValue'+--+-- * 'qpvArrayValues'+queryParameterValue+    :: QueryParameterValue+queryParameterValue =+    QueryParameterValue'+    { _qpvStructValues = Nothing+    , _qpvValue = Nothing+    , _qpvArrayValues = Nothing+    }++-- | [Optional] The struct field values, in order of the struct type\'s+-- declaration.+qpvStructValues :: Lens' QueryParameterValue (Maybe QueryParameterValueStructValues)+qpvStructValues+  = lens _qpvStructValues+      (\ s a -> s{_qpvStructValues = a})++-- | [Optional] The value of this value, if a simple scalar type.+qpvValue :: Lens' QueryParameterValue (Maybe Text)+qpvValue = lens _qpvValue (\ s a -> s{_qpvValue = a})++-- | [Optional] The array values, if this is an array type.+qpvArrayValues :: Lens' QueryParameterValue [QueryParameterValue]+qpvArrayValues+  = lens _qpvArrayValues+      (\ s a -> s{_qpvArrayValues = a})+      . _Default+      . _Coerce++instance FromJSON QueryParameterValue where+        parseJSON+          = withObject "QueryParameterValue"+              (\ o ->+                 QueryParameterValue' <$>+                   (o .:? "structValues") <*> (o .:? "value") <*>+                     (o .:? "arrayValues" .!= mempty))++instance ToJSON QueryParameterValue where+        toJSON QueryParameterValue'{..}+          = object+              (catMaybes+                 [("structValues" .=) <$> _qpvStructValues,+                  ("value" .=) <$> _qpvValue,+                  ("arrayValues" .=) <$> _qpvArrayValues])++--+-- /See:/ 'viewDefinition' smart constructor.+data ViewDefinition = ViewDefinition'+    { _vdUserDefinedFunctionResources :: !(Maybe [UserDefinedFunctionResource])+    , _vdQuery                        :: !(Maybe Text)+    , _vdUseLegacySQL                 :: !(Maybe Bool)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ViewDefinition' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vdUserDefinedFunctionResources'+--+-- * 'vdQuery'+--+-- * 'vdUseLegacySQL'+viewDefinition+    :: ViewDefinition+viewDefinition =+    ViewDefinition'+    { _vdUserDefinedFunctionResources = Nothing+    , _vdQuery = Nothing+    , _vdUseLegacySQL = Nothing+    }++-- | Describes user-defined function resources used in the query.+vdUserDefinedFunctionResources :: Lens' ViewDefinition [UserDefinedFunctionResource]+vdUserDefinedFunctionResources+  = lens _vdUserDefinedFunctionResources+      (\ s a -> s{_vdUserDefinedFunctionResources = a})+      . _Default+      . _Coerce++-- | [Required] A query that BigQuery executes when the view is referenced.+vdQuery :: Lens' ViewDefinition (Maybe Text)+vdQuery = lens _vdQuery (\ s a -> s{_vdQuery = a})++-- | Specifies whether to use BigQuery\'s legacy SQL for this view. The+-- default value is true. If set to false, the view will use BigQuery\'s+-- standard SQL: https:\/\/cloud.google.com\/bigquery\/sql-reference\/+-- Queries and views that reference this view must use the same flag value.+vdUseLegacySQL :: Lens' ViewDefinition (Maybe Bool)+vdUseLegacySQL+  = lens _vdUseLegacySQL+      (\ s a -> s{_vdUseLegacySQL = a})++instance FromJSON ViewDefinition where+        parseJSON+          = withObject "ViewDefinition"+              (\ o ->+                 ViewDefinition' <$>+                   (o .:? "userDefinedFunctionResources" .!= mempty) <*>+                     (o .:? "query")+                     <*> (o .:? "useLegacySql"))++instance ToJSON ViewDefinition where+        toJSON ViewDefinition'{..}+          = object+              (catMaybes+                 [("userDefinedFunctionResources" .=) <$>+                    _vdUserDefinedFunctionResources,+                  ("query" .=) <$> _vdQuery,+                  ("useLegacySql" .=) <$> _vdUseLegacySQL])++--+-- /See:/ 'userDefinedFunctionResource' smart constructor.+data UserDefinedFunctionResource = UserDefinedFunctionResource'+    { _udfrResourceURI :: !(Maybe Text)+    , _udfrInlineCode  :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UserDefinedFunctionResource' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'udfrResourceURI'+--+-- * 'udfrInlineCode'+userDefinedFunctionResource+    :: UserDefinedFunctionResource+userDefinedFunctionResource =+    UserDefinedFunctionResource'+    { _udfrResourceURI = Nothing+    , _udfrInlineCode = Nothing+    }++-- | [Pick one] A code resource to load from a Google Cloud Storage URI+-- (gs:\/\/bucket\/path).+udfrResourceURI :: Lens' UserDefinedFunctionResource (Maybe Text)+udfrResourceURI+  = lens _udfrResourceURI+      (\ s a -> s{_udfrResourceURI = a})++-- | [Pick one] An inline resource that contains code for a user-defined+-- function (UDF). Providing a inline code resource is equivalent to+-- providing a URI for a file containing the same code.+udfrInlineCode :: Lens' UserDefinedFunctionResource (Maybe Text)+udfrInlineCode+  = lens _udfrInlineCode+      (\ s a -> s{_udfrInlineCode = a})++instance FromJSON UserDefinedFunctionResource where+        parseJSON+          = withObject "UserDefinedFunctionResource"+              (\ o ->+                 UserDefinedFunctionResource' <$>+                   (o .:? "resourceUri") <*> (o .:? "inlineCode"))++instance ToJSON UserDefinedFunctionResource where+        toJSON UserDefinedFunctionResource'{..}+          = object+              (catMaybes+                 [("resourceUri" .=) <$> _udfrResourceURI,+                  ("inlineCode" .=) <$> _udfrInlineCode])++--+-- /See:/ 'jobStatistics2' smart constructor.+data JobStatistics2 = JobStatistics2'+    { _jModelTrainingExpectedTotalIteration :: !(Maybe (Textual Int64))+    , _jModelTraining                       :: !(Maybe BigQueryModelTraining)+    , _jTotalSlotMs                         :: !(Maybe (Textual Int64))+    , _jDdlTargetTable                      :: !(Maybe TableReference)+    , _jEstimatedBytesProcessed             :: !(Maybe (Textual Int64))+    , _jModelTrainingCurrentIteration       :: !(Maybe (Textual Int32))+    , _jSchema                              :: !(Maybe TableSchema)+    , _jTotalBytesProcessed                 :: !(Maybe (Textual Int64))+    , _jBillingTier                         :: !(Maybe (Textual Int32))+    , _jTotalBytesProcessedAccuracy         :: !(Maybe Text)+    , _jUndeclaredQueryParameters           :: !(Maybe [QueryParameter])+    , _jReferencedTables                    :: !(Maybe [TableReference])+    , _jStatementType                       :: !(Maybe Text)+    , _jReservationUsage                    :: !(Maybe [JobStatistics2ReservationUsageItem])+    , _jNumDmlAffectedRows                  :: !(Maybe (Textual Int64))+    , _jTimeline                            :: !(Maybe [QueryTimelineSample])+    , _jQueryPlan                           :: !(Maybe [ExplainQueryStage])+    , _jCacheHit                            :: !(Maybe Bool)+    , _jTotalBytesBilled                    :: !(Maybe (Textual Int64))+    , _jDdlOperationPerformed               :: !(Maybe Text)+    , _jTotalPartitionsProcessed            :: !(Maybe (Textual Int64))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'JobStatistics2' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'jModelTrainingExpectedTotalIteration'+--+-- * 'jModelTraining'+--+-- * 'jTotalSlotMs'+--+-- * 'jDdlTargetTable'+--+-- * 'jEstimatedBytesProcessed'+--+-- * 'jModelTrainingCurrentIteration'+--+-- * 'jSchema'+--+-- * 'jTotalBytesProcessed'+--+-- * 'jBillingTier'+--+-- * 'jTotalBytesProcessedAccuracy'+--+-- * 'jUndeclaredQueryParameters'+--+-- * 'jReferencedTables'+--+-- * 'jStatementType'+--+-- * 'jReservationUsage'+--+-- * 'jNumDmlAffectedRows'+--+-- * 'jTimeline'+--+-- * 'jQueryPlan'+--+-- * 'jCacheHit'+--+-- * 'jTotalBytesBilled'+--+-- * 'jDdlOperationPerformed'+--+-- * 'jTotalPartitionsProcessed'+jobStatistics2+    :: JobStatistics2+jobStatistics2 =+    JobStatistics2'+    { _jModelTrainingExpectedTotalIteration = Nothing+    , _jModelTraining = Nothing+    , _jTotalSlotMs = Nothing+    , _jDdlTargetTable = Nothing+    , _jEstimatedBytesProcessed = Nothing+    , _jModelTrainingCurrentIteration = Nothing+    , _jSchema = Nothing+    , _jTotalBytesProcessed = Nothing+    , _jBillingTier = Nothing+    , _jTotalBytesProcessedAccuracy = Nothing+    , _jUndeclaredQueryParameters = Nothing+    , _jReferencedTables = Nothing+    , _jStatementType = Nothing+    , _jReservationUsage = Nothing+    , _jNumDmlAffectedRows = Nothing+    , _jTimeline = Nothing+    , _jQueryPlan = Nothing+    , _jCacheHit = Nothing+    , _jTotalBytesBilled = Nothing+    , _jDdlOperationPerformed = Nothing+    , _jTotalPartitionsProcessed = Nothing+    }++-- | [Output-only, Beta] Deprecated; do not use.+jModelTrainingExpectedTotalIteration :: Lens' JobStatistics2 (Maybe Int64)+jModelTrainingExpectedTotalIteration+  = lens _jModelTrainingExpectedTotalIteration+      (\ s a ->+         s{_jModelTrainingExpectedTotalIteration = a})+      . mapping _Coerce++-- | [Output-only, Beta] Information about create model query job progress.+jModelTraining :: Lens' JobStatistics2 (Maybe BigQueryModelTraining)+jModelTraining+  = lens _jModelTraining+      (\ s a -> s{_jModelTraining = a})++-- | [Output-only] Slot-milliseconds for the job.+jTotalSlotMs :: Lens' JobStatistics2 (Maybe Int64)+jTotalSlotMs+  = lens _jTotalSlotMs (\ s a -> s{_jTotalSlotMs = a})+      . mapping _Coerce++-- | The DDL target table. Present only for CREATE\/DROP TABLE\/VIEW queries.+jDdlTargetTable :: Lens' JobStatistics2 (Maybe TableReference)+jDdlTargetTable+  = lens _jDdlTargetTable+      (\ s a -> s{_jDdlTargetTable = a})++-- | [Output-only] The original estimate of bytes processed for the job.+jEstimatedBytesProcessed :: Lens' JobStatistics2 (Maybe Int64)+jEstimatedBytesProcessed+  = lens _jEstimatedBytesProcessed+      (\ s a -> s{_jEstimatedBytesProcessed = a})+      . mapping _Coerce++-- | [Output-only, Beta] Deprecated; do not use.+jModelTrainingCurrentIteration :: Lens' JobStatistics2 (Maybe Int32)+jModelTrainingCurrentIteration+  = lens _jModelTrainingCurrentIteration+      (\ s a -> s{_jModelTrainingCurrentIteration = a})+      . mapping _Coerce++-- | [Output-only] The schema of the results. Present only for successful dry+-- run of non-legacy SQL queries.+jSchema :: Lens' JobStatistics2 (Maybe TableSchema)+jSchema = lens _jSchema (\ s a -> s{_jSchema = a})++-- | [Output-only] Total bytes processed for the job.+jTotalBytesProcessed :: Lens' JobStatistics2 (Maybe Int64)+jTotalBytesProcessed+  = lens _jTotalBytesProcessed+      (\ s a -> s{_jTotalBytesProcessed = a})+      . mapping _Coerce++-- | [Output-only] Billing tier for the job.+jBillingTier :: Lens' JobStatistics2 (Maybe Int32)+jBillingTier+  = lens _jBillingTier (\ s a -> s{_jBillingTier = a})+      . mapping _Coerce++-- | [Output-only] For dry-run jobs, totalBytesProcessed is an estimate and+-- this field specifies the accuracy of the estimate. Possible values can+-- be: UNKNOWN: accuracy of the estimate is unknown. PRECISE: estimate is+-- precise. LOWER_BOUND: estimate is lower bound of what the query would+-- cost. UPPER_BOUND: estiamte is upper bound of what the query would cost.+jTotalBytesProcessedAccuracy :: Lens' JobStatistics2 (Maybe Text)+jTotalBytesProcessedAccuracy+  = lens _jTotalBytesProcessedAccuracy+      (\ s a -> s{_jTotalBytesProcessedAccuracy = a})++-- | Standard SQL only: list of undeclared query parameters detected during a+-- dry run validation.+jUndeclaredQueryParameters :: Lens' JobStatistics2 [QueryParameter]+jUndeclaredQueryParameters+  = lens _jUndeclaredQueryParameters+      (\ s a -> s{_jUndeclaredQueryParameters = a})+      . _Default+      . _Coerce++-- | [Output-only] Referenced tables for the job. Queries that reference more+-- than 50 tables will not have a complete list.+jReferencedTables :: Lens' JobStatistics2 [TableReference]+jReferencedTables+  = lens _jReferencedTables+      (\ s a -> s{_jReferencedTables = a})+      . _Default+      . _Coerce++-- | The type of query statement, if valid. Possible values (new values might+-- be added in the future): \"SELECT\": SELECT query. \"INSERT\": INSERT+-- query; see+-- https:\/\/cloud.google.com\/bigquery\/docs\/reference\/standard-sql\/data-manipulation-language.+-- \"UPDATE\": UPDATE query; see+-- https:\/\/cloud.google.com\/bigquery\/docs\/reference\/standard-sql\/data-manipulation-language.+-- \"DELETE\": DELETE query; see+-- https:\/\/cloud.google.com\/bigquery\/docs\/reference\/standard-sql\/data-manipulation-language.+-- \"MERGE\": MERGE query; see+-- https:\/\/cloud.google.com\/bigquery\/docs\/reference\/standard-sql\/data-manipulation-language.+-- \"CREATE_TABLE\": CREATE [OR REPLACE] TABLE without AS SELECT.+-- \"CREATE_TABLE_AS_SELECT\": CREATE [OR REPLACE] TABLE ... AS SELECT ...+-- . \"DROP_TABLE\": DROP TABLE query. \"CREATE_VIEW\": CREATE [OR REPLACE]+-- VIEW ... AS SELECT ... . \"DROP_VIEW\": DROP VIEW query.+-- \"ALTER_TABLE\": ALTER TABLE query. \"ALTER_VIEW\": ALTER VIEW query.+jStatementType :: Lens' JobStatistics2 (Maybe Text)+jStatementType+  = lens _jStatementType+      (\ s a -> s{_jStatementType = a})++-- | [Output-only] Job resource usage breakdown by reservation.+jReservationUsage :: Lens' JobStatistics2 [JobStatistics2ReservationUsageItem]+jReservationUsage+  = lens _jReservationUsage+      (\ s a -> s{_jReservationUsage = a})+      . _Default+      . _Coerce++-- | [Output-only] The number of rows affected by a DML statement. Present+-- only for DML statements INSERT, UPDATE or DELETE.+jNumDmlAffectedRows :: Lens' JobStatistics2 (Maybe Int64)+jNumDmlAffectedRows+  = lens _jNumDmlAffectedRows+      (\ s a -> s{_jNumDmlAffectedRows = a})+      . mapping _Coerce++-- | [Output-only] [Beta] Describes a timeline of job execution.+jTimeline :: Lens' JobStatistics2 [QueryTimelineSample]+jTimeline+  = lens _jTimeline (\ s a -> s{_jTimeline = a}) .+      _Default+      . _Coerce++-- | [Output-only] Describes execution plan for the query.+jQueryPlan :: Lens' JobStatistics2 [ExplainQueryStage]+jQueryPlan+  = lens _jQueryPlan (\ s a -> s{_jQueryPlan = a}) .+      _Default+      . _Coerce++-- | [Output-only] Whether the query result was fetched from the query cache.+jCacheHit :: Lens' JobStatistics2 (Maybe Bool)+jCacheHit+  = lens _jCacheHit (\ s a -> s{_jCacheHit = a})++-- | [Output-only] Total bytes billed for the job.+jTotalBytesBilled :: Lens' JobStatistics2 (Maybe Int64)+jTotalBytesBilled+  = lens _jTotalBytesBilled+      (\ s a -> s{_jTotalBytesBilled = a})+      . mapping _Coerce++-- | The DDL operation performed, possibly dependent on the pre-existence of+-- the DDL target. Possible values (new values might be added in the+-- future): \"CREATE\": The query created the DDL target. \"SKIP\": No-op.+-- Example cases: the query is CREATE TABLE IF NOT EXISTS while the table+-- already exists, or the query is DROP TABLE IF EXISTS while the table+-- does not exist. \"REPLACE\": The query replaced the DDL target. Example+-- case: the query is CREATE OR REPLACE TABLE, and the table already+-- exists. \"DROP\": The query deleted the DDL target.+jDdlOperationPerformed :: Lens' JobStatistics2 (Maybe Text)+jDdlOperationPerformed+  = lens _jDdlOperationPerformed+      (\ s a -> s{_jDdlOperationPerformed = a})++-- | [Output-only] Total number of partitions processed from all partitioned+-- tables referenced in the job.+jTotalPartitionsProcessed :: Lens' JobStatistics2 (Maybe Int64)+jTotalPartitionsProcessed+  = lens _jTotalPartitionsProcessed+      (\ s a -> s{_jTotalPartitionsProcessed = a})+      . mapping _Coerce++instance FromJSON JobStatistics2 where+        parseJSON+          = withObject "JobStatistics2"+              (\ o ->+                 JobStatistics2' <$>+                   (o .:? "modelTrainingExpectedTotalIteration") <*>+                     (o .:? "modelTraining")+                     <*> (o .:? "totalSlotMs")+                     <*> (o .:? "ddlTargetTable")+                     <*> (o .:? "estimatedBytesProcessed")+                     <*> (o .:? "modelTrainingCurrentIteration")+                     <*> (o .:? "schema")+                     <*> (o .:? "totalBytesProcessed")+                     <*> (o .:? "billingTier")+                     <*> (o .:? "totalBytesProcessedAccuracy")+                     <*> (o .:? "undeclaredQueryParameters" .!= mempty)+                     <*> (o .:? "referencedTables" .!= mempty)+                     <*> (o .:? "statementType")+                     <*> (o .:? "reservationUsage" .!= mempty)+                     <*> (o .:? "numDmlAffectedRows")+                     <*> (o .:? "timeline" .!= mempty)+                     <*> (o .:? "queryPlan" .!= mempty)+                     <*> (o .:? "cacheHit")+                     <*> (o .:? "totalBytesBilled")+                     <*> (o .:? "ddlOperationPerformed")+                     <*> (o .:? "totalPartitionsProcessed"))++instance ToJSON JobStatistics2 where+        toJSON JobStatistics2'{..}+          = object+              (catMaybes+                 [("modelTrainingExpectedTotalIteration" .=) <$>+                    _jModelTrainingExpectedTotalIteration,+                  ("modelTraining" .=) <$> _jModelTraining,+                  ("totalSlotMs" .=) <$> _jTotalSlotMs,+                  ("ddlTargetTable" .=) <$> _jDdlTargetTable,+                  ("estimatedBytesProcessed" .=) <$>+                    _jEstimatedBytesProcessed,+                  ("modelTrainingCurrentIteration" .=) <$>+                    _jModelTrainingCurrentIteration,+                  ("schema" .=) <$> _jSchema,+                  ("totalBytesProcessed" .=) <$> _jTotalBytesProcessed,+                  ("billingTier" .=) <$> _jBillingTier,+                  ("totalBytesProcessedAccuracy" .=) <$>+                    _jTotalBytesProcessedAccuracy,+                  ("undeclaredQueryParameters" .=) <$>+                    _jUndeclaredQueryParameters,+                  ("referencedTables" .=) <$> _jReferencedTables,+                  ("statementType" .=) <$> _jStatementType,+                  ("reservationUsage" .=) <$> _jReservationUsage,+                  ("numDmlAffectedRows" .=) <$> _jNumDmlAffectedRows,+                  ("timeline" .=) <$> _jTimeline,+                  ("queryPlan" .=) <$> _jQueryPlan,+                  ("cacheHit" .=) <$> _jCacheHit,+                  ("totalBytesBilled" .=) <$> _jTotalBytesBilled,+                  ("ddlOperationPerformed" .=) <$>+                    _jDdlOperationPerformed,+                  ("totalPartitionsProcessed" .=) <$>+                    _jTotalPartitionsProcessed])++--+-- /See:/ 'jobStatus' smart constructor.+data JobStatus = JobStatus'+    { _jsState       :: !(Maybe Text)+    , _jsErrorResult :: !(Maybe ErrorProto)+    , _jsErrors      :: !(Maybe [ErrorProto])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'JobStatus' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'jsState'+--+-- * 'jsErrorResult'+--+-- * 'jsErrors'+jobStatus+    :: JobStatus+jobStatus =+    JobStatus'+    { _jsState = Nothing+    , _jsErrorResult = Nothing+    , _jsErrors = Nothing+    }++-- | [Output-only] Running state of the job.+jsState :: Lens' JobStatus (Maybe Text)+jsState = lens _jsState (\ s a -> s{_jsState = a})++-- | [Output-only] Final error result of the job. If present, indicates that+-- the job has completed and was unsuccessful.+jsErrorResult :: Lens' JobStatus (Maybe ErrorProto)+jsErrorResult+  = lens _jsErrorResult+      (\ s a -> s{_jsErrorResult = a})++-- | [Output-only] The first errors encountered during the running of the+-- job. The final message includes the number of errors that caused the+-- process to stop. Errors here do not necessarily mean that the job has+-- completed or was unsuccessful.+jsErrors :: Lens' JobStatus [ErrorProto]+jsErrors+  = lens _jsErrors (\ s a -> s{_jsErrors = a}) .+      _Default+      . _Coerce++instance FromJSON JobStatus where+        parseJSON+          = withObject "JobStatus"+              (\ o ->+                 JobStatus' <$>+                   (o .:? "state") <*> (o .:? "errorResult") <*>+                     (o .:? "errors" .!= mempty))++instance ToJSON JobStatus where+        toJSON JobStatus'{..}+          = object+              (catMaybes+                 [("state" .=) <$> _jsState,+                  ("errorResult" .=) <$> _jsErrorResult,+                  ("errors" .=) <$> _jsErrors])++-- | The labels associated with this table. You can use these to organize and+-- group your tables. Label keys and values can be no longer than 63+-- characters, can only contain lowercase letters, numeric characters,+-- underscores and dashes. International characters are allowed. Label+-- values are optional. Label keys must start with a letter and each label+-- in the list must have a different key.+--+-- /See:/ 'tableLabels' smart constructor.+newtype TableLabels = TableLabels'+    { _tlAddtional :: HashMap Text Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TableLabels' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tlAddtional'+tableLabels+    :: HashMap Text Text -- ^ 'tlAddtional'+    -> TableLabels+tableLabels pTlAddtional_ =+    TableLabels'+    { _tlAddtional = _Coerce # pTlAddtional_+    }++tlAddtional :: Lens' TableLabels (HashMap Text Text)+tlAddtional+  = lens _tlAddtional (\ s a -> s{_tlAddtional = a}) .+      _Coerce++instance FromJSON TableLabels where+        parseJSON+          = withObject "TableLabels"+              (\ o -> TableLabels' <$> (parseJSONObject o))++instance ToJSON TableLabels where+        toJSON = toJSON . _tlAddtional++--+-- /See:/ 'destinationTableProperties' smart constructor.+data DestinationTableProperties = DestinationTableProperties'+    { _dtpFriendlyName :: !(Maybe Text)+    , _dtpDescription  :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DestinationTableProperties' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dtpFriendlyName'+--+-- * 'dtpDescription'+destinationTableProperties+    :: DestinationTableProperties+destinationTableProperties =+    DestinationTableProperties'+    { _dtpFriendlyName = Nothing+    , _dtpDescription = Nothing+    }++-- | [Optional] The friendly name for the destination table. This will only+-- be used if the destination table is newly created. If the table already+-- exists and a value different than the current friendly name is provided,+-- the job will fail.+dtpFriendlyName :: Lens' DestinationTableProperties (Maybe Text)+dtpFriendlyName+  = lens _dtpFriendlyName+      (\ s a -> s{_dtpFriendlyName = a})++-- | [Optional] The description for the destination table. This will only be+-- used if the destination table is newly created. If the table already+-- exists and a value different than the current description is provided,+-- the job will fail.+dtpDescription :: Lens' DestinationTableProperties (Maybe Text)+dtpDescription+  = lens _dtpDescription+      (\ s a -> s{_dtpDescription = a})++instance FromJSON DestinationTableProperties where+        parseJSON+          = withObject "DestinationTableProperties"+              (\ o ->+                 DestinationTableProperties' <$>+                   (o .:? "friendlyName") <*> (o .:? "description"))++instance ToJSON DestinationTableProperties where+        toJSON DestinationTableProperties'{..}+          = object+              (catMaybes+                 [("friendlyName" .=) <$> _dtpFriendlyName,+                  ("description" .=) <$> _dtpDescription])++--+-- /See:/ 'dataSetAccessItem' smart constructor.+data DataSetAccessItem = DataSetAccessItem'+    { _dsaiGroupByEmail :: !(Maybe Text)+    , _dsaiDomain       :: !(Maybe Text)+    , _dsaiSpecialGroup :: !(Maybe Text)+    , _dsaiRole         :: !(Maybe Text)+    , _dsaiIAMMember    :: !(Maybe Text)+    , _dsaiView         :: !(Maybe TableReference)+    , _dsaiUserByEmail  :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DataSetAccessItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dsaiGroupByEmail'+--+-- * 'dsaiDomain'+--+-- * 'dsaiSpecialGroup'+--+-- * 'dsaiRole'+--+-- * 'dsaiIAMMember'+--+-- * 'dsaiView'+--+-- * 'dsaiUserByEmail'+dataSetAccessItem+    :: DataSetAccessItem+dataSetAccessItem =+    DataSetAccessItem'+    { _dsaiGroupByEmail = Nothing+    , _dsaiDomain = Nothing+    , _dsaiSpecialGroup = Nothing+    , _dsaiRole = Nothing+    , _dsaiIAMMember = Nothing+    , _dsaiView = Nothing+    , _dsaiUserByEmail = Nothing+    }++-- | [Pick one] An email address of a Google Group to grant access to. Maps+-- to IAM policy member \"group:GROUP\".+dsaiGroupByEmail :: Lens' DataSetAccessItem (Maybe Text)+dsaiGroupByEmail+  = lens _dsaiGroupByEmail+      (\ s a -> s{_dsaiGroupByEmail = a})++-- | [Pick one] A domain to grant access to. Any users signed in with the+-- domain specified will be granted the specified access. Example:+-- \"example.com\". Maps to IAM policy member \"domain:DOMAIN\".+dsaiDomain :: Lens' DataSetAccessItem (Maybe Text)+dsaiDomain+  = lens _dsaiDomain (\ s a -> s{_dsaiDomain = a})++-- | [Pick one] A special group to grant access to. Possible values include:+-- projectOwners: Owners of the enclosing project. projectReaders: Readers+-- of the enclosing project. projectWriters: Writers of the enclosing+-- project. allAuthenticatedUsers: All authenticated BigQuery users. Maps+-- to similarly-named IAM members.+dsaiSpecialGroup :: Lens' DataSetAccessItem (Maybe Text)+dsaiSpecialGroup+  = lens _dsaiSpecialGroup+      (\ s a -> s{_dsaiSpecialGroup = a})++-- | [Required] Describes the rights granted to the user specified by the+-- other member of the access object. The following string values are+-- supported: READER, WRITER, OWNER.+dsaiRole :: Lens' DataSetAccessItem (Maybe Text)+dsaiRole = lens _dsaiRole (\ s a -> s{_dsaiRole = a})++-- | [Pick one] Some other type of member that appears in the IAM Policy but+-- isn\'t a user, group, domain, or special group.+dsaiIAMMember :: Lens' DataSetAccessItem (Maybe Text)+dsaiIAMMember+  = lens _dsaiIAMMember+      (\ s a -> s{_dsaiIAMMember = a})++-- | [Pick one] A view from a different dataset to grant access to. Queries+-- executed against that view will have read access to tables in this+-- dataset. The role field is not required when this field is set. If that+-- view is updated by any user, access to the view needs to be granted+-- again via an update operation.+dsaiView :: Lens' DataSetAccessItem (Maybe TableReference)+dsaiView = lens _dsaiView (\ s a -> s{_dsaiView = a})++-- | [Pick one] An email address of a user to grant access to. For example:+-- fred\'example.com. Maps to IAM policy member \"user:EMAIL\" or+-- \"serviceAccount:EMAIL\".+dsaiUserByEmail :: Lens' DataSetAccessItem (Maybe Text)+dsaiUserByEmail+  = lens _dsaiUserByEmail+      (\ s a -> s{_dsaiUserByEmail = a})++instance FromJSON DataSetAccessItem where+        parseJSON+          = withObject "DataSetAccessItem"+              (\ o ->+                 DataSetAccessItem' <$>+                   (o .:? "groupByEmail") <*> (o .:? "domain") <*>+                     (o .:? "specialGroup")+                     <*> (o .:? "role")+                     <*> (o .:? "iamMember")+                     <*> (o .:? "view")+                     <*> (o .:? "userByEmail"))++instance ToJSON DataSetAccessItem where+        toJSON DataSetAccessItem'{..}+          = object+              (catMaybes+                 [("groupByEmail" .=) <$> _dsaiGroupByEmail,+                  ("domain" .=) <$> _dsaiDomain,+                  ("specialGroup" .=) <$> _dsaiSpecialGroup,+                  ("role" .=) <$> _dsaiRole,+                  ("iamMember" .=) <$> _dsaiIAMMember,+                  ("view" .=) <$> _dsaiView,+                  ("userByEmail" .=) <$> _dsaiUserByEmail])++--+-- /See:/ 'tableDataInsertAllResponse' smart constructor.+data TableDataInsertAllResponse = TableDataInsertAllResponse'+    { _tKind         :: !Text+    , _tInsertErrors :: !(Maybe [TableDataInsertAllResponseInsertErrorsItem])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TableDataInsertAllResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tKind'+--+-- * 'tInsertErrors'+tableDataInsertAllResponse+    :: TableDataInsertAllResponse+tableDataInsertAllResponse =+    TableDataInsertAllResponse'+    { _tKind = "bigquery#tableDataInsertAllResponse"+    , _tInsertErrors = Nothing+    }++-- | The resource type of the response.+tKind :: Lens' TableDataInsertAllResponse Text+tKind = lens _tKind (\ s a -> s{_tKind = a})++-- | An array of errors for rows that were not inserted.+tInsertErrors :: Lens' TableDataInsertAllResponse [TableDataInsertAllResponseInsertErrorsItem]+tInsertErrors+  = lens _tInsertErrors+      (\ s a -> s{_tInsertErrors = a})+      . _Default+      . _Coerce++instance FromJSON TableDataInsertAllResponse where+        parseJSON+          = withObject "TableDataInsertAllResponse"+              (\ o ->+                 TableDataInsertAllResponse' <$>+                   (o .:? "kind" .!=+                      "bigquery#tableDataInsertAllResponse")+                     <*> (o .:? "insertErrors" .!= mempty))++instance ToJSON TableDataInsertAllResponse where+        toJSON TableDataInsertAllResponse'{..}+          = object+              (catMaybes+                 [Just ("kind" .= _tKind),+                  ("insertErrors" .=) <$> _tInsertErrors])++--+-- /See:/ 'queryParameterType' smart constructor.+data QueryParameterType = QueryParameterType'+    { _qptStructTypes :: !(Maybe [QueryParameterTypeStructTypesItem])+    , _qptType        :: !(Maybe Text)+    , _qptArrayType   :: !(Maybe QueryParameterType)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'QueryParameterType' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'qptStructTypes'+--+-- * 'qptType'+--+-- * 'qptArrayType'+queryParameterType+    :: QueryParameterType+queryParameterType =+    QueryParameterType'+    { _qptStructTypes = Nothing+    , _qptType = Nothing+    , _qptArrayType = Nothing+    }++-- | [Optional] The types of the fields of this struct, in order, if this is+-- a struct.+qptStructTypes :: Lens' QueryParameterType [QueryParameterTypeStructTypesItem]+qptStructTypes+  = lens _qptStructTypes+      (\ s a -> s{_qptStructTypes = a})+      . _Default+      . _Coerce++-- | [Required] The top level type of this field.+qptType :: Lens' QueryParameterType (Maybe Text)+qptType = lens _qptType (\ s a -> s{_qptType = a})++-- | [Optional] The type of the array\'s elements, if this is an array.+qptArrayType :: Lens' QueryParameterType (Maybe QueryParameterType)+qptArrayType+  = lens _qptArrayType (\ s a -> s{_qptArrayType = a})++instance FromJSON QueryParameterType where+        parseJSON+          = withObject "QueryParameterType"+              (\ o ->+                 QueryParameterType' <$>+                   (o .:? "structTypes" .!= mempty) <*> (o .:? "type")+                     <*> (o .:? "arrayType"))++instance ToJSON QueryParameterType where+        toJSON QueryParameterType'{..}+          = object+              (catMaybes+                 [("structTypes" .=) <$> _qptStructTypes,+                  ("type" .=) <$> _qptType,+                  ("arrayType" .=) <$> _qptArrayType])++--+-- /See:/ 'table' smart constructor.+data Table = Table'+    { _tabMaterializedView          :: !(Maybe MaterializedViewDefinition)+    , _tabCreationTime              :: !(Maybe (Textual Int64))+    , _tabEtag                      :: !(Maybe Text)+    , _tabNumBytes                  :: !(Maybe (Textual Int64))+    , _tabClustering                :: !(Maybe Clustering)+    , _tabExternalDataConfiguration :: !(Maybe ExternalDataConfiguration)+    , _tabRangePartitioning         :: !(Maybe RangePartitioning)+    , _tabLocation                  :: !(Maybe Text)+    , _tabTableReference            :: !(Maybe TableReference)+    , _tabFriendlyName              :: !(Maybe Text)+    , _tabKind                      :: !Text+    , _tabLastModifiedTime          :: !(Maybe (Textual Word64))+    , _tabSchema                    :: !(Maybe TableSchema)+    , _tabStreamingBuffer           :: !(Maybe Streamingbuffer)+    , _tabSelfLink                  :: !(Maybe Text)+    , _tabRequirePartitionFilter    :: !Bool+    , _tabEncryptionConfiguration   :: !(Maybe EncryptionConfiguration)+    , _tabModel                     :: !(Maybe ModelDefinition)+    , _tabTimePartitioning          :: !(Maybe TimePartitioning)+    , _tabNumRows                   :: !(Maybe (Textual Word64))+    , _tabNumPhysicalBytes          :: !(Maybe (Textual Int64))+    , _tabView                      :: !(Maybe ViewDefinition)+    , _tabId                        :: !(Maybe Text)+    , _tabLabels                    :: !(Maybe TableLabels)+    , _tabType                      :: !(Maybe Text)+    , _tabNumLongTermBytes          :: !(Maybe (Textual Int64))+    , _tabExpirationTime            :: !(Maybe (Textual Int64))+    , _tabDescription               :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Table' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tabMaterializedView'+--+-- * 'tabCreationTime'+--+-- * 'tabEtag'+--+-- * 'tabNumBytes'+--+-- * 'tabClustering'+--+-- * 'tabExternalDataConfiguration'+--+-- * 'tabRangePartitioning'+--+-- * 'tabLocation'+--+-- * 'tabTableReference'+--+-- * 'tabFriendlyName'+--+-- * 'tabKind'+--+-- * 'tabLastModifiedTime'+--+-- * 'tabSchema'+--+-- * 'tabStreamingBuffer'+--+-- * 'tabSelfLink'+--+-- * 'tabRequirePartitionFilter'+--+-- * 'tabEncryptionConfiguration'+--+-- * 'tabModel'+--+-- * 'tabTimePartitioning'+--+-- * 'tabNumRows'+--+-- * 'tabNumPhysicalBytes'+--+-- * 'tabView'+--+-- * 'tabId'+--+-- * 'tabLabels'+--+-- * 'tabType'+--+-- * 'tabNumLongTermBytes'+--+-- * 'tabExpirationTime'+--+-- * 'tabDescription'+table+    :: Table+table =+    Table'+    { _tabMaterializedView = Nothing+    , _tabCreationTime = Nothing+    , _tabEtag = Nothing+    , _tabNumBytes = Nothing+    , _tabClustering = Nothing+    , _tabExternalDataConfiguration = Nothing+    , _tabRangePartitioning = Nothing+    , _tabLocation = Nothing+    , _tabTableReference = Nothing+    , _tabFriendlyName = Nothing+    , _tabKind = "bigquery#table"+    , _tabLastModifiedTime = Nothing+    , _tabSchema = Nothing+    , _tabStreamingBuffer = Nothing+    , _tabSelfLink = Nothing+    , _tabRequirePartitionFilter = False+    , _tabEncryptionConfiguration = Nothing+    , _tabModel = Nothing+    , _tabTimePartitioning = Nothing+    , _tabNumRows = Nothing+    , _tabNumPhysicalBytes = Nothing+    , _tabView = Nothing+    , _tabId = Nothing+    , _tabLabels = Nothing+    , _tabType = Nothing+    , _tabNumLongTermBytes = Nothing+    , _tabExpirationTime = Nothing+    , _tabDescription = Nothing+    }++-- | [Optional] Materialized view definition.+tabMaterializedView :: Lens' Table (Maybe MaterializedViewDefinition)+tabMaterializedView+  = lens _tabMaterializedView+      (\ s a -> s{_tabMaterializedView = a})++-- | [Output-only] The time when this table was created, in milliseconds+-- since the epoch.+tabCreationTime :: Lens' Table (Maybe Int64)+tabCreationTime+  = lens _tabCreationTime+      (\ s a -> s{_tabCreationTime = a})+      . mapping _Coerce++-- | [Output-only] A hash of the table metadata. Used to ensure there were no+-- concurrent modifications to the resource when attempting an update. Not+-- guaranteed to change when the table contents or the fields numRows,+-- numBytes, numLongTermBytes or lastModifiedTime change.+tabEtag :: Lens' Table (Maybe Text)+tabEtag = lens _tabEtag (\ s a -> s{_tabEtag = a})++-- | [Output-only] The size of this table in bytes, excluding any data in the+-- streaming buffer.+tabNumBytes :: Lens' Table (Maybe Int64)+tabNumBytes+  = lens _tabNumBytes (\ s a -> s{_tabNumBytes = a}) .+      mapping _Coerce++-- | [Beta] Clustering specification for the table. Must be specified with+-- partitioning, data in the table will be first partitioned and+-- subsequently clustered.+tabClustering :: Lens' Table (Maybe Clustering)+tabClustering+  = lens _tabClustering+      (\ s a -> s{_tabClustering = a})++-- | [Optional] Describes the data format, location, and other properties of+-- a table stored outside of BigQuery. By defining these properties, the+-- data source can then be queried as if it were a standard BigQuery table.+tabExternalDataConfiguration :: Lens' Table (Maybe ExternalDataConfiguration)+tabExternalDataConfiguration+  = lens _tabExternalDataConfiguration+      (\ s a -> s{_tabExternalDataConfiguration = a})++-- | [TrustedTester] Range partitioning specification for this table. Only+-- one of timePartitioning and rangePartitioning should be specified.+tabRangePartitioning :: Lens' Table (Maybe RangePartitioning)+tabRangePartitioning+  = lens _tabRangePartitioning+      (\ s a -> s{_tabRangePartitioning = a})++-- | [Output-only] The geographic location where the table resides. This+-- value is inherited from the dataset.+tabLocation :: Lens' Table (Maybe Text)+tabLocation+  = lens _tabLocation (\ s a -> s{_tabLocation = a})++-- | [Required] Reference describing the ID of this table.+tabTableReference :: Lens' Table (Maybe TableReference)+tabTableReference+  = lens _tabTableReference+      (\ s a -> s{_tabTableReference = a})++-- | [Optional] A descriptive name for this table.+tabFriendlyName :: Lens' Table (Maybe Text)+tabFriendlyName+  = lens _tabFriendlyName+      (\ s a -> s{_tabFriendlyName = a})++-- | [Output-only] The type of the resource.+tabKind :: Lens' Table Text+tabKind = lens _tabKind (\ s a -> s{_tabKind = a})++-- | [Output-only] The time when this table was last modified, in+-- milliseconds since the epoch.+tabLastModifiedTime :: Lens' Table (Maybe Word64)+tabLastModifiedTime+  = lens _tabLastModifiedTime+      (\ s a -> s{_tabLastModifiedTime = a})+      . mapping _Coerce++-- | [Optional] Describes the schema of this table.+tabSchema :: Lens' Table (Maybe TableSchema)+tabSchema+  = lens _tabSchema (\ s a -> s{_tabSchema = a})++-- | [Output-only] Contains information regarding this table\'s streaming+-- buffer, if one is present. This field will be absent if the table is not+-- being streamed to or if there is no data in the streaming buffer.+tabStreamingBuffer :: Lens' Table (Maybe Streamingbuffer)+tabStreamingBuffer+  = lens _tabStreamingBuffer+      (\ s a -> s{_tabStreamingBuffer = a})++-- | [Output-only] A URL that can be used to access this resource again.+tabSelfLink :: Lens' Table (Maybe Text)+tabSelfLink+  = lens _tabSelfLink (\ s a -> s{_tabSelfLink = a})++-- | [Beta] [Optional] If set to true, queries over this table require a+-- partition filter that can be used for partition elimination to be+-- specified.+tabRequirePartitionFilter :: Lens' Table Bool+tabRequirePartitionFilter+  = lens _tabRequirePartitionFilter+      (\ s a -> s{_tabRequirePartitionFilter = a})++-- | Custom encryption configuration (e.g., Cloud KMS keys).+tabEncryptionConfiguration :: Lens' Table (Maybe EncryptionConfiguration)+tabEncryptionConfiguration+  = lens _tabEncryptionConfiguration+      (\ s a -> s{_tabEncryptionConfiguration = a})++-- | [Output-only, Beta] Present iff this table represents a ML model.+-- Describes the training information for the model, and it is required to+-- run \'PREDICT\' queries.+tabModel :: Lens' Table (Maybe ModelDefinition)+tabModel = lens _tabModel (\ s a -> s{_tabModel = a})++-- | Time-based partitioning specification for this table. Only one of+-- timePartitioning and rangePartitioning should be specified.+tabTimePartitioning :: Lens' Table (Maybe TimePartitioning)+tabTimePartitioning+  = lens _tabTimePartitioning+      (\ s a -> s{_tabTimePartitioning = a})++-- | [Output-only] The number of rows of data in this table, excluding any+-- data in the streaming buffer.+tabNumRows :: Lens' Table (Maybe Word64)+tabNumRows+  = lens _tabNumRows (\ s a -> s{_tabNumRows = a}) .+      mapping _Coerce++-- | [Output-only] [TrustedTester] The physical size of this table in bytes,+-- excluding any data in the streaming buffer. This includes compression+-- and storage used for time travel.+tabNumPhysicalBytes :: Lens' Table (Maybe Int64)+tabNumPhysicalBytes+  = lens _tabNumPhysicalBytes+      (\ s a -> s{_tabNumPhysicalBytes = a})+      . mapping _Coerce++-- | [Optional] The view definition.+tabView :: Lens' Table (Maybe ViewDefinition)+tabView = lens _tabView (\ s a -> s{_tabView = a})++-- | [Output-only] An opaque ID uniquely identifying the table.+tabId :: Lens' Table (Maybe Text)+tabId = lens _tabId (\ s a -> s{_tabId = a})++-- | The labels associated with this table. You can use these to organize and+-- group your tables. Label keys and values can be no longer than 63+-- characters, can only contain lowercase letters, numeric characters,+-- underscores and dashes. International characters are allowed. Label+-- values are optional. Label keys must start with a letter and each label+-- in the list must have a different key.+tabLabels :: Lens' Table (Maybe TableLabels)+tabLabels+  = lens _tabLabels (\ s a -> s{_tabLabels = a})++-- | [Output-only] Describes the table type. The following values are+-- supported: TABLE: A normal BigQuery table. VIEW: A virtual table defined+-- by a SQL query. [TrustedTester] MATERIALIZED_VIEW: SQL query whose+-- result is persisted. EXTERNAL: A table that references data stored in an+-- external storage system, such as Google Cloud Storage. The default value+-- is TABLE.+tabType :: Lens' Table (Maybe Text)+tabType = lens _tabType (\ s a -> s{_tabType = a})++-- | [Output-only] The number of bytes in the table that are considered+-- \"long-term storage\".+tabNumLongTermBytes :: Lens' Table (Maybe Int64)+tabNumLongTermBytes+  = lens _tabNumLongTermBytes+      (\ s a -> s{_tabNumLongTermBytes = a})+      . mapping _Coerce++-- | [Optional] The time when this table expires, in milliseconds since the+-- epoch. If not present, the table will persist indefinitely. Expired+-- tables will be deleted and their storage reclaimed. The+-- defaultTableExpirationMs property of the encapsulating dataset can be+-- used to set a default expirationTime on newly created tables.+tabExpirationTime :: Lens' Table (Maybe Int64)+tabExpirationTime+  = lens _tabExpirationTime+      (\ s a -> s{_tabExpirationTime = a})+      . mapping _Coerce++-- | [Optional] A user-friendly description of this table.+tabDescription :: Lens' Table (Maybe Text)+tabDescription+  = lens _tabDescription+      (\ s a -> s{_tabDescription = a})++instance FromJSON Table where+        parseJSON+          = withObject "Table"+              (\ o ->+                 Table' <$>+                   (o .:? "materializedView") <*> (o .:? "creationTime")+                     <*> (o .:? "etag")+                     <*> (o .:? "numBytes")+                     <*> (o .:? "clustering")+                     <*> (o .:? "externalDataConfiguration")+                     <*> (o .:? "rangePartitioning")+                     <*> (o .:? "location")+                     <*> (o .:? "tableReference")+                     <*> (o .:? "friendlyName")+                     <*> (o .:? "kind" .!= "bigquery#table")+                     <*> (o .:? "lastModifiedTime")+                     <*> (o .:? "schema")+                     <*> (o .:? "streamingBuffer")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "requirePartitionFilter" .!= False)+                     <*> (o .:? "encryptionConfiguration")+                     <*> (o .:? "model")+                     <*> (o .:? "timePartitioning")+                     <*> (o .:? "numRows")+                     <*> (o .:? "numPhysicalBytes")+                     <*> (o .:? "view")+                     <*> (o .:? "id")+                     <*> (o .:? "labels")+                     <*> (o .:? "type")+                     <*> (o .:? "numLongTermBytes")+                     <*> (o .:? "expirationTime")+                     <*> (o .:? "description"))++instance ToJSON Table where+        toJSON Table'{..}+          = object+              (catMaybes+                 [("materializedView" .=) <$> _tabMaterializedView,+                  ("creationTime" .=) <$> _tabCreationTime,+                  ("etag" .=) <$> _tabEtag,+                  ("numBytes" .=) <$> _tabNumBytes,+                  ("clustering" .=) <$> _tabClustering,+                  ("externalDataConfiguration" .=) <$>+                    _tabExternalDataConfiguration,+                  ("rangePartitioning" .=) <$> _tabRangePartitioning,+                  ("location" .=) <$> _tabLocation,+                  ("tableReference" .=) <$> _tabTableReference,+                  ("friendlyName" .=) <$> _tabFriendlyName,+                  Just ("kind" .= _tabKind),+                  ("lastModifiedTime" .=) <$> _tabLastModifiedTime,+                  ("schema" .=) <$> _tabSchema,+                  ("streamingBuffer" .=) <$> _tabStreamingBuffer,+                  ("selfLink" .=) <$> _tabSelfLink,+                  Just+                    ("requirePartitionFilter" .=+                       _tabRequirePartitionFilter),+                  ("encryptionConfiguration" .=) <$>+                    _tabEncryptionConfiguration,+                  ("model" .=) <$> _tabModel,+                  ("timePartitioning" .=) <$> _tabTimePartitioning,+                  ("numRows" .=) <$> _tabNumRows,+                  ("numPhysicalBytes" .=) <$> _tabNumPhysicalBytes,+                  ("view" .=) <$> _tabView, ("id" .=) <$> _tabId,+                  ("labels" .=) <$> _tabLabels,+                  ("type" .=) <$> _tabType,+                  ("numLongTermBytes" .=) <$> _tabNumLongTermBytes,+                  ("expirationTime" .=) <$> _tabExpirationTime,+                  ("description" .=) <$> _tabDescription])++--+-- /See:/ 'errorProto' smart constructor.+data ErrorProto = ErrorProto'+    { _epDebugInfo :: !(Maybe Text)+    , _epLocation  :: !(Maybe Text)+    , _epReason    :: !(Maybe Text)+    , _epMessage   :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ErrorProto' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'epDebugInfo'+--+-- * 'epLocation'+--+-- * 'epReason'+--+-- * 'epMessage'+errorProto+    :: ErrorProto+errorProto =+    ErrorProto'+    { _epDebugInfo = Nothing+    , _epLocation = Nothing+    , _epReason = Nothing+    , _epMessage = Nothing+    }++-- | Debugging information. This property is internal to Google and should+-- not be used.+epDebugInfo :: Lens' ErrorProto (Maybe Text)+epDebugInfo+  = lens _epDebugInfo (\ s a -> s{_epDebugInfo = a})++-- | Specifies where the error occurred, if present.+epLocation :: Lens' ErrorProto (Maybe Text)+epLocation+  = lens _epLocation (\ s a -> s{_epLocation = a})++-- | A short error code that summarizes the error.+epReason :: Lens' ErrorProto (Maybe Text)+epReason = lens _epReason (\ s a -> s{_epReason = a})++-- | A human-readable description of the error.+epMessage :: Lens' ErrorProto (Maybe Text)+epMessage+  = lens _epMessage (\ s a -> s{_epMessage = a})++instance FromJSON ErrorProto where+        parseJSON+          = withObject "ErrorProto"+              (\ o ->+                 ErrorProto' <$>+                   (o .:? "debugInfo") <*> (o .:? "location") <*>+                     (o .:? "reason")+                     <*> (o .:? "message"))++instance ToJSON ErrorProto where+        toJSON ErrorProto'{..}+          = object+              (catMaybes+                 [("debugInfo" .=) <$> _epDebugInfo,+                  ("location" .=) <$> _epLocation,+                  ("reason" .=) <$> _epReason,+                  ("message" .=) <$> _epMessage])++--+-- /See:/ 'csvOptions' smart constructor.+data CSVOptions = CSVOptions'+    { _coSkipLeadingRows     :: !(Maybe (Textual Int64))+    , _coAllowJaggedRows     :: !(Maybe Bool)+    , _coAllowQuotedNewlines :: !(Maybe Bool)+    , _coQuote               :: !Text+    , _coEncoding            :: !(Maybe Text)+    , _coFieldDelimiter      :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CSVOptions' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'coSkipLeadingRows'+--+-- * 'coAllowJaggedRows'+--+-- * 'coAllowQuotedNewlines'+--+-- * 'coQuote'+--+-- * 'coEncoding'+--+-- * 'coFieldDelimiter'+csvOptions+    :: CSVOptions+csvOptions =+    CSVOptions'+    { _coSkipLeadingRows = Nothing+    , _coAllowJaggedRows = Nothing+    , _coAllowQuotedNewlines = Nothing+    , _coQuote = "\""+    , _coEncoding = Nothing+    , _coFieldDelimiter = Nothing+    }++-- | [Optional] The number of rows at the top of a CSV file that BigQuery+-- will skip when reading the data. The default value is 0. This property+-- is useful if you have header rows in the file that should be skipped.+coSkipLeadingRows :: Lens' CSVOptions (Maybe Int64)+coSkipLeadingRows+  = lens _coSkipLeadingRows+      (\ s a -> s{_coSkipLeadingRows = a})+      . mapping _Coerce++-- | [Optional] Indicates if BigQuery should accept rows that are missing+-- trailing optional columns. If true, BigQuery treats missing trailing+-- columns as null values. If false, records with missing trailing columns+-- are treated as bad records, and if there are too many bad records, an+-- invalid error is returned in the job result. The default value is false.+coAllowJaggedRows :: Lens' CSVOptions (Maybe Bool)+coAllowJaggedRows+  = lens _coAllowJaggedRows+      (\ s a -> s{_coAllowJaggedRows = a})++-- | [Optional] Indicates if BigQuery should allow quoted data sections that+-- contain newline characters in a CSV file. The default value is false.+coAllowQuotedNewlines :: Lens' CSVOptions (Maybe Bool)+coAllowQuotedNewlines+  = lens _coAllowQuotedNewlines+      (\ s a -> s{_coAllowQuotedNewlines = a})++-- | [Optional] The value that is used to quote data sections in a CSV file.+-- BigQuery converts the string to ISO-8859-1 encoding, and then uses the+-- first byte of the encoded string to split the data in its raw, binary+-- state. The default value is a double-quote (\'\"\'). If your data does+-- not contain quoted sections, set the property value to an empty string.+-- If your data contains quoted newline characters, you must also set the+-- allowQuotedNewlines property to true.+coQuote :: Lens' CSVOptions Text+coQuote = lens _coQuote (\ s a -> s{_coQuote = a})++-- | [Optional] The character encoding of the data. The supported values are+-- UTF-8 or ISO-8859-1. The default value is UTF-8. BigQuery decodes the+-- data after the raw, binary data has been split using the values of the+-- quote and fieldDelimiter properties.+coEncoding :: Lens' CSVOptions (Maybe Text)+coEncoding+  = lens _coEncoding (\ s a -> s{_coEncoding = a})++-- | [Optional] The separator for fields in a CSV file. BigQuery converts the+-- string to ISO-8859-1 encoding, and then uses the first byte of the+-- encoded string to split the data in its raw, binary state. BigQuery also+-- supports the escape sequence \"\\t\" to specify a tab separator. The+-- default value is a comma (\',\').+coFieldDelimiter :: Lens' CSVOptions (Maybe Text)+coFieldDelimiter+  = lens _coFieldDelimiter+      (\ s a -> s{_coFieldDelimiter = a})++instance FromJSON CSVOptions where+        parseJSON+          = withObject "CSVOptions"+              (\ o ->+                 CSVOptions' <$>+                   (o .:? "skipLeadingRows") <*>+                     (o .:? "allowJaggedRows")+                     <*> (o .:? "allowQuotedNewlines")+                     <*> (o .:? "quote" .!= "\"")+                     <*> (o .:? "encoding")+                     <*> (o .:? "fieldDelimiter"))++instance ToJSON CSVOptions where+        toJSON CSVOptions'{..}+          = object+              (catMaybes+                 [("skipLeadingRows" .=) <$> _coSkipLeadingRows,+                  ("allowJaggedRows" .=) <$> _coAllowJaggedRows,+                  ("allowQuotedNewlines" .=) <$>+                    _coAllowQuotedNewlines,+                  Just ("quote" .= _coQuote),+                  ("encoding" .=) <$> _coEncoding,+                  ("fieldDelimiter" .=) <$> _coFieldDelimiter])++--+-- /See:/ 'jobStatistics3' smart constructor.+data JobStatistics3 = JobStatistics3'+    { _jsInputFiles     :: !(Maybe (Textual Int64))+    , _jsOutputRows     :: !(Maybe (Textual Int64))+    , _jsOutputBytes    :: !(Maybe (Textual Int64))+    , _jsInputFileBytes :: !(Maybe (Textual Int64))+    , _jsBadRecords     :: !(Maybe (Textual Int64))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'JobStatistics3' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'jsInputFiles'+--+-- * 'jsOutputRows'+--+-- * 'jsOutputBytes'+--+-- * 'jsInputFileBytes'+--+-- * 'jsBadRecords'+jobStatistics3+    :: JobStatistics3+jobStatistics3 =+    JobStatistics3'+    { _jsInputFiles = Nothing+    , _jsOutputRows = Nothing+    , _jsOutputBytes = Nothing+    , _jsInputFileBytes = Nothing+    , _jsBadRecords = Nothing+    }++-- | [Output-only] Number of source files in a load job.+jsInputFiles :: Lens' JobStatistics3 (Maybe Int64)+jsInputFiles+  = lens _jsInputFiles (\ s a -> s{_jsInputFiles = a})+      . mapping _Coerce++-- | [Output-only] Number of rows imported in a load job. Note that while an+-- import job is in the running state, this value may change.+jsOutputRows :: Lens' JobStatistics3 (Maybe Int64)+jsOutputRows+  = lens _jsOutputRows (\ s a -> s{_jsOutputRows = a})+      . mapping _Coerce++-- | [Output-only] Size of the loaded data in bytes. Note that while a load+-- job is in the running state, this value may change.+jsOutputBytes :: Lens' JobStatistics3 (Maybe Int64)+jsOutputBytes+  = lens _jsOutputBytes+      (\ s a -> s{_jsOutputBytes = a})+      . mapping _Coerce++-- | [Output-only] Number of bytes of source data in a load job.+jsInputFileBytes :: Lens' JobStatistics3 (Maybe Int64)+jsInputFileBytes+  = lens _jsInputFileBytes+      (\ s a -> s{_jsInputFileBytes = a})+      . mapping _Coerce++-- | [Output-only] The number of bad records encountered. Note that if the+-- job has failed because of more bad records encountered than the maximum+-- allowed in the load job configuration, then this number can be less than+-- the total number of bad records present in the input data.+jsBadRecords :: Lens' JobStatistics3 (Maybe Int64)+jsBadRecords+  = lens _jsBadRecords (\ s a -> s{_jsBadRecords = a})+      . mapping _Coerce++instance FromJSON JobStatistics3 where+        parseJSON+          = withObject "JobStatistics3"+              (\ o ->+                 JobStatistics3' <$>+                   (o .:? "inputFiles") <*> (o .:? "outputRows") <*>+                     (o .:? "outputBytes")+                     <*> (o .:? "inputFileBytes")+                     <*> (o .:? "badRecords"))++instance ToJSON JobStatistics3 where+        toJSON JobStatistics3'{..}+          = object+              (catMaybes+                 [("inputFiles" .=) <$> _jsInputFiles,+                  ("outputRows" .=) <$> _jsOutputRows,+                  ("outputBytes" .=) <$> _jsOutputBytes,+                  ("inputFileBytes" .=) <$> _jsInputFileBytes,+                  ("badRecords" .=) <$> _jsBadRecords])++--+-- /See:/ 'queryResponse' smart constructor.+data QueryResponse = QueryResponse'+    { _qJobReference        :: !(Maybe JobReference)+    , _qKind                :: !Text+    , _qSchema              :: !(Maybe TableSchema)+    , _qTotalBytesProcessed :: !(Maybe (Textual Int64))+    , _qRows                :: !(Maybe [TableRow])+    , _qPageToken           :: !(Maybe Text)+    , _qNumDmlAffectedRows  :: !(Maybe (Textual Int64))+    , _qTotalRows           :: !(Maybe (Textual Word64))+    , _qErrors              :: !(Maybe [ErrorProto])+    , _qJobComplete         :: !(Maybe Bool)+    , _qCacheHit            :: !(Maybe Bool)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'QueryResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'qJobReference'+--+-- * 'qKind'+--+-- * 'qSchema'+--+-- * 'qTotalBytesProcessed'+--+-- * 'qRows'+--+-- * 'qPageToken'+--+-- * 'qNumDmlAffectedRows'+--+-- * 'qTotalRows'+--+-- * 'qErrors'+--+-- * 'qJobComplete'+--+-- * 'qCacheHit'+queryResponse+    :: QueryResponse+queryResponse =+    QueryResponse'+    { _qJobReference = Nothing+    , _qKind = "bigquery#queryResponse"+    , _qSchema = Nothing+    , _qTotalBytesProcessed = Nothing+    , _qRows = Nothing+    , _qPageToken = Nothing+    , _qNumDmlAffectedRows = Nothing+    , _qTotalRows = Nothing+    , _qErrors = Nothing+    , _qJobComplete = Nothing+    , _qCacheHit = Nothing+    }++-- | Reference to the Job that was created to run the query. This field will+-- be present even if the original request timed out, in which case+-- GetQueryResults can be used to read the results once the query has+-- completed. Since this API only returns the first page of results,+-- subsequent pages can be fetched via the same mechanism+-- (GetQueryResults).+qJobReference :: Lens' QueryResponse (Maybe JobReference)+qJobReference+  = lens _qJobReference+      (\ s a -> s{_qJobReference = a})++-- | The resource type.+qKind :: Lens' QueryResponse Text+qKind = lens _qKind (\ s a -> s{_qKind = a})++-- | The schema of the results. Present only when the query completes+-- successfully.+qSchema :: Lens' QueryResponse (Maybe TableSchema)+qSchema = lens _qSchema (\ s a -> s{_qSchema = a})++-- | The total number of bytes processed for this query. If this query was a+-- dry run, this is the number of bytes that would be processed if the+-- query were run.+qTotalBytesProcessed :: Lens' QueryResponse (Maybe Int64)+qTotalBytesProcessed+  = lens _qTotalBytesProcessed+      (\ s a -> s{_qTotalBytesProcessed = a})+      . mapping _Coerce++-- | An object with as many results as can be contained within the maximum+-- permitted reply size. To get any additional rows, you can call+-- GetQueryResults and specify the jobReference returned above.+qRows :: Lens' QueryResponse [TableRow]+qRows+  = lens _qRows (\ s a -> s{_qRows = a}) . _Default .+      _Coerce++-- | A token used for paging results.+qPageToken :: Lens' QueryResponse (Maybe Text)+qPageToken+  = lens _qPageToken (\ s a -> s{_qPageToken = a})++-- | [Output-only] The number of rows affected by a DML statement. Present+-- only for DML statements INSERT, UPDATE or DELETE.+qNumDmlAffectedRows :: Lens' QueryResponse (Maybe Int64)+qNumDmlAffectedRows+  = lens _qNumDmlAffectedRows+      (\ s a -> s{_qNumDmlAffectedRows = a})+      . mapping _Coerce++-- | The total number of rows in the complete query result set, which can be+-- more than the number of rows in this single page of results.+qTotalRows :: Lens' QueryResponse (Maybe Word64)+qTotalRows+  = lens _qTotalRows (\ s a -> s{_qTotalRows = a}) .+      mapping _Coerce++-- | [Output-only] The first errors or warnings encountered during the+-- running of the job. The final message includes the number of errors that+-- caused the process to stop. Errors here do not necessarily mean that the+-- job has completed or was unsuccessful.+qErrors :: Lens' QueryResponse [ErrorProto]+qErrors+  = lens _qErrors (\ s a -> s{_qErrors = a}) . _Default+      . _Coerce++-- | Whether the query has completed or not. If rows or totalRows are+-- present, this will always be true. If this is false, totalRows will not+-- be available.+qJobComplete :: Lens' QueryResponse (Maybe Bool)+qJobComplete+  = lens _qJobComplete (\ s a -> s{_qJobComplete = a})++-- | Whether the query result was fetched from the query cache.+qCacheHit :: Lens' QueryResponse (Maybe Bool)+qCacheHit+  = lens _qCacheHit (\ s a -> s{_qCacheHit = a})++instance FromJSON QueryResponse where+        parseJSON+          = withObject "QueryResponse"+              (\ o ->+                 QueryResponse' <$>+                   (o .:? "jobReference") <*>+                     (o .:? "kind" .!= "bigquery#queryResponse")+                     <*> (o .:? "schema")+                     <*> (o .:? "totalBytesProcessed")+                     <*> (o .:? "rows" .!= mempty)+                     <*> (o .:? "pageToken")+                     <*> (o .:? "numDmlAffectedRows")+                     <*> (o .:? "totalRows")+                     <*> (o .:? "errors" .!= mempty)+                     <*> (o .:? "jobComplete")+                     <*> (o .:? "cacheHit"))++instance ToJSON QueryResponse where+        toJSON QueryResponse'{..}+          = object+              (catMaybes+                 [("jobReference" .=) <$> _qJobReference,+                  Just ("kind" .= _qKind), ("schema" .=) <$> _qSchema,+                  ("totalBytesProcessed" .=) <$> _qTotalBytesProcessed,+                  ("rows" .=) <$> _qRows,+                  ("pageToken" .=) <$> _qPageToken,+                  ("numDmlAffectedRows" .=) <$> _qNumDmlAffectedRows,+                  ("totalRows" .=) <$> _qTotalRows,+                  ("errors" .=) <$> _qErrors,+                  ("jobComplete" .=) <$> _qJobComplete,+                  ("cacheHit" .=) <$> _qCacheHit])++-- | The labels associated with this dataset. You can use these to organize+-- and group your datasets.+--+-- /See:/ 'dataSetListDataSetsItemLabels' smart constructor.+newtype DataSetListDataSetsItemLabels = DataSetListDataSetsItemLabels'+    { _dsldsilAddtional :: HashMap Text Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DataSetListDataSetsItemLabels' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dsldsilAddtional'+dataSetListDataSetsItemLabels+    :: HashMap Text Text -- ^ 'dsldsilAddtional'+    -> DataSetListDataSetsItemLabels+dataSetListDataSetsItemLabels pDsldsilAddtional_ =+    DataSetListDataSetsItemLabels'+    { _dsldsilAddtional = _Coerce # pDsldsilAddtional_+    }++dsldsilAddtional :: Lens' DataSetListDataSetsItemLabels (HashMap Text Text)+dsldsilAddtional+  = lens _dsldsilAddtional+      (\ s a -> s{_dsldsilAddtional = a})+      . _Coerce++instance FromJSON DataSetListDataSetsItemLabels where+        parseJSON+          = withObject "DataSetListDataSetsItemLabels"+              (\ o ->+                 DataSetListDataSetsItemLabels' <$>+                   (parseJSONObject o))++instance ToJSON DataSetListDataSetsItemLabels where+        toJSON = toJSON . _dsldsilAddtional++--+-- /See:/ 'trainingRun' smart constructor.+data TrainingRun = TrainingRun'+    { _trState            :: !(Maybe Text)+    , _trStartTime        :: !(Maybe DateTime')+    , _trIterationResults :: !(Maybe [IterationResult])+    , _trTrainingOptions  :: !(Maybe TrainingRunTrainingOptions)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TrainingRun' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'trState'+--+-- * 'trStartTime'+--+-- * 'trIterationResults'+--+-- * 'trTrainingOptions'+trainingRun+    :: TrainingRun+trainingRun =+    TrainingRun'+    { _trState = Nothing+    , _trStartTime = Nothing+    , _trIterationResults = Nothing+    , _trTrainingOptions = Nothing+    }++-- | [Output-only, Beta] Different state applicable for a training run. IN+-- PROGRESS: Training run is in progress. FAILED: Training run ended due to+-- a non-retryable failure. SUCCEEDED: Training run successfully completed.+-- CANCELLED: Training run cancelled by the user.+trState :: Lens' TrainingRun (Maybe Text)+trState = lens _trState (\ s a -> s{_trState = a})++-- | [Output-only, Beta] Training run start time in milliseconds since the+-- epoch.+trStartTime :: Lens' TrainingRun (Maybe UTCTime)+trStartTime+  = lens _trStartTime (\ s a -> s{_trStartTime = a}) .+      mapping _DateTime++-- | [Output-only, Beta] List of each iteration results.+trIterationResults :: Lens' TrainingRun [IterationResult]+trIterationResults+  = lens _trIterationResults+      (\ s a -> s{_trIterationResults = a})+      . _Default+      . _Coerce++-- | [Output-only, Beta] Training options used by this training run. These+-- options are mutable for subsequent training runs. Default values are+-- explicitly stored for options not specified in the input query of the+-- first training run. For subsequent training runs, any option not+-- explicitly specified in the input query will be copied from the previous+-- training run.+trTrainingOptions :: Lens' TrainingRun (Maybe TrainingRunTrainingOptions)+trTrainingOptions+  = lens _trTrainingOptions+      (\ s a -> s{_trTrainingOptions = a})++instance FromJSON TrainingRun where+        parseJSON+          = withObject "TrainingRun"+              (\ o ->+                 TrainingRun' <$>+                   (o .:? "state") <*> (o .:? "startTime") <*>+                     (o .:? "iterationResults" .!= mempty)+                     <*> (o .:? "trainingOptions"))++instance ToJSON TrainingRun where+        toJSON TrainingRun'{..}+          = object+              (catMaybes+                 [("state" .=) <$> _trState,+                  ("startTime" .=) <$> _trStartTime,+                  ("iterationResults" .=) <$> _trIterationResults,+                  ("trainingOptions" .=) <$> _trTrainingOptions])++-- | Additional details for a view.+--+-- /See:/ 'tableListTablesItemView' smart constructor.+newtype TableListTablesItemView = TableListTablesItemView'+    { _tltivUseLegacySQL :: Maybe Bool+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TableListTablesItemView' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tltivUseLegacySQL'+tableListTablesItemView+    :: TableListTablesItemView+tableListTablesItemView =+    TableListTablesItemView'+    { _tltivUseLegacySQL = Nothing+    }++-- | True if view is defined in legacy SQL dialect, false if in standard SQL.+tltivUseLegacySQL :: Lens' TableListTablesItemView (Maybe Bool)+tltivUseLegacySQL+  = lens _tltivUseLegacySQL+      (\ s a -> s{_tltivUseLegacySQL = a})++instance FromJSON TableListTablesItemView where+        parseJSON+          = withObject "TableListTablesItemView"+              (\ o ->+                 TableListTablesItemView' <$> (o .:? "useLegacySql"))++instance ToJSON TableListTablesItemView where+        toJSON TableListTablesItemView'{..}+          = object+              (catMaybes+                 [("useLegacySql" .=) <$> _tltivUseLegacySQL])++-- | The labels associated with this table. You can use these to organize and+-- group your tables. -- -- /See:/ 'tableListTablesItemLabels' smart constructor. newtype TableListTablesItemLabels = TableListTablesItemLabels'
gen/Network/Google/BigQuery/Types/Sum.hs view
@@ -16,7 +16,7 @@ -- module Network.Google.BigQuery.Types.Sum where -import           Network.Google.Prelude+import           Network.Google.Prelude hiding (Bytes)  -- | Restrict information returned to a set of selected fields data JobsListProjection
gen/Network/Google/Resource/BigQuery/Jobs/Cancel.hs view
@@ -36,6 +36,7 @@      -- * Request Lenses     , jcJobId+    , jcLocation     , jcProjectId     ) where @@ -52,8 +53,9 @@              "jobs" :>                Capture "jobId" Text :>                  "cancel" :>-                   QueryParam "alt" AltJSON :>-                     Post '[JSON] JobCancelResponse+                   QueryParam "location" Text :>+                     QueryParam "alt" AltJSON :>+                       Post '[JSON] JobCancelResponse  -- | Requests that a job be cancelled. This call will return immediately, and -- the client will need to poll for the job status to see if the cancel@@ -62,6 +64,7 @@ -- /See:/ 'jobsCancel' smart constructor. data JobsCancel = JobsCancel'     { _jcJobId     :: !Text+    , _jcLocation  :: !(Maybe Text)     , _jcProjectId :: !Text     } deriving (Eq,Show,Data,Typeable,Generic) @@ -71,6 +74,8 @@ -- -- * 'jcJobId' --+-- * 'jcLocation'+-- -- * 'jcProjectId' jobsCancel     :: Text -- ^ 'jcJobId'@@ -79,6 +84,7 @@ jobsCancel pJcJobId_ pJcProjectId_ =     JobsCancel'     { _jcJobId = pJcJobId_+    , _jcLocation = Nothing     , _jcProjectId = pJcProjectId_     } @@ -86,6 +92,13 @@ jcJobId :: Lens' JobsCancel Text jcJobId = lens _jcJobId (\ s a -> s{_jcJobId = a}) +-- | The geographic location of the job. Required except for US and EU. See+-- details at+-- https:\/\/cloud.google.com\/bigquery\/docs\/locations#specifying_your_location.+jcLocation :: Lens' JobsCancel (Maybe Text)+jcLocation+  = lens _jcLocation (\ s a -> s{_jcLocation = a})+ -- | [Required] Project ID of the job to cancel jcProjectId :: Lens' JobsCancel Text jcProjectId@@ -97,7 +110,7 @@              '["https://www.googleapis.com/auth/bigquery",                "https://www.googleapis.com/auth/cloud-platform"]         requestClient JobsCancel'{..}-          = go _jcProjectId _jcJobId (Just AltJSON)+          = go _jcProjectId _jcJobId _jcLocation (Just AltJSON)               bigQueryService           where go                   = buildClient (Proxy :: Proxy JobsCancelResource)
gen/Network/Google/Resource/BigQuery/Jobs/Get.hs view
@@ -36,6 +36,7 @@      -- * Request Lenses     , jgJobId+    , jgLocation     , jgProjectId     ) where @@ -51,7 +52,8 @@            Capture "projectId" Text :>              "jobs" :>                Capture "jobId" Text :>-                 QueryParam "alt" AltJSON :> Get '[JSON] Job+                 QueryParam "location" Text :>+                   QueryParam "alt" AltJSON :> Get '[JSON] Job  -- | Returns information about a specific job. Job information is available -- for a six month period after creation. Requires that you\'re the person@@ -60,6 +62,7 @@ -- /See:/ 'jobsGet' smart constructor. data JobsGet = JobsGet'     { _jgJobId     :: !Text+    , _jgLocation  :: !(Maybe Text)     , _jgProjectId :: !Text     } deriving (Eq,Show,Data,Typeable,Generic) @@ -69,6 +72,8 @@ -- -- * 'jgJobId' --+-- * 'jgLocation'+-- -- * 'jgProjectId' jobsGet     :: Text -- ^ 'jgJobId'@@ -77,6 +82,7 @@ jobsGet pJgJobId_ pJgProjectId_ =     JobsGet'     { _jgJobId = pJgJobId_+    , _jgLocation = Nothing     , _jgProjectId = pJgProjectId_     } @@ -84,6 +90,13 @@ jgJobId :: Lens' JobsGet Text jgJobId = lens _jgJobId (\ s a -> s{_jgJobId = a}) +-- | The geographic location of the job. Required except for US and EU. See+-- details at+-- https:\/\/cloud.google.com\/bigquery\/docs\/locations#specifying_your_location.+jgLocation :: Lens' JobsGet (Maybe Text)+jgLocation+  = lens _jgLocation (\ s a -> s{_jgLocation = a})+ -- | [Required] Project ID of the requested job jgProjectId :: Lens' JobsGet Text jgProjectId@@ -96,7 +109,7 @@                "https://www.googleapis.com/auth/cloud-platform",                "https://www.googleapis.com/auth/cloud-platform.read-only"]         requestClient JobsGet'{..}-          = go _jgProjectId _jgJobId (Just AltJSON)+          = go _jgProjectId _jgJobId _jgLocation (Just AltJSON)               bigQueryService           where go                   = buildClient (Proxy :: Proxy JobsGetResource) mempty
gen/Network/Google/Resource/BigQuery/Jobs/GetQueryResults.hs view
@@ -34,6 +34,7 @@      -- * Request Lenses     , jgqrJobId+    , jgqrLocation     , jgqrTimeoutMs     , jgqrPageToken     , jgqrProjectId@@ -53,18 +54,20 @@            Capture "projectId" Text :>              "queries" :>                Capture "jobId" Text :>-                 QueryParam "timeoutMs" (Textual Word32) :>-                   QueryParam "pageToken" Text :>-                     QueryParam "startIndex" (Textual Word64) :>-                       QueryParam "maxResults" (Textual Word32) :>-                         QueryParam "alt" AltJSON :>-                           Get '[JSON] GetQueryResultsResponse+                 QueryParam "location" Text :>+                   QueryParam "timeoutMs" (Textual Word32) :>+                     QueryParam "pageToken" Text :>+                       QueryParam "startIndex" (Textual Word64) :>+                         QueryParam "maxResults" (Textual Word32) :>+                           QueryParam "alt" AltJSON :>+                             Get '[JSON] GetQueryResultsResponse  -- | Retrieves the results of a query job. -- -- /See:/ 'jobsGetQueryResults' smart constructor. data JobsGetQueryResults = JobsGetQueryResults'     { _jgqrJobId      :: !Text+    , _jgqrLocation   :: !(Maybe Text)     , _jgqrTimeoutMs  :: !(Maybe (Textual Word32))     , _jgqrPageToken  :: !(Maybe Text)     , _jgqrProjectId  :: !Text@@ -78,6 +81,8 @@ -- -- * 'jgqrJobId' --+-- * 'jgqrLocation'+-- -- * 'jgqrTimeoutMs' -- -- * 'jgqrPageToken'@@ -94,6 +99,7 @@ jobsGetQueryResults pJgqrJobId_ pJgqrProjectId_ =     JobsGetQueryResults'     { _jgqrJobId = pJgqrJobId_+    , _jgqrLocation = Nothing     , _jgqrTimeoutMs = Nothing     , _jgqrPageToken = Nothing     , _jgqrProjectId = pJgqrProjectId_@@ -106,6 +112,13 @@ jgqrJobId   = lens _jgqrJobId (\ s a -> s{_jgqrJobId = a}) +-- | The geographic location where the job should run. Required except for US+-- and EU. See details at+-- https:\/\/cloud.google.com\/bigquery\/docs\/locations#specifying_your_location.+jgqrLocation :: Lens' JobsGetQueryResults (Maybe Text)+jgqrLocation+  = lens _jgqrLocation (\ s a -> s{_jgqrLocation = a})+ -- | How long to wait for the query to complete, in milliseconds, before -- returning. Default is 10 seconds. If the timeout passes before the job -- completes, the \'jobComplete\' field in the response will be false@@ -149,7 +162,8 @@                "https://www.googleapis.com/auth/cloud-platform",                "https://www.googleapis.com/auth/cloud-platform.read-only"]         requestClient JobsGetQueryResults'{..}-          = go _jgqrProjectId _jgqrJobId _jgqrTimeoutMs+          = go _jgqrProjectId _jgqrJobId _jgqrLocation+              _jgqrTimeoutMs               _jgqrPageToken               _jgqrStartIndex               _jgqrMaxResults
gen/Network/Google/Resource/BigQuery/Jobs/List.hs view
@@ -37,6 +37,8 @@     , JobsList      -- * Request Lenses+    , jlMaxCreationTime+    , jlMinCreationTime     , jlStateFilter     , jlProjection     , jlPageToken@@ -56,12 +58,14 @@          "projects" :>            Capture "projectId" Text :>              "jobs" :>-               QueryParams "stateFilter" JobsListStateFilter :>-                 QueryParam "projection" JobsListProjection :>-                   QueryParam "pageToken" Text :>-                     QueryParam "allUsers" Bool :>-                       QueryParam "maxResults" (Textual Word32) :>-                         QueryParam "alt" AltJSON :> Get '[JSON] JobList+               QueryParam "maxCreationTime" (Textual Word64) :>+                 QueryParam "minCreationTime" (Textual Word64) :>+                   QueryParams "stateFilter" JobsListStateFilter :>+                     QueryParam "projection" JobsListProjection :>+                       QueryParam "pageToken" Text :>+                         QueryParam "allUsers" Bool :>+                           QueryParam "maxResults" (Textual Word32) :>+                             QueryParam "alt" AltJSON :> Get '[JSON] JobList  -- | Lists all jobs that you started in the specified project. Job -- information is available for a six month period after creation. The job@@ -71,18 +75,24 @@ -- -- /See:/ 'jobsList' smart constructor. data JobsList = JobsList'-    { _jlStateFilter :: !(Maybe [JobsListStateFilter])-    , _jlProjection  :: !(Maybe JobsListProjection)-    , _jlPageToken   :: !(Maybe Text)-    , _jlProjectId   :: !Text-    , _jlAllUsers    :: !(Maybe Bool)-    , _jlMaxResults  :: !(Maybe (Textual Word32))+    { _jlMaxCreationTime :: !(Maybe (Textual Word64))+    , _jlMinCreationTime :: !(Maybe (Textual Word64))+    , _jlStateFilter     :: !(Maybe [JobsListStateFilter])+    , _jlProjection      :: !(Maybe JobsListProjection)+    , _jlPageToken       :: !(Maybe Text)+    , _jlProjectId       :: !Text+    , _jlAllUsers        :: !(Maybe Bool)+    , _jlMaxResults      :: !(Maybe (Textual Word32))     } deriving (Eq,Show,Data,Typeable,Generic)  -- | Creates a value of 'JobsList' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: --+-- * 'jlMaxCreationTime'+--+-- * 'jlMinCreationTime'+-- -- * 'jlStateFilter' -- -- * 'jlProjection'@@ -99,7 +109,9 @@     -> JobsList jobsList pJlProjectId_ =     JobsList'-    { _jlStateFilter = Nothing+    { _jlMaxCreationTime = Nothing+    , _jlMinCreationTime = Nothing+    , _jlStateFilter = Nothing     , _jlProjection = Nothing     , _jlPageToken = Nothing     , _jlProjectId = pJlProjectId_@@ -107,6 +119,22 @@     , _jlMaxResults = Nothing     } +-- | Max value for job creation time, in milliseconds since the POSIX epoch.+-- If set, only jobs created before or at this timestamp are returned+jlMaxCreationTime :: Lens' JobsList (Maybe Word64)+jlMaxCreationTime+  = lens _jlMaxCreationTime+      (\ s a -> s{_jlMaxCreationTime = a})+      . mapping _Coerce++-- | Min value for job creation time, in milliseconds since the POSIX epoch.+-- If set, only jobs created after or at this timestamp are returned+jlMinCreationTime :: Lens' JobsList (Maybe Word64)+jlMinCreationTime+  = lens _jlMinCreationTime+      (\ s a -> s{_jlMinCreationTime = a})+      . mapping _Coerce+ -- | Filter for job state jlStateFilter :: Lens' JobsList [JobsListStateFilter] jlStateFilter@@ -149,7 +177,9 @@                "https://www.googleapis.com/auth/cloud-platform",                "https://www.googleapis.com/auth/cloud-platform.read-only"]         requestClient JobsList'{..}-          = go _jlProjectId (_jlStateFilter ^. _Default)+          = go _jlProjectId _jlMaxCreationTime+              _jlMinCreationTime+              (_jlStateFilter ^. _Default)               _jlProjection               _jlPageToken               _jlAllUsers
+ gen/Network/Google/Resource/BigQuery/Projects/GetServiceAccount.hs view
@@ -0,0 +1,94 @@+{-# 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.BigQuery.Projects.GetServiceAccount+-- Copyright   : (c) 2015-2016 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)+--+-- Returns the email address of the service account for your project used+-- for interactions with Google Cloud KMS.+--+-- /See:/ <https://cloud.google.com/bigquery/ BigQuery API Reference> for @bigquery.projects.getServiceAccount@.+module Network.Google.Resource.BigQuery.Projects.GetServiceAccount+    (+    -- * REST Resource+      ProjectsGetServiceAccountResource++    -- * Creating a Request+    , projectsGetServiceAccount+    , ProjectsGetServiceAccount++    -- * Request Lenses+    , pgsaProjectId+    ) where++import           Network.Google.BigQuery.Types+import           Network.Google.Prelude++-- | A resource alias for @bigquery.projects.getServiceAccount@ method which the+-- 'ProjectsGetServiceAccount' request conforms to.+type ProjectsGetServiceAccountResource =+     "bigquery" :>+       "v2" :>+         "projects" :>+           Capture "projectId" Text :>+             "serviceAccount" :>+               QueryParam "alt" AltJSON :>+                 Get '[JSON] GetServiceAccountResponse++-- | Returns the email address of the service account for your project used+-- for interactions with Google Cloud KMS.+--+-- /See:/ 'projectsGetServiceAccount' smart constructor.+newtype ProjectsGetServiceAccount = ProjectsGetServiceAccount'+    { _pgsaProjectId :: Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsGetServiceAccount' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pgsaProjectId'+projectsGetServiceAccount+    :: Text -- ^ 'pgsaProjectId'+    -> ProjectsGetServiceAccount+projectsGetServiceAccount pPgsaProjectId_ =+    ProjectsGetServiceAccount'+    { _pgsaProjectId = pPgsaProjectId_+    }++-- | Project ID for which the service account is requested.+pgsaProjectId :: Lens' ProjectsGetServiceAccount Text+pgsaProjectId+  = lens _pgsaProjectId+      (\ s a -> s{_pgsaProjectId = a})++instance GoogleRequest ProjectsGetServiceAccount+         where+        type Rs ProjectsGetServiceAccount =+             GetServiceAccountResponse+        type Scopes ProjectsGetServiceAccount =+             '["https://www.googleapis.com/auth/bigquery",+               "https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/cloud-platform.read-only"]+        requestClient ProjectsGetServiceAccount'{..}+          = go _pgsaProjectId (Just AltJSON) bigQueryService+          where go+                  = buildClient+                      (Proxy :: Proxy ProjectsGetServiceAccountResource)+                      mempty
gen/Network/Google/Resource/BigQuery/TableData/List.hs view
@@ -37,6 +37,7 @@     , tDataSetId     , tPageToken     , tProjectId+    , tSelectedFields     , tTableId     , tStartIndex     , tMaxResults@@ -58,22 +59,24 @@                    Capture "tableId" Text :>                      "data" :>                        QueryParam "pageToken" Text :>-                         QueryParam "startIndex" (Textual Word64) :>-                           QueryParam "maxResults" (Textual Word32) :>-                             QueryParam "alt" AltJSON :>-                               Get '[JSON] TableDataList+                         QueryParam "selectedFields" Text :>+                           QueryParam "startIndex" (Textual Word64) :>+                             QueryParam "maxResults" (Textual Word32) :>+                               QueryParam "alt" AltJSON :>+                                 Get '[JSON] TableDataList  -- | Retrieves table data from a specified set of rows. Requires the READER -- dataset role. -- -- /See:/ 'tableDataList'' smart constructor. data TableDataList' = TableDataList''-    { _tDataSetId  :: !Text-    , _tPageToken  :: !(Maybe Text)-    , _tProjectId  :: !Text-    , _tTableId    :: !Text-    , _tStartIndex :: !(Maybe (Textual Word64))-    , _tMaxResults :: !(Maybe (Textual Word32))+    { _tDataSetId      :: !Text+    , _tPageToken      :: !(Maybe Text)+    , _tProjectId      :: !Text+    , _tSelectedFields :: !(Maybe Text)+    , _tTableId        :: !Text+    , _tStartIndex     :: !(Maybe (Textual Word64))+    , _tMaxResults     :: !(Maybe (Textual Word32))     } deriving (Eq,Show,Data,Typeable,Generic)  -- | Creates a value of 'TableDataList'' with the minimum fields required to make a request.@@ -86,6 +89,8 @@ -- -- * 'tProjectId' --+-- * 'tSelectedFields'+-- -- * 'tTableId' -- -- * 'tStartIndex'@@ -101,6 +106,7 @@     { _tDataSetId = pTDataSetId_     , _tPageToken = Nothing     , _tProjectId = pTProjectId_+    , _tSelectedFields = Nothing     , _tTableId = pTTableId_     , _tStartIndex = Nothing     , _tMaxResults = Nothing@@ -123,6 +129,13 @@ tProjectId   = lens _tProjectId (\ s a -> s{_tProjectId = a}) +-- | List of fields to return (comma-separated). If unspecified, all fields+-- are returned+tSelectedFields :: Lens' TableDataList' (Maybe Text)+tSelectedFields+  = lens _tSelectedFields+      (\ s a -> s{_tSelectedFields = a})+ -- | Table ID of the table to read tTableId :: Lens' TableDataList' Text tTableId = lens _tTableId (\ s a -> s{_tTableId = a})@@ -147,6 +160,7 @@                "https://www.googleapis.com/auth/cloud-platform.read-only"]         requestClient TableDataList''{..}           = go _tProjectId _tDataSetId _tTableId _tPageToken+              _tSelectedFields               _tStartIndex               _tMaxResults               (Just AltJSON)
gen/Network/Google/Resource/BigQuery/Tables/Get.hs view
@@ -37,6 +37,7 @@     -- * Request Lenses     , tgDataSetId     , tgProjectId+    , tgSelectedFields     , tgTableId     ) where @@ -54,7 +55,8 @@                Capture "datasetId" Text :>                  "tables" :>                    Capture "tableId" Text :>-                     QueryParam "alt" AltJSON :> Get '[JSON] Table+                     QueryParam "selectedFields" Text :>+                       QueryParam "alt" AltJSON :> Get '[JSON] Table  -- | Gets the specified table resource by table ID. This method does not -- return the data in the table, it only returns the table resource, which@@ -62,9 +64,10 @@ -- -- /See:/ 'tablesGet' smart constructor. data TablesGet = TablesGet'-    { _tgDataSetId :: !Text-    , _tgProjectId :: !Text-    , _tgTableId   :: !Text+    { _tgDataSetId      :: !Text+    , _tgProjectId      :: !Text+    , _tgSelectedFields :: !(Maybe Text)+    , _tgTableId        :: !Text     } deriving (Eq,Show,Data,Typeable,Generic)  -- | Creates a value of 'TablesGet' with the minimum fields required to make a request.@@ -75,6 +78,8 @@ -- -- * 'tgProjectId' --+-- * 'tgSelectedFields'+-- -- * 'tgTableId' tablesGet     :: Text -- ^ 'tgDataSetId'@@ -85,6 +90,7 @@     TablesGet'     { _tgDataSetId = pTgDataSetId_     , _tgProjectId = pTgProjectId_+    , _tgSelectedFields = Nothing     , _tgTableId = pTgTableId_     } @@ -98,6 +104,13 @@ tgProjectId   = lens _tgProjectId (\ s a -> s{_tgProjectId = a}) +-- | List of fields to return (comma-separated). If unspecified, all fields+-- are returned+tgSelectedFields :: Lens' TablesGet (Maybe Text)+tgSelectedFields+  = lens _tgSelectedFields+      (\ s a -> s{_tgSelectedFields = a})+ -- | Table ID of the requested table tgTableId :: Lens' TablesGet Text tgTableId@@ -111,6 +124,7 @@                "https://www.googleapis.com/auth/cloud-platform.read-only"]         requestClient TablesGet'{..}           = go _tgProjectId _tgDataSetId _tgTableId+              _tgSelectedFields               (Just AltJSON)               bigQueryService           where go
gogol-bigquery.cabal view
@@ -1,5 +1,5 @@ name:                  gogol-bigquery-version:               0.3.0+version:               0.4.0 synopsis:              Google BigQuery SDK. homepage:              https://github.com/brendanhay/gogol bug-reports:           https://github.com/brendanhay/gogol/issues@@ -47,6 +47,7 @@         , Network.Google.Resource.BigQuery.Jobs.Insert         , Network.Google.Resource.BigQuery.Jobs.List         , Network.Google.Resource.BigQuery.Jobs.Query+        , Network.Google.Resource.BigQuery.Projects.GetServiceAccount         , Network.Google.Resource.BigQuery.Projects.List         , Network.Google.Resource.BigQuery.TableData.InsertAll         , Network.Google.Resource.BigQuery.TableData.List@@ -62,5 +63,5 @@         , Network.Google.BigQuery.Types.Sum      build-depends:-          gogol-core == 0.3.0.*+          gogol-core == 0.4.0.*         , base       >= 4.7 && < 5