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


-- | Google BigQuery SDK.
--   
--   A data platform for customers to create, manage, share and query data.
--   
--   <i>Warning:</i> This is an experimental prototype/preview release
--   which is still under exploratory development and not intended for
--   public use, caveat emptor!
--   
--   This library is compatible with version <tt>v2</tt> of the API.
@package gogol-bigquery
@version 0.3.0


module Network.Google.BigQuery.Types

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

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

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

-- | View your data in Google Cloud Storage
storageReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/devstorage.read_only"]

-- | Insert data into Google BigQuery
bigQueryInsertDataScope :: Proxy '["https://www.googleapis.com/auth/bigquery.insertdata"]

-- | Manage your data in Google Cloud Storage
storageReadWriteScope :: Proxy '["https://www.googleapis.com/auth/devstorage.read_write"]

-- | View and manage your data in Google BigQuery
bigQueryScope :: Proxy '["https://www.googleapis.com/auth/bigquery"]

-- | Manage your data and permissions in Google Cloud Storage
storageFullControlScope :: Proxy '["https://www.googleapis.com/auth/devstorage.full_control"]
data JobReference

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

-- | <ul>
--   <li><i>Required</i> 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.</li>
--   </ul>
jrJobId :: Lens' JobReference (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The ID of the project containing this job.</li>
--   </ul>
jrProjectId :: Lens' JobReference (Maybe Text)
data TableList

-- | Creates a value of <a>TableList</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tlTotalItems</a></li>
--   <li><a>tlEtag</a></li>
--   <li><a>tlNextPageToken</a></li>
--   <li><a>tlKind</a></li>
--   <li><a>tlTables</a></li>
--   </ul>
tableList :: TableList

-- | The total number of tables in the dataset.
tlTotalItems :: Lens' TableList (Maybe Int32)

-- | A hash of this page of results.
tlEtag :: Lens' TableList (Maybe Text)

-- | A token to request the next page of results.
tlNextPageToken :: Lens' TableList (Maybe Text)

-- | The type of list.
tlKind :: Lens' TableList Text

-- | Tables in the requested dataset.
tlTables :: Lens' TableList [TableListTablesItem]
data DataSetListDataSetsItem

-- | Creates a value of <a>DataSetListDataSetsItem</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsldsiFriendlyName</a></li>
--   <li><a>dsldsiKind</a></li>
--   <li><a>dsldsiDataSetReference</a></li>
--   <li><a>dsldsiId</a></li>
--   <li><a>dsldsiLabels</a></li>
--   </ul>
dataSetListDataSetsItem :: DataSetListDataSetsItem

-- | A descriptive name for the dataset, if one exists.
dsldsiFriendlyName :: Lens' DataSetListDataSetsItem (Maybe Text)

-- | The resource type. This property always returns the value
--   "bigquery#dataset".
dsldsiKind :: Lens' DataSetListDataSetsItem Text

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

-- | The fully-qualified, unique, opaque ID of the dataset.
dsldsiId :: Lens' DataSetListDataSetsItem (Maybe Text)

-- | <ul>
--   <li><i>Experimental</i> The labels associated with this dataset. You
--   can use these to organize and group your datasets.</li>
--   </ul>
dsldsiLabels :: Lens' DataSetListDataSetsItem (Maybe DataSetListDataSetsItemLabels)
data TableDataList

-- | Creates a value of <a>TableDataList</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tdlEtag</a></li>
--   <li><a>tdlKind</a></li>
--   <li><a>tdlRows</a></li>
--   <li><a>tdlPageToken</a></li>
--   <li><a>tdlTotalRows</a></li>
--   </ul>
tableDataList :: TableDataList

-- | A hash of this page of results.
tdlEtag :: Lens' TableDataList (Maybe Text)

-- | The resource type of the response.
tdlKind :: Lens' TableDataList Text

-- | Rows of results.
tdlRows :: Lens' TableDataList [TableRow]

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

-- | The total number of rows in the complete table.
tdlTotalRows :: Lens' TableDataList (Maybe Int64)
data JobConfigurationTableCopy

-- | Creates a value of <a>JobConfigurationTableCopy</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jctcDestinationTable</a></li>
--   <li><a>jctcWriteDisPosition</a></li>
--   <li><a>jctcSourceTables</a></li>
--   <li><a>jctcCreateDisPosition</a></li>
--   <li><a>jctcSourceTable</a></li>
--   </ul>
jobConfigurationTableCopy :: JobConfigurationTableCopy

-- | <ul>
--   <li><i>Required</i> The destination table</li>
--   </ul>
jctcDestinationTable :: Lens' JobConfigurationTableCopy (Maybe TableReference)

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

-- | <ul>
--   <li><i>Pick one</i> Source tables to copy.</li>
--   </ul>
jctcSourceTables :: Lens' JobConfigurationTableCopy [TableReference]

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

-- | <ul>
--   <li><i>Pick one</i> Source table to copy.</li>
--   </ul>
jctcSourceTable :: Lens' JobConfigurationTableCopy (Maybe TableReference)
data TableListTablesItem

-- | Creates a value of <a>TableListTablesItem</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tltiTableReference</a></li>
--   <li><a>tltiFriendlyName</a></li>
--   <li><a>tltiKind</a></li>
--   <li><a>tltiId</a></li>
--   <li><a>tltiLabels</a></li>
--   <li><a>tltiType</a></li>
--   </ul>
tableListTablesItem :: TableListTablesItem

-- | A reference uniquely identifying the table.
tltiTableReference :: Lens' TableListTablesItem (Maybe TableReference)

-- | The user-friendly name for this table.
tltiFriendlyName :: Lens' TableListTablesItem (Maybe Text)

-- | The resource type.
tltiKind :: Lens' TableListTablesItem Text

-- | An opaque ID of the table
tltiId :: Lens' TableListTablesItem (Maybe Text)

-- | <ul>
--   <li><i>Experimental</i> The labels associated with this table. You can
--   use these to organize and group your tables.</li>
--   </ul>
tltiLabels :: Lens' TableListTablesItem (Maybe TableListTablesItemLabels)

-- | The type of table. Possible values are: TABLE, VIEW.
tltiType :: Lens' TableListTablesItem (Maybe Text)
data TableSchema

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

-- | Describes the fields in a table.
tsFields :: Lens' TableSchema [TableFieldSchema]
data ProjectList

-- | Creates a value of <a>ProjectList</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>plTotalItems</a></li>
--   <li><a>plEtag</a></li>
--   <li><a>plNextPageToken</a></li>
--   <li><a>plKind</a></li>
--   <li><a>plProjects</a></li>
--   </ul>
projectList :: ProjectList

-- | The total number of projects in the list.
plTotalItems :: Lens' ProjectList (Maybe Int32)

-- | A hash of the page of results
plEtag :: Lens' ProjectList (Maybe Text)

-- | A token to request the next page of results.
plNextPageToken :: Lens' ProjectList (Maybe Text)

-- | The type of list.
plKind :: Lens' ProjectList Text

-- | Projects to which you have at least READ access.
plProjects :: Lens' ProjectList [ProjectListProjectsItem]
data ExplainQueryStep

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

-- | Human-readable stage descriptions.
eqsSubsteps :: Lens' ExplainQueryStep [Text]

-- | Machine-readable operation type.
eqsKind :: Lens' ExplainQueryStep (Maybe Text)
data QueryParameterTypeStructTypesItem

-- | Creates a value of <a>QueryParameterTypeStructTypesItem</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>qptstiName</a></li>
--   <li><a>qptstiType</a></li>
--   <li><a>qptstiDescription</a></li>
--   </ul>
queryParameterTypeStructTypesItem :: QueryParameterTypeStructTypesItem

-- | <ul>
--   <li><i>Optional</i> The name of this field.</li>
--   </ul>
qptstiName :: Lens' QueryParameterTypeStructTypesItem (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The type of this field.</li>
--   </ul>
qptstiType :: Lens' QueryParameterTypeStructTypesItem (Maybe QueryParameterType)

-- | <ul>
--   <li><i>Optional</i> Human-oriented description of the field.</li>
--   </ul>
qptstiDescription :: Lens' QueryParameterTypeStructTypesItem (Maybe Text)
data BigtableColumnFamily

-- | Creates a value of <a>BigtableColumnFamily</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bcfFamilyId</a></li>
--   <li><a>bcfColumns</a></li>
--   <li><a>bcfOnlyReadLatest</a></li>
--   <li><a>bcfType</a></li>
--   <li><a>bcfEncoding</a></li>
--   </ul>
bigtableColumnFamily :: BigtableColumnFamily

-- | Identifier of the column family.
bcfFamilyId :: Lens' BigtableColumnFamily (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
bcfColumns :: Lens' BigtableColumnFamily [BigtableColumn]

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

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

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
bcfEncoding :: Lens' BigtableColumnFamily (Maybe Text)
data JobStatistics

-- | Creates a value of <a>JobStatistics</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jsCreationTime</a></li>
--   <li><a>jsStartTime</a></li>
--   <li><a>jsLoad</a></li>
--   <li><a>jsTotalBytesProcessed</a></li>
--   <li><a>jsEndTime</a></li>
--   <li><a>jsQuery</a></li>
--   <li><a>jsExtract</a></li>
--   </ul>
jobStatistics :: JobStatistics

-- | <ul>
--   <li><i>Output-only</i> Creation time of this job, in milliseconds
--   since the epoch. This field will be present on all jobs.</li>
--   </ul>
jsCreationTime :: Lens' JobStatistics (Maybe Int64)

-- | <ul>
--   <li><i>Output-only</i> 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.</li>
--   </ul>
jsStartTime :: Lens' JobStatistics (Maybe Int64)

-- | <ul>
--   <li><i>Output-only</i> Statistics for a load job.</li>
--   </ul>
jsLoad :: Lens' JobStatistics (Maybe JobStatistics3)

-- | <ul>
--   <li><i>Output-only</i> [Deprecated] Use the bytes processed in the
--   query statistics instead.</li>
--   </ul>
jsTotalBytesProcessed :: Lens' JobStatistics (Maybe Int64)

-- | <ul>
--   <li><i>Output-only</i> End time of this job, in milliseconds since the
--   epoch. This field will be present whenever a job is in the DONE
--   state.</li>
--   </ul>
jsEndTime :: Lens' JobStatistics (Maybe Int64)

-- | <ul>
--   <li><i>Output-only</i> Statistics for a query job.</li>
--   </ul>
jsQuery :: Lens' JobStatistics (Maybe JobStatistics2)

-- | <ul>
--   <li><i>Output-only</i> Statistics for an extract job.</li>
--   </ul>
jsExtract :: Lens' JobStatistics (Maybe JobStatistics4)

-- | <ul>
--   <li><i>Experimental</i> 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 &lt;= 128 bytes in size.</li>
--   </ul>
--   
--   <i>See:</i> <a>jobConfigurationLabels</a> smart constructor.
data JobConfigurationLabels

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

-- | Creates a value of <a>DataSet</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsCreationTime</a></li>
--   <li><a>dsAccess</a></li>
--   <li><a>dsEtag</a></li>
--   <li><a>dsLocation</a></li>
--   <li><a>dsFriendlyName</a></li>
--   <li><a>dsKind</a></li>
--   <li><a>dsLastModifiedTime</a></li>
--   <li><a>dsDataSetReference</a></li>
--   <li><a>dsSelfLink</a></li>
--   <li><a>dsId</a></li>
--   <li><a>dsLabels</a></li>
--   <li><a>dsDefaultTableExpirationMs</a></li>
--   <li><a>dsDescription</a></li>
--   </ul>
dataSet :: DataSet

-- | <ul>
--   <li><i>Output-only</i> The time when this dataset was created, in
--   milliseconds since the epoch.</li>
--   </ul>
dsCreationTime :: Lens' DataSet (Maybe Int64)

-- | <ul>
--   <li><i>Optional</i> 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;</li>
--   </ul>
dsAccess :: Lens' DataSet [DataSetAccessItem]

-- | <ul>
--   <li><i>Output-only</i> A hash of the resource.</li>
--   </ul>
dsEtag :: Lens' DataSet (Maybe Text)

-- | <ul>
--   <li><i>Experimental</i> The geographic location where the dataset
--   should reside. Possible values include EU and US. The default value is
--   US.</li>
--   </ul>
dsLocation :: Lens' DataSet (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> A descriptive name for the dataset.</li>
--   </ul>
dsFriendlyName :: Lens' DataSet (Maybe Text)

-- | <ul>
--   <li><i>Output-only</i> The resource type.</li>
--   </ul>
dsKind :: Lens' DataSet Text

-- | <ul>
--   <li><i>Output-only</i> The date when this dataset or any of its tables
--   was last modified, in milliseconds since the epoch.</li>
--   </ul>
dsLastModifiedTime :: Lens' DataSet (Maybe Int64)

-- | <ul>
--   <li><i>Required</i> A reference that identifies the dataset.</li>
--   </ul>
dsDataSetReference :: Lens' DataSet (Maybe DataSetReference)

-- | <ul>
--   <li><i>Output-only</i> A URL that can be used to access the resource
--   again. You can use this URL in Get or Update requests to the
--   resource.</li>
--   </ul>
dsSelfLink :: Lens' DataSet (Maybe Text)

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

-- | <ul>
--   <li><i>Experimental</i> 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.</li>
--   </ul>
dsLabels :: Lens' DataSet (Maybe DataSetLabels)

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
dsDefaultTableExpirationMs :: Lens' DataSet (Maybe Int64)

-- | <ul>
--   <li><i>Optional</i> A user-friendly description of the dataset.</li>
--   </ul>
dsDescription :: Lens' DataSet (Maybe Text)
data BigtableOptions

-- | Creates a value of <a>BigtableOptions</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>boReadRowkeyAsString</a></li>
--   <li><a>boIgnoreUnspecifiedColumnFamilies</a></li>
--   <li><a>boColumnFamilies</a></li>
--   </ul>
bigtableOptions :: BigtableOptions

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

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

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
boColumnFamilies :: Lens' BigtableOptions [BigtableColumnFamily]
data ExternalDataConfiguration

-- | Creates a value of <a>ExternalDataConfiguration</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>edcBigtableOptions</a></li>
--   <li><a>edcIgnoreUnknownValues</a></li>
--   <li><a>edcCompression</a></li>
--   <li><a>edcSourceFormat</a></li>
--   <li><a>edcSchema</a></li>
--   <li><a>edcMaxBadRecords</a></li>
--   <li><a>edcGoogleSheetsOptions</a></li>
--   <li><a>edcAutodetect</a></li>
--   <li><a>edcSourceURIs</a></li>
--   <li><a>edcCSVOptions</a></li>
--   </ul>
externalDataConfiguration :: ExternalDataConfiguration

-- | <ul>
--   <li><i>Optional</i> Additional options if sourceFormat is set to
--   BIGTABLE.</li>
--   </ul>
edcBigtableOptions :: Lens' ExternalDataConfiguration (Maybe BigtableOptions)

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

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

-- | <ul>
--   <li><i>Required</i> 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.</li>
--   </ul>
edcSourceFormat :: Lens' ExternalDataConfiguration (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
edcSchema :: Lens' ExternalDataConfiguration (Maybe TableSchema)

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

-- | <ul>
--   <li><i>Optional</i> Additional options if sourceFormat is set to
--   GOOGLE_SHEETS.</li>
--   </ul>
edcGoogleSheetsOptions :: Lens' ExternalDataConfiguration (Maybe GoogleSheetsOptions)

-- | <ul>
--   <li><i>Experimental</i> Try to detect schema and format options
--   automatically. Any option specified explicitly will be honored.</li>
--   </ul>
edcAutodetect :: Lens' ExternalDataConfiguration (Maybe Bool)

-- | <ul>
--   <li><i>Required</i> 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.</li>
--   </ul>
edcSourceURIs :: Lens' ExternalDataConfiguration [Text]

-- | Additional properties to set if sourceFormat is set to CSV.
edcCSVOptions :: Lens' ExternalDataConfiguration (Maybe CSVOptions)
data TableReference

-- | Creates a value of <a>TableReference</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>trDataSetId</a></li>
--   <li><a>trProjectId</a></li>
--   <li><a>trTableId</a></li>
--   </ul>
tableReference :: TableReference

-- | <ul>
--   <li><i>Required</i> The ID of the dataset containing this table.</li>
--   </ul>
trDataSetId :: Lens' TableReference (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The ID of the project containing this table.</li>
--   </ul>
trProjectId :: Lens' TableReference (Maybe Text)

-- | <ul>
--   <li><i>Required</i> 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.</li>
--   </ul>
trTableId :: Lens' TableReference (Maybe Text)
data TableFieldSchema

-- | Creates a value of <a>TableFieldSchema</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tfsMode</a></li>
--   <li><a>tfsName</a></li>
--   <li><a>tfsType</a></li>
--   <li><a>tfsDescription</a></li>
--   <li><a>tfsFields</a></li>
--   </ul>
tableFieldSchema :: TableFieldSchema

-- | <ul>
--   <li><i>Optional</i> The field mode. Possible values include NULLABLE,
--   REQUIRED and REPEATED. The default value is NULLABLE.</li>
--   </ul>
tfsMode :: Lens' TableFieldSchema (Maybe Text)

-- | <ul>
--   <li><i>Required</i> 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.</li>
--   </ul>
tfsName :: Lens' TableFieldSchema (Maybe Text)

-- | <ul>
--   <li><i>Required</i> 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).</li>
--   </ul>
tfsType :: Lens' TableFieldSchema (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> The field description. The maximum length is 16K
--   characters.</li>
--   </ul>
tfsDescription :: Lens' TableFieldSchema (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> Describes the nested schema fields if the type
--   property is set to RECORD.</li>
--   </ul>
tfsFields :: Lens' TableFieldSchema [TableFieldSchema]
data GetQueryResultsResponse

-- | Creates a value of <a>GetQueryResultsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gqrrJobReference</a></li>
--   <li><a>gqrrEtag</a></li>
--   <li><a>gqrrKind</a></li>
--   <li><a>gqrrSchema</a></li>
--   <li><a>gqrrTotalBytesProcessed</a></li>
--   <li><a>gqrrRows</a></li>
--   <li><a>gqrrPageToken</a></li>
--   <li><a>gqrrNumDmlAffectedRows</a></li>
--   <li><a>gqrrTotalRows</a></li>
--   <li><a>gqrrErrors</a></li>
--   <li><a>gqrrJobComplete</a></li>
--   <li><a>gqrrCacheHit</a></li>
--   </ul>
getQueryResultsResponse :: GetQueryResultsResponse

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

-- | A hash of this response.
gqrrEtag :: Lens' GetQueryResultsResponse (Maybe Text)

-- | The resource type of the response.
gqrrKind :: Lens' GetQueryResultsResponse Text

-- | The schema of the results. Present only when the query completes
--   successfully.
gqrrSchema :: Lens' GetQueryResultsResponse (Maybe TableSchema)

-- | The total number of bytes processed for this query.
gqrrTotalBytesProcessed :: Lens' GetQueryResultsResponse (Maybe Int64)

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

-- | A token used for paging results.
gqrrPageToken :: Lens' GetQueryResultsResponse (Maybe Text)

-- | <ul>
--   <li><i>Output-only, Experimental</i> The number of rows affected by a
--   DML statement. Present only for DML statements INSERT, UPDATE or
--   DELETE.</li>
--   </ul>
gqrrNumDmlAffectedRows :: Lens' GetQueryResultsResponse (Maybe Int64)

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

-- | <ul>
--   <li><i>Output-only</i> 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.</li>
--   </ul>
gqrrErrors :: Lens' GetQueryResultsResponse [ErrorProto]

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

-- | Whether the query result was fetched from the query cache.
gqrrCacheHit :: Lens' GetQueryResultsResponse (Maybe Bool)
data DataSetList

-- | Creates a value of <a>DataSetList</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dslEtag</a></li>
--   <li><a>dslNextPageToken</a></li>
--   <li><a>dslKind</a></li>
--   <li><a>dslDataSets</a></li>
--   </ul>
dataSetList :: DataSetList

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

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

-- | The list type. This property always returns the value
--   "bigquery#datasetList".
dslKind :: Lens' DataSetList Text

-- | 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]
data QueryRequest

-- | Creates a value of <a>QueryRequest</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>qrUseQueryCache</a></li>
--   <li><a>qrPreserveNulls</a></li>
--   <li><a>qrKind</a></li>
--   <li><a>qrQueryParameters</a></li>
--   <li><a>qrQuery</a></li>
--   <li><a>qrParameterMode</a></li>
--   <li><a>qrTimeoutMs</a></li>
--   <li><a>qrUseLegacySQL</a></li>
--   <li><a>qrDryRun</a></li>
--   <li><a>qrMaxResults</a></li>
--   <li><a>qrDefaultDataSet</a></li>
--   </ul>
queryRequest :: QueryRequest

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
qrUseQueryCache :: Lens' QueryRequest Bool

-- | <ul>
--   <li><i>Deprecated</i> This property is deprecated.</li>
--   </ul>
qrPreserveNulls :: Lens' QueryRequest (Maybe Bool)

-- | The resource type of the request.
qrKind :: Lens' QueryRequest Text

-- | <ul>
--   <li><i>Experimental</i> Query parameters for Standard SQL
--   queries.</li>
--   </ul>
qrQueryParameters :: Lens' QueryRequest [QueryParameter]

-- | <ul>
--   <li><i>Required</i> A query string, following the BigQuery query
--   syntax, of the query to execute. Example: "SELECT count(f1) FROM</li>
--   <li><i>myProjectId:myDatasetId.myTableId</i> ".</li>
--   </ul>
qrQuery :: Lens' QueryRequest (Maybe Text)

-- | <ul>
--   <li><i>Experimental</i> Standard SQL only. Set to POSITIONAL to use
--   positional (?) query parameters or to NAMED to use named ('myparam)
--   query parameters in this query.</li>
--   </ul>
qrParameterMode :: Lens' QueryRequest (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> 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).</li>
--   </ul>
qrTimeoutMs :: Lens' QueryRequest (Maybe Word32)

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

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

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
qrMaxResults :: Lens' QueryRequest (Maybe Word32)

-- | <ul>
--   <li><i>Optional</i> 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'.</li>
--   </ul>
qrDefaultDataSet :: Lens' QueryRequest (Maybe DataSetReference)

-- | Restrict information returned to a set of selected fields
data JobsListProjection

-- | <tt>full</tt> Includes all job data
Full :: JobsListProjection

-- | <tt>minimal</tt> Does not include the job configuration
Minimal :: JobsListProjection
data QueryParameter

-- | Creates a value of <a>QueryParameter</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>qpParameterValue</a></li>
--   <li><a>qpParameterType</a></li>
--   <li><a>qpName</a></li>
--   </ul>
queryParameter :: QueryParameter

-- | <ul>
--   <li><i>Required</i> The value of this parameter.</li>
--   </ul>
qpParameterValue :: Lens' QueryParameter (Maybe QueryParameterValue)

-- | <ul>
--   <li><i>Required</i> The type of this parameter.</li>
--   </ul>
qpParameterType :: Lens' QueryParameter (Maybe QueryParameterType)

-- | <ul>
--   <li><i>Optional</i> If unset, this is a positional parameter.
--   Otherwise, should be unique within a query.</li>
--   </ul>
qpName :: Lens' QueryParameter (Maybe Text)
data JobStatistics4

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

-- | <ul>
--   <li><i>Output-only</i> 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.</li>
--   </ul>
jsDestinationURIFileCounts :: Lens' JobStatistics4 [Int64]
data ProjectReference

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

-- | <ul>
--   <li><i>Required</i> ID of the project. Can be either the numeric ID or
--   the assigned ID of the project.</li>
--   </ul>
prProjectId :: Lens' ProjectReference (Maybe Text)
data ExplainQueryStage

-- | Creates a value of <a>ExplainQueryStage</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eqsStatus</a></li>
--   <li><a>eqsWaitRatioMax</a></li>
--   <li><a>eqsRecordsWritten</a></li>
--   <li><a>eqsSteps</a></li>
--   <li><a>eqsWriteRatioAvg</a></li>
--   <li><a>eqsRecordsRead</a></li>
--   <li><a>eqsComputeRatioAvg</a></li>
--   <li><a>eqsName</a></li>
--   <li><a>eqsReadRatioMax</a></li>
--   <li><a>eqsWaitRatioAvg</a></li>
--   <li><a>eqsId</a></li>
--   <li><a>eqsComputeRatioMax</a></li>
--   <li><a>eqsWriteRatioMax</a></li>
--   <li><a>eqsReadRatioAvg</a></li>
--   </ul>
explainQueryStage :: ExplainQueryStage

-- | Current status for the stage.
eqsStatus :: Lens' ExplainQueryStage (Maybe Text)

-- | Relative amount of time the slowest shard spent waiting to be
--   scheduled.
eqsWaitRatioMax :: Lens' ExplainQueryStage (Maybe Double)

-- | Number of records written by the stage.
eqsRecordsWritten :: Lens' ExplainQueryStage (Maybe Int64)

-- | List of operations within the stage in dependency order (approximately
--   chronological).
eqsSteps :: Lens' ExplainQueryStage [ExplainQueryStep]

-- | Relative amount of time the average shard spent on writing output.
eqsWriteRatioAvg :: Lens' ExplainQueryStage (Maybe Double)

-- | Number of records read into the stage.
eqsRecordsRead :: Lens' ExplainQueryStage (Maybe Int64)

-- | Relative amount of time the average shard spent on CPU-bound tasks.
eqsComputeRatioAvg :: Lens' ExplainQueryStage (Maybe Double)

-- | Human-readable name for stage.
eqsName :: Lens' ExplainQueryStage (Maybe Text)

-- | Relative amount of time the slowest shard spent reading input.
eqsReadRatioMax :: Lens' ExplainQueryStage (Maybe Double)

-- | Relative amount of time the average shard spent waiting to be
--   scheduled.
eqsWaitRatioAvg :: Lens' ExplainQueryStage (Maybe Double)

-- | Unique ID for stage within plan.
eqsId :: Lens' ExplainQueryStage (Maybe Int64)

-- | Relative amount of time the slowest shard spent on CPU-bound tasks.
eqsComputeRatioMax :: Lens' ExplainQueryStage (Maybe Double)

-- | Relative amount of time the slowest shard spent on writing output.
eqsWriteRatioMax :: Lens' ExplainQueryStage (Maybe Double)

-- | Relative amount of time the average shard spent reading input.
eqsReadRatioAvg :: Lens' ExplainQueryStage (Maybe Double)
data JobConfigurationLoad

-- | Creates a value of <a>JobConfigurationLoad</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jclSkipLeadingRows</a></li>
--   <li><a>jclProjectionFields</a></li>
--   <li><a>jclDestinationTable</a></li>
--   <li><a>jclWriteDisPosition</a></li>
--   <li><a>jclAllowJaggedRows</a></li>
--   <li><a>jclSchemaInline</a></li>
--   <li><a>jclIgnoreUnknownValues</a></li>
--   <li><a>jclSchemaUpdateOptions</a></li>
--   <li><a>jclCreateDisPosition</a></li>
--   <li><a>jclSchemaInlineFormat</a></li>
--   <li><a>jclAllowQuotedNewlines</a></li>
--   <li><a>jclSourceFormat</a></li>
--   <li><a>jclSchema</a></li>
--   <li><a>jclQuote</a></li>
--   <li><a>jclMaxBadRecords</a></li>
--   <li><a>jclAutodetect</a></li>
--   <li><a>jclSourceURIs</a></li>
--   <li><a>jclEncoding</a></li>
--   <li><a>jclFieldDelimiter</a></li>
--   <li><a>jclNullMarker</a></li>
--   </ul>
jobConfigurationLoad :: JobConfigurationLoad

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

-- | <ul>
--   <li><i>Experimental</i> 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.</li>
--   </ul>
jclProjectionFields :: Lens' JobConfigurationLoad [Text]

-- | <ul>
--   <li><i>Required</i> The destination table to load the data into.</li>
--   </ul>
jclDestinationTable :: Lens' JobConfigurationLoad (Maybe TableReference)

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

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

-- | <ul>
--   <li><i>Deprecated</i> The inline schema. For CSV schemas, specify as
--   "Field1:Type1[,Field2:Type2]*". For example, "foo:STRING, bar:INTEGER,
--   baz:FLOAT".</li>
--   </ul>
jclSchemaInline :: Lens' JobConfigurationLoad (Maybe Text)

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

-- | <ul>
--   <li><i>Experimental</i> 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.</li>
--   </ul>
jclSchemaUpdateOptions :: Lens' JobConfigurationLoad [Text]

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

-- | <ul>
--   <li><i>Deprecated</i> The format of the schemaInline property.</li>
--   </ul>
jclSchemaInlineFormat :: Lens' JobConfigurationLoad (Maybe Text)

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

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

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
jclSchema :: Lens' JobConfigurationLoad (Maybe TableSchema)

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

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

-- | <ul>
--   <li><i>Experimental</i> Indicates if we should automatically infer the
--   options and schema for CSV and JSON sources.</li>
--   </ul>
jclAutodetect :: Lens' JobConfigurationLoad (Maybe Bool)

-- | <ul>
--   <li><i>Required</i> 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.</li>
--   </ul>
jclSourceURIs :: Lens' JobConfigurationLoad [Text]

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

-- | <ul>
--   <li><i>Optional</i> 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 (',').</li>
--   </ul>
jclFieldDelimiter :: Lens' JobConfigurationLoad (Maybe Text)

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

-- | Filter for job state
data JobsListStateFilter

-- | <tt>done</tt> Finished jobs
Done :: JobsListStateFilter

-- | <tt>pending</tt> Pending jobs
Pending :: JobsListStateFilter

-- | <tt>running</tt> Running jobs
Running :: JobsListStateFilter
data DataSetReference

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

-- | <ul>
--   <li><i>Required</i> 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.</li>
--   </ul>
dsrDataSetId :: Lens' DataSetReference (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> The ID of the project containing this
--   dataset.</li>
--   </ul>
dsrProjectId :: Lens' DataSetReference (Maybe Text)
data TableDataInsertAllRequest

-- | Creates a value of <a>TableDataInsertAllRequest</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tdiarKind</a></li>
--   <li><a>tdiarIgnoreUnknownValues</a></li>
--   <li><a>tdiarRows</a></li>
--   <li><a>tdiarTemplateSuffix</a></li>
--   <li><a>tdiarSkipInvalidRows</a></li>
--   </ul>
tableDataInsertAllRequest :: TableDataInsertAllRequest

-- | The resource type of the response.
tdiarKind :: Lens' TableDataInsertAllRequest Text

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

-- | The rows to insert.
tdiarRows :: Lens' TableDataInsertAllRequest [TableDataInsertAllRequestRowsItem]

-- | <ul>
--   <li><i>Experimental</i> 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.</li>
--   </ul>
tdiarTemplateSuffix :: Lens' TableDataInsertAllRequest (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
tdiarSkipInvalidRows :: Lens' TableDataInsertAllRequest (Maybe Bool)
data ProjectListProjectsItem

-- | Creates a value of <a>ProjectListProjectsItem</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>plpiFriendlyName</a></li>
--   <li><a>plpiKind</a></li>
--   <li><a>plpiProjectReference</a></li>
--   <li><a>plpiId</a></li>
--   <li><a>plpiNumericId</a></li>
--   </ul>
projectListProjectsItem :: ProjectListProjectsItem

-- | A descriptive name for this project.
plpiFriendlyName :: Lens' ProjectListProjectsItem (Maybe Text)

-- | The resource type.
plpiKind :: Lens' ProjectListProjectsItem Text

-- | A unique reference to this project.
plpiProjectReference :: Lens' ProjectListProjectsItem (Maybe ProjectReference)

-- | An opaque ID of this project.
plpiId :: Lens' ProjectListProjectsItem (Maybe Text)

-- | The numeric ID of this project.
plpiNumericId :: Lens' ProjectListProjectsItem (Maybe Word64)
data BigtableColumn

-- | Creates a value of <a>BigtableColumn</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bcQualifierEncoded</a></li>
--   <li><a>bcFieldName</a></li>
--   <li><a>bcQualifierString</a></li>
--   <li><a>bcOnlyReadLatest</a></li>
--   <li><a>bcType</a></li>
--   <li><a>bcEncoding</a></li>
--   </ul>
bigtableColumn :: BigtableColumn

-- | <ul>
--   <li><i>Required</i> 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.</li>
--   </ul>
bcQualifierEncoded :: Lens' BigtableColumn (Maybe ByteString)

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
bcFieldName :: Lens' BigtableColumn (Maybe Text)
bcQualifierString :: Lens' BigtableColumn (Maybe Text)

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

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

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
bcEncoding :: Lens' BigtableColumn (Maybe Text)
data Streamingbuffer

-- | Creates a value of <a>Streamingbuffer</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sEstimatedBytes</a></li>
--   <li><a>sOldestEntryTime</a></li>
--   <li><a>sEstimatedRows</a></li>
--   </ul>
streamingbuffer :: Streamingbuffer

-- | <ul>
--   <li><i>Output-only</i> A lower-bound estimate of the number of bytes
--   currently in the streaming buffer.</li>
--   </ul>
sEstimatedBytes :: Lens' Streamingbuffer (Maybe Word64)

-- | <ul>
--   <li><i>Output-only</i> Contains the timestamp of the oldest entry in
--   the streaming buffer, in milliseconds since the epoch, if the
--   streaming buffer is available.</li>
--   </ul>
sOldestEntryTime :: Lens' Streamingbuffer (Maybe Word64)

-- | <ul>
--   <li><i>Output-only</i> A lower-bound estimate of the number of rows
--   currently in the streaming buffer.</li>
--   </ul>
sEstimatedRows :: Lens' Streamingbuffer (Maybe Word64)
data TableRow

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

-- | Represents a single row in the result set, consisting of one or more
--   fields.
trF :: Lens' TableRow [TableCell]
data JobListJobsItem

-- | Creates a value of <a>JobListJobsItem</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jljiJobReference</a></li>
--   <li><a>jljiStatus</a></li>
--   <li><a>jljiState</a></li>
--   <li><a>jljiUserEmail</a></li>
--   <li><a>jljiKind</a></li>
--   <li><a>jljiErrorResult</a></li>
--   <li><a>jljiId</a></li>
--   <li><a>jljiStatistics</a></li>
--   <li><a>jljiConfiguration</a></li>
--   </ul>
jobListJobsItem :: JobListJobsItem

-- | Job reference uniquely identifying the job.
jljiJobReference :: Lens' JobListJobsItem (Maybe JobReference)

-- | <ul>
--   <li><i>Full-projection-only</i> Describes the state of the job.</li>
--   </ul>
jljiStatus :: Lens' JobListJobsItem (Maybe JobStatus)

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

-- | <ul>
--   <li><i>Full-projection-only</i> Email address of the user who ran the
--   job.</li>
--   </ul>
jljiUserEmail :: Lens' JobListJobsItem (Maybe Text)

-- | The resource type.
jljiKind :: Lens' JobListJobsItem Text

-- | A result object that will be present only if the job has failed.
jljiErrorResult :: Lens' JobListJobsItem (Maybe ErrorProto)

-- | Unique opaque ID of the job.
jljiId :: Lens' JobListJobsItem (Maybe Text)

-- | <ul>
--   <li><i>Output-only</i> Information about the job, including starting
--   time and ending time of the job.</li>
--   </ul>
jljiStatistics :: Lens' JobListJobsItem (Maybe JobStatistics)

-- | <ul>
--   <li><i>Full-projection-only</i> Specifies the job configuration.</li>
--   </ul>
jljiConfiguration :: Lens' JobListJobsItem (Maybe JobConfiguration)
data TimePartitioning

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

-- | <ul>
--   <li><i>Optional</i> Number of milliseconds for which to keep the
--   storage for a partition.</li>
--   </ul>
tpExpirationMs :: Lens' TimePartitioning (Maybe Int64)

-- | <ul>
--   <li><i>Required</i> The only type supported is DAY, which will
--   generate one partition per day based on data loading time.</li>
--   </ul>
tpType :: Lens' TimePartitioning (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> The struct field values, in order of the struct
--   type's declaration.</li>
--   </ul>
--   
--   <i>See:</i> <a>queryParameterValueStructValues</a> smart constructor.
data QueryParameterValueStructValues

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

-- | <ul>
--   <li><i>Experimental</i> 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.</li>
--   </ul>
--   
--   <i>See:</i> <a>dataSetLabels</a> smart constructor.
data DataSetLabels

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

-- | Creates a value of <a>JobConfiguration</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jcCopy</a></li>
--   <li><a>jcLoad</a></li>
--   <li><a>jcQuery</a></li>
--   <li><a>jcExtract</a></li>
--   <li><a>jcLabels</a></li>
--   <li><a>jcDryRun</a></li>
--   </ul>
jobConfiguration :: JobConfiguration

-- | <ul>
--   <li><i>Pick one</i> Copies a table.</li>
--   </ul>
jcCopy :: Lens' JobConfiguration (Maybe JobConfigurationTableCopy)

-- | <ul>
--   <li><i>Pick one</i> Configures a load job.</li>
--   </ul>
jcLoad :: Lens' JobConfiguration (Maybe JobConfigurationLoad)

-- | <ul>
--   <li><i>Pick one</i> Configures a query job.</li>
--   </ul>
jcQuery :: Lens' JobConfiguration (Maybe JobConfigurationQuery)

-- | <ul>
--   <li><i>Pick one</i> Configures an extract job.</li>
--   </ul>
jcExtract :: Lens' JobConfiguration (Maybe JobConfigurationExtract)

-- | <ul>
--   <li><i>Experimental</i> 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 &lt;= 128 bytes in size.</li>
--   </ul>
jcLabels :: Lens' JobConfiguration (Maybe JobConfigurationLabels)

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
jcDryRun :: Lens' JobConfiguration (Maybe Bool)
data Job

-- | Creates a value of <a>Job</a> with the minimum fields required to make
--   a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jJobReference</a></li>
--   <li><a>jStatus</a></li>
--   <li><a>jEtag</a></li>
--   <li><a>jUserEmail</a></li>
--   <li><a>jKind</a></li>
--   <li><a>jSelfLink</a></li>
--   <li><a>jId</a></li>
--   <li><a>jStatistics</a></li>
--   <li><a>jConfiguration</a></li>
--   </ul>
job :: Job

-- | <ul>
--   <li><i>Optional</i> Reference describing the unique-per-user name of
--   the job.</li>
--   </ul>
jJobReference :: Lens' Job (Maybe JobReference)

-- | <ul>
--   <li><i>Output-only</i> The status of this job. Examine this value when
--   polling an asynchronous job to see if the job is complete.</li>
--   </ul>
jStatus :: Lens' Job (Maybe JobStatus)

-- | <ul>
--   <li><i>Output-only</i> A hash of this resource.</li>
--   </ul>
jEtag :: Lens' Job (Maybe Text)

-- | <ul>
--   <li><i>Output-only</i> Email address of the user who ran the job.</li>
--   </ul>
jUserEmail :: Lens' Job (Maybe Text)

-- | <ul>
--   <li><i>Output-only</i> The type of the resource.</li>
--   </ul>
jKind :: Lens' Job Text

-- | <ul>
--   <li><i>Output-only</i> A URL that can be used to access this resource
--   again.</li>
--   </ul>
jSelfLink :: Lens' Job (Maybe Text)

-- | <ul>
--   <li><i>Output-only</i> Opaque ID field of the job</li>
--   </ul>
jId :: Lens' Job (Maybe Text)

-- | <ul>
--   <li><i>Output-only</i> Information about the job, including starting
--   time and ending time of the job.</li>
--   </ul>
jStatistics :: Lens' Job (Maybe JobStatistics)

-- | <ul>
--   <li><i>Required</i> Describes the job configuration.</li>
--   </ul>
jConfiguration :: Lens' Job (Maybe JobConfiguration)
data TableDataInsertAllResponseInsertErrorsItem

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

-- | Error information for the row indicated by the index property.
tdiarieiErrors :: Lens' TableDataInsertAllResponseInsertErrorsItem [ErrorProto]

-- | The index of the row that error applies to.
tdiarieiIndex :: Lens' TableDataInsertAllResponseInsertErrorsItem (Maybe Word32)
data JobConfigurationExtract

-- | Creates a value of <a>JobConfigurationExtract</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jceDestinationFormat</a></li>
--   <li><a>jceSourceTable</a></li>
--   <li><a>jcePrintHeader</a></li>
--   <li><a>jceCompression</a></li>
--   <li><a>jceDestinationURIs</a></li>
--   <li><a>jceDestinationURI</a></li>
--   <li><a>jceFieldDelimiter</a></li>
--   </ul>
jobConfigurationExtract :: JobConfigurationExtract

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

-- | <ul>
--   <li><i>Required</i> A reference to the table being exported.</li>
--   </ul>
jceSourceTable :: Lens' JobConfigurationExtract (Maybe TableReference)

-- | <ul>
--   <li><i>Optional</i> Whether to print out a header row in the results.
--   Default is true.</li>
--   </ul>
jcePrintHeader :: Lens' JobConfigurationExtract Bool

-- | <ul>
--   <li><i>Optional</i> The compression type to use for exported files.
--   Possible values include GZIP and NONE. The default value is NONE.</li>
--   </ul>
jceCompression :: Lens' JobConfigurationExtract (Maybe Text)

-- | <ul>
--   <li><i>Pick one</i> A list of fully-qualified Google Cloud Storage
--   URIs where the extracted table should be written.</li>
--   </ul>
jceDestinationURIs :: Lens' JobConfigurationExtract [Text]

-- | <ul>
--   <li><i>Pick one</i> DEPRECATED: Use destinationUris instead, passing
--   only one URI as necessary. The fully-qualified Google Cloud Storage
--   URI where the extracted table should be written.</li>
--   </ul>
jceDestinationURI :: Lens' JobConfigurationExtract (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> Delimiter to use between fields in the exported
--   data. Default is ','</li>
--   </ul>
jceFieldDelimiter :: Lens' JobConfigurationExtract (Maybe Text)
data JobCancelResponse

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

-- | The resource type of the response.
jcrKind :: Lens' JobCancelResponse Text

-- | The final state of the job.
jcrJob :: Lens' JobCancelResponse (Maybe Job)

-- | Represents a single JSON object.
--   
--   <i>See:</i> <a>jsonObject</a> smart constructor.
data JSONObject

-- | Creates a value of <a>JSONObject</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>joAddtional</a></li>
--   </ul>
jsonObject :: HashMap Text JSONValue -> JSONObject
joAddtional :: Lens' JSONObject (HashMap Text JSONValue)
data JobConfigurationQuery

-- | Creates a value of <a>JobConfigurationQuery</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jcqDestinationTable</a></li>
--   <li><a>jcqWriteDisPosition</a></li>
--   <li><a>jcqPriority</a></li>
--   <li><a>jcqUseQueryCache</a></li>
--   <li><a>jcqPreserveNulls</a></li>
--   <li><a>jcqTableDefinitions</a></li>
--   <li><a>jcqQueryParameters</a></li>
--   <li><a>jcqSchemaUpdateOptions</a></li>
--   <li><a>jcqMaximumBytesBilled</a></li>
--   <li><a>jcqCreateDisPosition</a></li>
--   <li><a>jcqUserDefinedFunctionResources</a></li>
--   <li><a>jcqAllowLargeResults</a></li>
--   <li><a>jcqMaximumBillingTier</a></li>
--   <li><a>jcqQuery</a></li>
--   <li><a>jcqFlattenResults</a></li>
--   <li><a>jcqParameterMode</a></li>
--   <li><a>jcqUseLegacySQL</a></li>
--   <li><a>jcqDefaultDataSet</a></li>
--   </ul>
jobConfigurationQuery :: JobConfigurationQuery

-- | <ul>
--   <li><i>Optional</i> Describes the table where the query results should
--   be stored. If not present, a new table will be created to store the
--   results.</li>
--   </ul>
jcqDestinationTable :: Lens' JobConfigurationQuery (Maybe TableReference)

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

-- | <ul>
--   <li><i>Optional</i> Specifies a priority for the query. Possible
--   values include INTERACTIVE and BATCH. The default value is
--   INTERACTIVE.</li>
--   </ul>
jcqPriority :: Lens' JobConfigurationQuery (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
jcqUseQueryCache :: Lens' JobConfigurationQuery Bool

-- | <ul>
--   <li><i>Deprecated</i> This property is deprecated.</li>
--   </ul>
jcqPreserveNulls :: Lens' JobConfigurationQuery (Maybe Bool)

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
jcqTableDefinitions :: Lens' JobConfigurationQuery (Maybe JobConfigurationQueryTableDefinitions)

-- | Query parameters for standard SQL queries.
jcqQueryParameters :: Lens' JobConfigurationQuery [QueryParameter]

-- | <ul>
--   <li><i>Experimental</i> 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.</li>
--   </ul>
jcqSchemaUpdateOptions :: Lens' JobConfigurationQuery [Text]

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
jcqMaximumBytesBilled :: Lens' JobConfigurationQuery (Maybe Int64)

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

-- | <ul>
--   <li><i>Experimental</i> Describes user-defined function resources used
--   in the query.</li>
--   </ul>
jcqUserDefinedFunctionResources :: Lens' JobConfigurationQuery [UserDefinedFunctionResource]

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

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
jcqMaximumBillingTier :: Lens' JobConfigurationQuery Int32

-- | <ul>
--   <li><i>Required</i> BigQuery SQL query to execute.</li>
--   </ul>
jcqQuery :: Lens' JobConfigurationQuery (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
jcqFlattenResults :: Lens' JobConfigurationQuery Bool

-- | <ul>
--   <li><i>Experimental</i> Standard SQL only. Set to POSITIONAL to use
--   positional (?) query parameters or to NAMED to use named ('myparam)
--   query parameters in this query.</li>
--   </ul>
jcqParameterMode :: Lens' JobConfigurationQuery (Maybe Text)

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

-- | <ul>
--   <li><i>Optional</i> Specifies the default dataset to use for
--   unqualified table names in the query.</li>
--   </ul>
jcqDefaultDataSet :: Lens' JobConfigurationQuery (Maybe DataSetReference)
data GoogleSheetsOptions

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

-- | <ul>
--   <li><i>Optional</i> 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 &gt; 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.</li>
--   </ul>
gsoSkipLeadingRows :: Lens' GoogleSheetsOptions (Maybe Int64)
data TableDataInsertAllRequestRowsItem

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

-- | <ul>
--   <li><i>Required</i> A JSON object that contains a row of data. The
--   object's properties and values must match the destination table's
--   schema.</li>
--   </ul>
tdiarriJSON :: Lens' TableDataInsertAllRequestRowsItem (Maybe JSONObject)

-- | <ul>
--   <li><i>Optional</i> A unique ID for each row. BigQuery uses this
--   property to detect duplicate insertion requests on a best-effort
--   basis.</li>
--   </ul>
tdiarriInsertId :: Lens' TableDataInsertAllRequestRowsItem (Maybe Text)
data JobList

-- | Creates a value of <a>JobList</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jlEtag</a></li>
--   <li><a>jlNextPageToken</a></li>
--   <li><a>jlKind</a></li>
--   <li><a>jlJobs</a></li>
--   </ul>
jobList :: JobList

-- | A hash of this page of results.
jlEtag :: Lens' JobList (Maybe Text)

-- | A token to request the next page of results.
jlNextPageToken :: Lens' JobList (Maybe Text)

-- | The resource type of the response.
jlKind :: Lens' JobList Text

-- | List of jobs that were requested.
jlJobs :: Lens' JobList [JobListJobsItem]

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
--   
--   <i>See:</i> <a>jobConfigurationQueryTableDefinitions</a> smart
--   constructor.
data JobConfigurationQueryTableDefinitions

-- | Creates a value of <a>JobConfigurationQueryTableDefinitions</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jcqtdAddtional</a></li>
--   </ul>
jobConfigurationQueryTableDefinitions :: HashMap Text ExternalDataConfiguration -> JobConfigurationQueryTableDefinitions
jcqtdAddtional :: Lens' JobConfigurationQueryTableDefinitions (HashMap Text ExternalDataConfiguration)
data TableCell

-- | Creates a value of <a>TableCell</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tcV</a></li>
--   </ul>
tableCell :: TableCell
tcV :: Lens' TableCell (Maybe JSONValue)
data QueryParameterValue

-- | Creates a value of <a>QueryParameterValue</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>qpvStructValues</a></li>
--   <li><a>qpvValue</a></li>
--   <li><a>qpvArrayValues</a></li>
--   </ul>
queryParameterValue :: QueryParameterValue

-- | <ul>
--   <li><i>Optional</i> The struct field values, in order of the struct
--   type's declaration.</li>
--   </ul>
qpvStructValues :: Lens' QueryParameterValue (Maybe QueryParameterValueStructValues)

-- | <ul>
--   <li><i>Optional</i> The value of this value, if a simple scalar
--   type.</li>
--   </ul>
qpvValue :: Lens' QueryParameterValue (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> The array values, if this is an array type.</li>
--   </ul>
qpvArrayValues :: Lens' QueryParameterValue [QueryParameterValue]
data ViewDefinition

-- | Creates a value of <a>ViewDefinition</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vdUserDefinedFunctionResources</a></li>
--   <li><a>vdQuery</a></li>
--   <li><a>vdUseLegacySQL</a></li>
--   </ul>
viewDefinition :: ViewDefinition

-- | <ul>
--   <li><i>Experimental</i> Describes user-defined function resources used
--   in the query.</li>
--   </ul>
vdUserDefinedFunctionResources :: Lens' ViewDefinition [UserDefinedFunctionResource]

-- | <ul>
--   <li><i>Required</i> A query that BigQuery executes when the view is
--   referenced.</li>
--   </ul>
vdQuery :: Lens' ViewDefinition (Maybe Text)

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

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

-- | <ul>
--   <li><i>Pick one</i> A code resource to load from a Google Cloud
--   Storage URI (gs://bucket/path).</li>
--   </ul>
udfrResourceURI :: Lens' UserDefinedFunctionResource (Maybe Text)

-- | <ul>
--   <li><i>Pick one</i> 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.</li>
--   </ul>
udfrInlineCode :: Lens' UserDefinedFunctionResource (Maybe Text)
data JobStatistics2

-- | Creates a value of <a>JobStatistics2</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jSchema</a></li>
--   <li><a>jTotalBytesProcessed</a></li>
--   <li><a>jBillingTier</a></li>
--   <li><a>jUndeclaredQueryParameters</a></li>
--   <li><a>jReferencedTables</a></li>
--   <li><a>jStatementType</a></li>
--   <li><a>jNumDmlAffectedRows</a></li>
--   <li><a>jQueryPlan</a></li>
--   <li><a>jCacheHit</a></li>
--   <li><a>jTotalBytesBilled</a></li>
--   </ul>
jobStatistics2 :: JobStatistics2

-- | <ul>
--   <li><i>Output-only, Experimental</i> The schema of the results.
--   Present only for successful dry run of non-legacy SQL queries.</li>
--   </ul>
jSchema :: Lens' JobStatistics2 (Maybe TableSchema)

-- | <ul>
--   <li><i>Output-only</i> Total bytes processed for the job.</li>
--   </ul>
jTotalBytesProcessed :: Lens' JobStatistics2 (Maybe Int64)

-- | <ul>
--   <li><i>Output-only</i> Billing tier for the job.</li>
--   </ul>
jBillingTier :: Lens' JobStatistics2 (Maybe Int32)

-- | <ul>
--   <li><i>Output-only, Experimental</i> Standard SQL only: list of
--   undeclared query parameters detected during a dry run validation.</li>
--   </ul>
jUndeclaredQueryParameters :: Lens' JobStatistics2 [QueryParameter]

-- | <ul>
--   <li><i>Output-only, Experimental</i> Referenced tables for the job.
--   Queries that reference more than 50 tables will not have a complete
--   list.</li>
--   </ul>
jReferencedTables :: Lens' JobStatistics2 [TableReference]

-- | <ul>
--   <li><i>Output-only, Experimental</i> The type of query statement, if
--   valid.</li>
--   </ul>
jStatementType :: Lens' JobStatistics2 (Maybe Text)

-- | <ul>
--   <li><i>Output-only, Experimental</i> The number of rows affected by a
--   DML statement. Present only for DML statements INSERT, UPDATE or
--   DELETE.</li>
--   </ul>
jNumDmlAffectedRows :: Lens' JobStatistics2 (Maybe Int64)

-- | <ul>
--   <li><i>Output-only, Experimental</i> Describes execution plan for the
--   query.</li>
--   </ul>
jQueryPlan :: Lens' JobStatistics2 [ExplainQueryStage]

-- | <ul>
--   <li><i>Output-only</i> Whether the query result was fetched from the
--   query cache.</li>
--   </ul>
jCacheHit :: Lens' JobStatistics2 (Maybe Bool)

-- | <ul>
--   <li><i>Output-only</i> Total bytes billed for the job.</li>
--   </ul>
jTotalBytesBilled :: Lens' JobStatistics2 (Maybe Int64)
data JobStatus

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

-- | <ul>
--   <li><i>Output-only</i> Running state of the job.</li>
--   </ul>
jsState :: Lens' JobStatus (Maybe Text)

-- | <ul>
--   <li><i>Output-only</i> Final error result of the job. If present,
--   indicates that the job has completed and was unsuccessful.</li>
--   </ul>
jsErrorResult :: Lens' JobStatus (Maybe ErrorProto)

-- | <ul>
--   <li><i>Output-only</i> All errors encountered during the running of
--   the job. Errors here do not necessarily mean that the job has
--   completed or was unsuccessful.</li>
--   </ul>
jsErrors :: Lens' JobStatus [ErrorProto]

-- | <ul>
--   <li><i>Experimental</i> 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 &lt;= 128 bytes in size.</li>
--   </ul>
--   
--   <i>See:</i> <a>tableLabels</a> smart constructor.
data TableLabels

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

-- | Creates a value of <a>DataSetAccessItem</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsaiGroupByEmail</a></li>
--   <li><a>dsaiDomain</a></li>
--   <li><a>dsaiSpecialGroup</a></li>
--   <li><a>dsaiRole</a></li>
--   <li><a>dsaiView</a></li>
--   <li><a>dsaiUserByEmail</a></li>
--   </ul>
dataSetAccessItem :: DataSetAccessItem

-- | <ul>
--   <li><i>Pick one</i> An email address of a Google Group to grant access
--   to.</li>
--   </ul>
dsaiGroupByEmail :: Lens' DataSetAccessItem (Maybe Text)

-- | <ul>
--   <li><i>Pick one</i> A domain to grant access to. Any users signed in
--   with the domain specified will be granted the specified access.
--   Example: "example.com".</li>
--   </ul>
dsaiDomain :: Lens' DataSetAccessItem (Maybe Text)

-- | <ul>
--   <li><i>Pick one</i> 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.</li>
--   </ul>
dsaiSpecialGroup :: Lens' DataSetAccessItem (Maybe Text)

-- | <ul>
--   <li><i>Required</i> 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.</li>
--   </ul>
dsaiRole :: Lens' DataSetAccessItem (Maybe Text)

-- | <ul>
--   <li><i>Pick one</i> 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.</li>
--   </ul>
dsaiView :: Lens' DataSetAccessItem (Maybe TableReference)

-- | <ul>
--   <li><i>Pick one</i> An email address of a user to grant access to. For
--   example: fred'example.com.</li>
--   </ul>
dsaiUserByEmail :: Lens' DataSetAccessItem (Maybe Text)
data TableDataInsertAllResponse

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

-- | The resource type of the response.
tKind :: Lens' TableDataInsertAllResponse Text

-- | An array of errors for rows that were not inserted.
tInsertErrors :: Lens' TableDataInsertAllResponse [TableDataInsertAllResponseInsertErrorsItem]
data QueryParameterType

-- | Creates a value of <a>QueryParameterType</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>qptStructTypes</a></li>
--   <li><a>qptType</a></li>
--   <li><a>qptArrayType</a></li>
--   </ul>
queryParameterType :: QueryParameterType

-- | <ul>
--   <li><i>Optional</i> The types of the fields of this struct, in order,
--   if this is a struct.</li>
--   </ul>
qptStructTypes :: Lens' QueryParameterType [QueryParameterTypeStructTypesItem]

-- | <ul>
--   <li><i>Required</i> The top level type of this field.</li>
--   </ul>
qptType :: Lens' QueryParameterType (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> The type of the array's elements, if this is an
--   array.</li>
--   </ul>
qptArrayType :: Lens' QueryParameterType (Maybe QueryParameterType)
data Table

-- | Creates a value of <a>Table</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tabCreationTime</a></li>
--   <li><a>tabEtag</a></li>
--   <li><a>tabNumBytes</a></li>
--   <li><a>tabExternalDataConfiguration</a></li>
--   <li><a>tabLocation</a></li>
--   <li><a>tabTableReference</a></li>
--   <li><a>tabFriendlyName</a></li>
--   <li><a>tabKind</a></li>
--   <li><a>tabLastModifiedTime</a></li>
--   <li><a>tabSchema</a></li>
--   <li><a>tabStreamingBuffer</a></li>
--   <li><a>tabSelfLink</a></li>
--   <li><a>tabTimePartitioning</a></li>
--   <li><a>tabNumRows</a></li>
--   <li><a>tabView</a></li>
--   <li><a>tabId</a></li>
--   <li><a>tabLabels</a></li>
--   <li><a>tabType</a></li>
--   <li><a>tabNumLongTermBytes</a></li>
--   <li><a>tabExpirationTime</a></li>
--   <li><a>tabDescription</a></li>
--   </ul>
table :: Table

-- | <ul>
--   <li><i>Output-only</i> The time when this table was created, in
--   milliseconds since the epoch.</li>
--   </ul>
tabCreationTime :: Lens' Table (Maybe Int64)

-- | <ul>
--   <li><i>Output-only</i> A hash of this resource.</li>
--   </ul>
tabEtag :: Lens' Table (Maybe Text)

-- | <ul>
--   <li><i>Output-only</i> The size of this table in bytes, excluding any
--   data in the streaming buffer.</li>
--   </ul>
tabNumBytes :: Lens' Table (Maybe Int64)

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
tabExternalDataConfiguration :: Lens' Table (Maybe ExternalDataConfiguration)

-- | <ul>
--   <li><i>Output-only</i> The geographic location where the table
--   resides. This value is inherited from the dataset.</li>
--   </ul>
tabLocation :: Lens' Table (Maybe Text)

-- | <ul>
--   <li><i>Required</i> Reference describing the ID of this table.</li>
--   </ul>
tabTableReference :: Lens' Table (Maybe TableReference)

-- | <ul>
--   <li><i>Optional</i> A descriptive name for this table.</li>
--   </ul>
tabFriendlyName :: Lens' Table (Maybe Text)

-- | <ul>
--   <li><i>Output-only</i> The type of the resource.</li>
--   </ul>
tabKind :: Lens' Table Text

-- | <ul>
--   <li><i>Output-only</i> The time when this table was last modified, in
--   milliseconds since the epoch.</li>
--   </ul>
tabLastModifiedTime :: Lens' Table (Maybe Word64)

-- | <ul>
--   <li><i>Optional</i> Describes the schema of this table.</li>
--   </ul>
tabSchema :: Lens' Table (Maybe TableSchema)

-- | <ul>
--   <li><i>Output-only</i> 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.</li>
--   </ul>
tabStreamingBuffer :: Lens' Table (Maybe Streamingbuffer)

-- | <ul>
--   <li><i>Output-only</i> A URL that can be used to access this resource
--   again.</li>
--   </ul>
tabSelfLink :: Lens' Table (Maybe Text)

-- | <ul>
--   <li><i>Experimental</i> If specified, configures time-based
--   partitioning for this table.</li>
--   </ul>
tabTimePartitioning :: Lens' Table (Maybe TimePartitioning)

-- | <ul>
--   <li><i>Output-only</i> The number of rows of data in this table,
--   excluding any data in the streaming buffer.</li>
--   </ul>
tabNumRows :: Lens' Table (Maybe Word64)

-- | <ul>
--   <li><i>Optional</i> The view definition.</li>
--   </ul>
tabView :: Lens' Table (Maybe ViewDefinition)

-- | <ul>
--   <li><i>Output-only</i> An opaque ID uniquely identifying the
--   table.</li>
--   </ul>
tabId :: Lens' Table (Maybe Text)

-- | <ul>
--   <li><i>Experimental</i> 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 &lt;= 128 bytes in size.</li>
--   </ul>
tabLabels :: Lens' Table (Maybe TableLabels)

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

-- | <ul>
--   <li><i>Output-only</i> The number of bytes in the table that are
--   considered "long-term storage".</li>
--   </ul>
tabNumLongTermBytes :: Lens' Table (Maybe Int64)

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
tabExpirationTime :: Lens' Table (Maybe Int64)

-- | <ul>
--   <li><i>Optional</i> A user-friendly description of this table.</li>
--   </ul>
tabDescription :: Lens' Table (Maybe Text)
data ErrorProto

-- | Creates a value of <a>ErrorProto</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>epDebugInfo</a></li>
--   <li><a>epLocation</a></li>
--   <li><a>epReason</a></li>
--   <li><a>epMessage</a></li>
--   </ul>
errorProto :: ErrorProto

-- | Debugging information. This property is internal to Google and should
--   not be used.
epDebugInfo :: Lens' ErrorProto (Maybe Text)

-- | Specifies where the error occurred, if present.
epLocation :: Lens' ErrorProto (Maybe Text)

-- | A short error code that summarizes the error.
epReason :: Lens' ErrorProto (Maybe Text)

-- | A human-readable description of the error.
epMessage :: Lens' ErrorProto (Maybe Text)
data CSVOptions

-- | Creates a value of <a>CSVOptions</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>coSkipLeadingRows</a></li>
--   <li><a>coAllowJaggedRows</a></li>
--   <li><a>coAllowQuotedNewlines</a></li>
--   <li><a>coQuote</a></li>
--   <li><a>coEncoding</a></li>
--   <li><a>coFieldDelimiter</a></li>
--   </ul>
csvOptions :: CSVOptions

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
coSkipLeadingRows :: Lens' CSVOptions (Maybe Int64)

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

-- | <ul>
--   <li><i>Optional</i> Indicates if BigQuery should allow quoted data
--   sections that contain newline characters in a CSV file. The default
--   value is false.</li>
--   </ul>
coAllowQuotedNewlines :: Lens' CSVOptions (Maybe Bool)

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
coQuote :: Lens' CSVOptions Text

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

-- | <ul>
--   <li><i>Optional</i> 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 (',').</li>
--   </ul>
coFieldDelimiter :: Lens' CSVOptions (Maybe Text)
data JobStatistics3

-- | Creates a value of <a>JobStatistics3</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jsInputFiles</a></li>
--   <li><a>jsOutputRows</a></li>
--   <li><a>jsOutputBytes</a></li>
--   <li><a>jsInputFileBytes</a></li>
--   </ul>
jobStatistics3 :: JobStatistics3

-- | <ul>
--   <li><i>Output-only</i> Number of source files in a load job.</li>
--   </ul>
jsInputFiles :: Lens' JobStatistics3 (Maybe Int64)

-- | <ul>
--   <li><i>Output-only</i> Number of rows imported in a load job. Note
--   that while an import job is in the running state, this value may
--   change.</li>
--   </ul>
jsOutputRows :: Lens' JobStatistics3 (Maybe Int64)

-- | <ul>
--   <li><i>Output-only</i> Size of the loaded data in bytes. Note that
--   while a load job is in the running state, this value may change.</li>
--   </ul>
jsOutputBytes :: Lens' JobStatistics3 (Maybe Int64)

-- | <ul>
--   <li><i>Output-only</i> Number of bytes of source data in a load
--   job.</li>
--   </ul>
jsInputFileBytes :: Lens' JobStatistics3 (Maybe Int64)
data QueryResponse

-- | Creates a value of <a>QueryResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>qJobReference</a></li>
--   <li><a>qKind</a></li>
--   <li><a>qSchema</a></li>
--   <li><a>qTotalBytesProcessed</a></li>
--   <li><a>qRows</a></li>
--   <li><a>qPageToken</a></li>
--   <li><a>qNumDmlAffectedRows</a></li>
--   <li><a>qTotalRows</a></li>
--   <li><a>qErrors</a></li>
--   <li><a>qJobComplete</a></li>
--   <li><a>qCacheHit</a></li>
--   </ul>
queryResponse :: QueryResponse

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

-- | The resource type.
qKind :: Lens' QueryResponse Text

-- | The schema of the results. Present only when the query completes
--   successfully.
qSchema :: Lens' QueryResponse (Maybe TableSchema)

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

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

-- | A token used for paging results.
qPageToken :: Lens' QueryResponse (Maybe Text)

-- | <ul>
--   <li><i>Output-only, Experimental</i> The number of rows affected by a
--   DML statement. Present only for DML statements INSERT, UPDATE or
--   DELETE.</li>
--   </ul>
qNumDmlAffectedRows :: Lens' QueryResponse (Maybe Int64)

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

-- | <ul>
--   <li><i>Output-only</i> 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.</li>
--   </ul>
qErrors :: Lens' QueryResponse [ErrorProto]

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

-- | Whether the query result was fetched from the query cache.
qCacheHit :: Lens' QueryResponse (Maybe Bool)

-- | <ul>
--   <li><i>Experimental</i> The labels associated with this dataset. You
--   can use these to organize and group your datasets.</li>
--   </ul>
--   
--   <i>See:</i> <a>dataSetListDataSetsItemLabels</a> smart constructor.
data DataSetListDataSetsItemLabels

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

-- | <ul>
--   <li><i>Experimental</i> The labels associated with this table. You can
--   use these to organize and group your tables.</li>
--   </ul>
--   
--   <i>See:</i> <a>tableListTablesItemLabels</a> smart constructor.
data TableListTablesItemLabels

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


-- | Deletes the dataset specified by the datasetId value. Before you can
--   delete a dataset, you must delete all its tables, either manually or
--   by specifying deleteContents. Immediately after deletion, you can
--   create another dataset with the same name.
--   
--   <i>See:</i> <a>BigQuery API Reference</a> for
--   <tt>bigquery.datasets.delete</tt>.
module Network.Google.Resource.BigQuery.DataSets.Delete

-- | A resource alias for <tt>bigquery.datasets.delete</tt> method which
--   the <a>DataSetsDelete</a> request conforms to.
type DataSetsDeleteResource = "bigquery" :> ("v2" :> ("projects" :> (Capture "projectId" Text :> ("datasets" :> (Capture "datasetId" Text :> (QueryParam "deleteContents" Bool :> (QueryParam "alt" AltJSON :> Delete '[JSON] ())))))))

-- | Creates a value of <a>DataSetsDelete</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsdDataSetId</a></li>
--   <li><a>dsdProjectId</a></li>
--   <li><a>dsdDeleteContents</a></li>
--   </ul>
dataSetsDelete :: Text -> Text -> DataSetsDelete

-- | Deletes the dataset specified by the datasetId value. Before you can
--   delete a dataset, you must delete all its tables, either manually or
--   by specifying deleteContents. Immediately after deletion, you can
--   create another dataset with the same name.
--   
--   <i>See:</i> <a>dataSetsDelete</a> smart constructor.
data DataSetsDelete

-- | Dataset ID of dataset being deleted
dsdDataSetId :: Lens' DataSetsDelete Text

-- | Project ID of the dataset being deleted
dsdProjectId :: Lens' DataSetsDelete Text

-- | If True, delete all the tables in the dataset. If False and the
--   dataset contains tables, the request will fail. Default is False
dsdDeleteContents :: Lens' DataSetsDelete (Maybe Bool)
instance GHC.Generics.Generic Network.Google.Resource.BigQuery.DataSets.Delete.DataSetsDelete
instance Data.Data.Data Network.Google.Resource.BigQuery.DataSets.Delete.DataSetsDelete
instance GHC.Show.Show Network.Google.Resource.BigQuery.DataSets.Delete.DataSetsDelete
instance GHC.Classes.Eq Network.Google.Resource.BigQuery.DataSets.Delete.DataSetsDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.BigQuery.DataSets.Delete.DataSetsDelete


-- | Returns the dataset specified by datasetID.
--   
--   <i>See:</i> <a>BigQuery API Reference</a> for
--   <tt>bigquery.datasets.get</tt>.
module Network.Google.Resource.BigQuery.DataSets.Get

-- | A resource alias for <tt>bigquery.datasets.get</tt> method which the
--   <a>DataSetsGet</a> request conforms to.
type DataSetsGetResource = "bigquery" :> ("v2" :> ("projects" :> (Capture "projectId" Text :> ("datasets" :> (Capture "datasetId" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] DataSet))))))

-- | Creates a value of <a>DataSetsGet</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsgDataSetId</a></li>
--   <li><a>dsgProjectId</a></li>
--   </ul>
dataSetsGet :: Text -> Text -> DataSetsGet

-- | Returns the dataset specified by datasetID.
--   
--   <i>See:</i> <a>dataSetsGet</a> smart constructor.
data DataSetsGet

-- | Dataset ID of the requested dataset
dsgDataSetId :: Lens' DataSetsGet Text

-- | Project ID of the requested dataset
dsgProjectId :: Lens' DataSetsGet Text
instance GHC.Generics.Generic Network.Google.Resource.BigQuery.DataSets.Get.DataSetsGet
instance Data.Data.Data Network.Google.Resource.BigQuery.DataSets.Get.DataSetsGet
instance GHC.Show.Show Network.Google.Resource.BigQuery.DataSets.Get.DataSetsGet
instance GHC.Classes.Eq Network.Google.Resource.BigQuery.DataSets.Get.DataSetsGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.BigQuery.DataSets.Get.DataSetsGet


-- | Creates a new empty dataset.
--   
--   <i>See:</i> <a>BigQuery API Reference</a> for
--   <tt>bigquery.datasets.insert</tt>.
module Network.Google.Resource.BigQuery.DataSets.Insert

-- | A resource alias for <tt>bigquery.datasets.insert</tt> method which
--   the <a>DataSetsInsert</a> request conforms to.
type DataSetsInsertResource = "bigquery" :> ("v2" :> ("projects" :> (Capture "projectId" Text :> ("datasets" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] DataSet :> Post '[JSON] DataSet))))))

-- | Creates a value of <a>DataSetsInsert</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsiPayload</a></li>
--   <li><a>dsiProjectId</a></li>
--   </ul>
dataSetsInsert :: DataSet -> Text -> DataSetsInsert

-- | Creates a new empty dataset.
--   
--   <i>See:</i> <a>dataSetsInsert</a> smart constructor.
data DataSetsInsert

-- | Multipart request metadata.
dsiPayload :: Lens' DataSetsInsert DataSet

-- | Project ID of the new dataset
dsiProjectId :: Lens' DataSetsInsert Text
instance GHC.Generics.Generic Network.Google.Resource.BigQuery.DataSets.Insert.DataSetsInsert
instance Data.Data.Data Network.Google.Resource.BigQuery.DataSets.Insert.DataSetsInsert
instance GHC.Show.Show Network.Google.Resource.BigQuery.DataSets.Insert.DataSetsInsert
instance GHC.Classes.Eq Network.Google.Resource.BigQuery.DataSets.Insert.DataSetsInsert
instance Network.Google.Types.GoogleRequest Network.Google.Resource.BigQuery.DataSets.Insert.DataSetsInsert


-- | Lists all datasets in the specified project to which you have been
--   granted the READER dataset role.
--   
--   <i>See:</i> <a>BigQuery API Reference</a> for
--   <tt>bigquery.datasets.list</tt>.
module Network.Google.Resource.BigQuery.DataSets.List

-- | A resource alias for <tt>bigquery.datasets.list</tt> method which the
--   <a>DataSetsList</a> request conforms to.
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)))))))))

-- | Creates a value of <a>DataSetsList</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dslAll</a></li>
--   <li><a>dslFilter</a></li>
--   <li><a>dslPageToken</a></li>
--   <li><a>dslProjectId</a></li>
--   <li><a>dslMaxResults</a></li>
--   </ul>
dataSetsList :: Text -> DataSetsList

-- | Lists all datasets in the specified project to which you have been
--   granted the READER dataset role.
--   
--   <i>See:</i> <a>dataSetsList</a> smart constructor.
data DataSetsList

-- | Whether to list all datasets, including hidden ones
dslAll :: Lens' DataSetsList (Maybe Bool)

-- | An expression for filtering the results of the request by label. The
--   syntax is "labels.[:]". Multiple filters can be ANDed together by
--   connecting with a space. Example: "labels.department:receiving
--   labels.active". See Filtering datasets using labels for details.
dslFilter :: Lens' DataSetsList (Maybe Text)

-- | Page token, returned by a previous call, to request the next page of
--   results
dslPageToken :: Lens' DataSetsList (Maybe Text)

-- | Project ID of the datasets to be listed
dslProjectId :: Lens' DataSetsList Text

-- | The maximum number of results to return
dslMaxResults :: Lens' DataSetsList (Maybe Word32)
instance GHC.Generics.Generic Network.Google.Resource.BigQuery.DataSets.List.DataSetsList
instance Data.Data.Data Network.Google.Resource.BigQuery.DataSets.List.DataSetsList
instance GHC.Show.Show Network.Google.Resource.BigQuery.DataSets.List.DataSetsList
instance GHC.Classes.Eq Network.Google.Resource.BigQuery.DataSets.List.DataSetsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.BigQuery.DataSets.List.DataSetsList


-- | Updates information in an existing dataset. The update method replaces
--   the entire dataset resource, whereas the patch method only replaces
--   fields that are provided in the submitted dataset resource. This
--   method supports patch semantics.
--   
--   <i>See:</i> <a>BigQuery API Reference</a> for
--   <tt>bigquery.datasets.patch</tt>.
module Network.Google.Resource.BigQuery.DataSets.Patch

-- | A resource alias for <tt>bigquery.datasets.patch</tt> method which the
--   <a>DataSetsPatch</a> request conforms to.
type DataSetsPatchResource = "bigquery" :> ("v2" :> ("projects" :> (Capture "projectId" Text :> ("datasets" :> (Capture "datasetId" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] DataSet :> Patch '[JSON] DataSet)))))))

-- | Creates a value of <a>DataSetsPatch</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dspPayload</a></li>
--   <li><a>dspDataSetId</a></li>
--   <li><a>dspProjectId</a></li>
--   </ul>
dataSetsPatch :: DataSet -> Text -> Text -> DataSetsPatch

-- | Updates information in an existing dataset. The update method replaces
--   the entire dataset resource, whereas the patch method only replaces
--   fields that are provided in the submitted dataset resource. This
--   method supports patch semantics.
--   
--   <i>See:</i> <a>dataSetsPatch</a> smart constructor.
data DataSetsPatch

-- | Multipart request metadata.
dspPayload :: Lens' DataSetsPatch DataSet

-- | Dataset ID of the dataset being updated
dspDataSetId :: Lens' DataSetsPatch Text

-- | Project ID of the dataset being updated
dspProjectId :: Lens' DataSetsPatch Text
instance GHC.Generics.Generic Network.Google.Resource.BigQuery.DataSets.Patch.DataSetsPatch
instance Data.Data.Data Network.Google.Resource.BigQuery.DataSets.Patch.DataSetsPatch
instance GHC.Show.Show Network.Google.Resource.BigQuery.DataSets.Patch.DataSetsPatch
instance GHC.Classes.Eq Network.Google.Resource.BigQuery.DataSets.Patch.DataSetsPatch
instance Network.Google.Types.GoogleRequest Network.Google.Resource.BigQuery.DataSets.Patch.DataSetsPatch


-- | Updates information in an existing dataset. The update method replaces
--   the entire dataset resource, whereas the patch method only replaces
--   fields that are provided in the submitted dataset resource.
--   
--   <i>See:</i> <a>BigQuery API Reference</a> for
--   <tt>bigquery.datasets.update</tt>.
module Network.Google.Resource.BigQuery.DataSets.Update

-- | A resource alias for <tt>bigquery.datasets.update</tt> method which
--   the <a>DataSetsUpdate</a> request conforms to.
type DataSetsUpdateResource = "bigquery" :> ("v2" :> ("projects" :> (Capture "projectId" Text :> ("datasets" :> (Capture "datasetId" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] DataSet :> Put '[JSON] DataSet)))))))

-- | Creates a value of <a>DataSetsUpdate</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsuPayload</a></li>
--   <li><a>dsuDataSetId</a></li>
--   <li><a>dsuProjectId</a></li>
--   </ul>
dataSetsUpdate :: DataSet -> Text -> Text -> DataSetsUpdate

-- | Updates information in an existing dataset. The update method replaces
--   the entire dataset resource, whereas the patch method only replaces
--   fields that are provided in the submitted dataset resource.
--   
--   <i>See:</i> <a>dataSetsUpdate</a> smart constructor.
data DataSetsUpdate

-- | Multipart request metadata.
dsuPayload :: Lens' DataSetsUpdate DataSet

-- | Dataset ID of the dataset being updated
dsuDataSetId :: Lens' DataSetsUpdate Text

-- | Project ID of the dataset being updated
dsuProjectId :: Lens' DataSetsUpdate Text
instance GHC.Generics.Generic Network.Google.Resource.BigQuery.DataSets.Update.DataSetsUpdate
instance Data.Data.Data Network.Google.Resource.BigQuery.DataSets.Update.DataSetsUpdate
instance GHC.Show.Show Network.Google.Resource.BigQuery.DataSets.Update.DataSetsUpdate
instance GHC.Classes.Eq Network.Google.Resource.BigQuery.DataSets.Update.DataSetsUpdate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.BigQuery.DataSets.Update.DataSetsUpdate


-- | 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 completed successfully. Cancelled jobs may still incur costs.
--   
--   <i>See:</i> <a>BigQuery API Reference</a> for
--   <tt>bigquery.jobs.cancel</tt>.
module Network.Google.Resource.BigQuery.Jobs.Cancel

-- | A resource alias for <tt>bigquery.jobs.cancel</tt> method which the
--   <a>JobsCancel</a> request conforms to.
type JobsCancelResource = "bigquery" :> ("v2" :> ("projects" :> (Capture "projectId" Text :> ("jobs" :> (Capture "jobId" Text :> ("cancel" :> (QueryParam "alt" AltJSON :> Post '[JSON] JobCancelResponse)))))))

-- | Creates a value of <a>JobsCancel</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jcJobId</a></li>
--   <li><a>jcProjectId</a></li>
--   </ul>
jobsCancel :: Text -> Text -> JobsCancel

-- | 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 completed successfully. Cancelled jobs may still incur costs.
--   
--   <i>See:</i> <a>jobsCancel</a> smart constructor.
data JobsCancel

-- | <ul>
--   <li><i>Required</i> Job ID of the job to cancel</li>
--   </ul>
jcJobId :: Lens' JobsCancel Text

-- | <ul>
--   <li><i>Required</i> Project ID of the job to cancel</li>
--   </ul>
jcProjectId :: Lens' JobsCancel Text
instance GHC.Generics.Generic Network.Google.Resource.BigQuery.Jobs.Cancel.JobsCancel
instance Data.Data.Data Network.Google.Resource.BigQuery.Jobs.Cancel.JobsCancel
instance GHC.Show.Show Network.Google.Resource.BigQuery.Jobs.Cancel.JobsCancel
instance GHC.Classes.Eq Network.Google.Resource.BigQuery.Jobs.Cancel.JobsCancel
instance Network.Google.Types.GoogleRequest Network.Google.Resource.BigQuery.Jobs.Cancel.JobsCancel


-- | Returns information about a specific job. Job information is available
--   for a six month period after creation. Requires that you're the person
--   who ran the job, or have the Is Owner project role.
--   
--   <i>See:</i> <a>BigQuery API Reference</a> for
--   <tt>bigquery.jobs.get</tt>.
module Network.Google.Resource.BigQuery.Jobs.Get

-- | A resource alias for <tt>bigquery.jobs.get</tt> method which the
--   <a>JobsGet</a> request conforms to.
type JobsGetResource = "bigquery" :> ("v2" :> ("projects" :> (Capture "projectId" Text :> ("jobs" :> (Capture "jobId" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Job))))))

-- | Creates a value of <a>JobsGet</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jgJobId</a></li>
--   <li><a>jgProjectId</a></li>
--   </ul>
jobsGet :: Text -> Text -> JobsGet

-- | Returns information about a specific job. Job information is available
--   for a six month period after creation. Requires that you're the person
--   who ran the job, or have the Is Owner project role.
--   
--   <i>See:</i> <a>jobsGet</a> smart constructor.
data JobsGet

-- | <ul>
--   <li><i>Required</i> Job ID of the requested job</li>
--   </ul>
jgJobId :: Lens' JobsGet Text

-- | <ul>
--   <li><i>Required</i> Project ID of the requested job</li>
--   </ul>
jgProjectId :: Lens' JobsGet Text
instance GHC.Generics.Generic Network.Google.Resource.BigQuery.Jobs.Get.JobsGet
instance Data.Data.Data Network.Google.Resource.BigQuery.Jobs.Get.JobsGet
instance GHC.Show.Show Network.Google.Resource.BigQuery.Jobs.Get.JobsGet
instance GHC.Classes.Eq Network.Google.Resource.BigQuery.Jobs.Get.JobsGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.BigQuery.Jobs.Get.JobsGet


-- | Retrieves the results of a query job.
--   
--   <i>See:</i> <a>BigQuery API Reference</a> for
--   <tt>bigquery.jobs.getQueryResults</tt>.
module Network.Google.Resource.BigQuery.Jobs.GetQueryResults

-- | A resource alias for <tt>bigquery.jobs.getQueryResults</tt> method
--   which the <a>JobsGetQueryResults</a> request conforms to.
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))))))))))

-- | Creates a value of <a>JobsGetQueryResults</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jgqrJobId</a></li>
--   <li><a>jgqrTimeoutMs</a></li>
--   <li><a>jgqrPageToken</a></li>
--   <li><a>jgqrProjectId</a></li>
--   <li><a>jgqrStartIndex</a></li>
--   <li><a>jgqrMaxResults</a></li>
--   </ul>
jobsGetQueryResults :: Text -> Text -> JobsGetQueryResults

-- | Retrieves the results of a query job.
--   
--   <i>See:</i> <a>jobsGetQueryResults</a> smart constructor.
data JobsGetQueryResults

-- | <ul>
--   <li><i>Required</i> Job ID of the query job</li>
--   </ul>
jgqrJobId :: Lens' JobsGetQueryResults Text

-- | 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
jgqrTimeoutMs :: Lens' JobsGetQueryResults (Maybe Word32)

-- | Page token, returned by a previous call, to request the next page of
--   results
jgqrPageToken :: Lens' JobsGetQueryResults (Maybe Text)

-- | <ul>
--   <li><i>Required</i> Project ID of the query job</li>
--   </ul>
jgqrProjectId :: Lens' JobsGetQueryResults Text

-- | Zero-based index of the starting row
jgqrStartIndex :: Lens' JobsGetQueryResults (Maybe Word64)

-- | Maximum number of results to read
jgqrMaxResults :: Lens' JobsGetQueryResults (Maybe Word32)
instance GHC.Generics.Generic Network.Google.Resource.BigQuery.Jobs.GetQueryResults.JobsGetQueryResults
instance Data.Data.Data Network.Google.Resource.BigQuery.Jobs.GetQueryResults.JobsGetQueryResults
instance GHC.Show.Show Network.Google.Resource.BigQuery.Jobs.GetQueryResults.JobsGetQueryResults
instance GHC.Classes.Eq Network.Google.Resource.BigQuery.Jobs.GetQueryResults.JobsGetQueryResults
instance Network.Google.Types.GoogleRequest Network.Google.Resource.BigQuery.Jobs.GetQueryResults.JobsGetQueryResults


-- | Starts a new asynchronous job. Requires the Can View project role.
--   
--   <i>See:</i> <a>BigQuery API Reference</a> for
--   <tt>bigquery.jobs.insert</tt>.
module Network.Google.Resource.BigQuery.Jobs.Insert

-- | A resource alias for <tt>bigquery.jobs.insert</tt> method which the
--   <a>JobsInsert</a> request conforms to.
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)))))))))

-- | Creates a value of <a>JobsInsert</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jiPayload</a></li>
--   <li><a>jiProjectId</a></li>
--   </ul>
jobsInsert :: Job -> Text -> JobsInsert

-- | Starts a new asynchronous job. Requires the Can View project role.
--   
--   <i>See:</i> <a>jobsInsert</a> smart constructor.
data JobsInsert

-- | Multipart request metadata.
jiPayload :: Lens' JobsInsert Job

-- | Project ID of the project that will be billed for the job
jiProjectId :: Lens' JobsInsert Text
instance GHC.Generics.Generic Network.Google.Resource.BigQuery.Jobs.Insert.JobsInsert
instance Data.Data.Data Network.Google.Resource.BigQuery.Jobs.Insert.JobsInsert
instance GHC.Show.Show Network.Google.Resource.BigQuery.Jobs.Insert.JobsInsert
instance GHC.Classes.Eq Network.Google.Resource.BigQuery.Jobs.Insert.JobsInsert
instance Network.Google.Types.GoogleRequest Network.Google.Resource.BigQuery.Jobs.Insert.JobsInsert
instance Network.Google.Types.GoogleRequest (Network.Google.Types.MediaUpload Network.Google.Resource.BigQuery.Jobs.Insert.JobsInsert)


-- | Lists all jobs that you started in the specified project. Job
--   information is available for a six month period after creation. The
--   job list is sorted in reverse chronological order, by job creation
--   time. Requires the Can View project role, or the Is Owner project role
--   if you set the allUsers property.
--   
--   <i>See:</i> <a>BigQuery API Reference</a> for
--   <tt>bigquery.jobs.list</tt>.
module Network.Google.Resource.BigQuery.Jobs.List

-- | A resource alias for <tt>bigquery.jobs.list</tt> method which the
--   <a>JobsList</a> request conforms to.
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))))))))))

-- | Creates a value of <a>JobsList</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jlStateFilter</a></li>
--   <li><a>jlProjection</a></li>
--   <li><a>jlPageToken</a></li>
--   <li><a>jlProjectId</a></li>
--   <li><a>jlAllUsers</a></li>
--   <li><a>jlMaxResults</a></li>
--   </ul>
jobsList :: Text -> JobsList

-- | Lists all jobs that you started in the specified project. Job
--   information is available for a six month period after creation. The
--   job list is sorted in reverse chronological order, by job creation
--   time. Requires the Can View project role, or the Is Owner project role
--   if you set the allUsers property.
--   
--   <i>See:</i> <a>jobsList</a> smart constructor.
data JobsList

-- | Filter for job state
jlStateFilter :: Lens' JobsList [JobsListStateFilter]

-- | Restrict information returned to a set of selected fields
jlProjection :: Lens' JobsList (Maybe JobsListProjection)

-- | Page token, returned by a previous call, to request the next page of
--   results
jlPageToken :: Lens' JobsList (Maybe Text)

-- | Project ID of the jobs to list
jlProjectId :: Lens' JobsList Text

-- | Whether to display jobs owned by all users in the project. Default
--   false
jlAllUsers :: Lens' JobsList (Maybe Bool)

-- | Maximum number of results to return
jlMaxResults :: Lens' JobsList (Maybe Word32)
instance GHC.Generics.Generic Network.Google.Resource.BigQuery.Jobs.List.JobsList
instance Data.Data.Data Network.Google.Resource.BigQuery.Jobs.List.JobsList
instance GHC.Show.Show Network.Google.Resource.BigQuery.Jobs.List.JobsList
instance GHC.Classes.Eq Network.Google.Resource.BigQuery.Jobs.List.JobsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.BigQuery.Jobs.List.JobsList


-- | Runs a BigQuery SQL query synchronously and returns query results if
--   the query completes within a specified timeout.
--   
--   <i>See:</i> <a>BigQuery API Reference</a> for
--   <tt>bigquery.jobs.query</tt>.
module Network.Google.Resource.BigQuery.Jobs.Query

-- | A resource alias for <tt>bigquery.jobs.query</tt> method which the
--   <a>JobsQuery</a> request conforms to.
type JobsQueryResource = "bigquery" :> ("v2" :> ("projects" :> (Capture "projectId" Text :> ("queries" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] QueryRequest :> Post '[JSON] QueryResponse))))))

-- | Creates a value of <a>JobsQuery</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jqPayload</a></li>
--   <li><a>jqProjectId</a></li>
--   </ul>
jobsQuery :: QueryRequest -> Text -> JobsQuery

-- | Runs a BigQuery SQL query synchronously and returns query results if
--   the query completes within a specified timeout.
--   
--   <i>See:</i> <a>jobsQuery</a> smart constructor.
data JobsQuery

-- | Multipart request metadata.
jqPayload :: Lens' JobsQuery QueryRequest

-- | Project ID of the project billed for the query
jqProjectId :: Lens' JobsQuery Text
instance GHC.Generics.Generic Network.Google.Resource.BigQuery.Jobs.Query.JobsQuery
instance Data.Data.Data Network.Google.Resource.BigQuery.Jobs.Query.JobsQuery
instance GHC.Show.Show Network.Google.Resource.BigQuery.Jobs.Query.JobsQuery
instance GHC.Classes.Eq Network.Google.Resource.BigQuery.Jobs.Query.JobsQuery
instance Network.Google.Types.GoogleRequest Network.Google.Resource.BigQuery.Jobs.Query.JobsQuery


-- | Lists all projects to which you have been granted any project role.
--   
--   <i>See:</i> <a>BigQuery API Reference</a> for
--   <tt>bigquery.projects.list</tt>.
module Network.Google.Resource.BigQuery.Projects.List

-- | A resource alias for <tt>bigquery.projects.list</tt> method which the
--   <a>ProjectsList</a> request conforms to.
type ProjectsListResource = "bigquery" :> ("v2" :> ("projects" :> (QueryParam "pageToken" Text :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "alt" AltJSON :> Get '[JSON] ProjectList)))))

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

-- | Lists all projects to which you have been granted any project role.
--   
--   <i>See:</i> <a>projectsList</a> smart constructor.
data ProjectsList

-- | Page token, returned by a previous call, to request the next page of
--   results
plPageToken :: Lens' ProjectsList (Maybe Text)

-- | Maximum number of results to return
plMaxResults :: Lens' ProjectsList (Maybe Word32)
instance GHC.Generics.Generic Network.Google.Resource.BigQuery.Projects.List.ProjectsList
instance Data.Data.Data Network.Google.Resource.BigQuery.Projects.List.ProjectsList
instance GHC.Show.Show Network.Google.Resource.BigQuery.Projects.List.ProjectsList
instance GHC.Classes.Eq Network.Google.Resource.BigQuery.Projects.List.ProjectsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.BigQuery.Projects.List.ProjectsList


-- | Streams data into BigQuery one record at a time without needing to run
--   a load job. Requires the WRITER dataset role.
--   
--   <i>See:</i> <a>BigQuery API Reference</a> for
--   <tt>bigquery.tabledata.insertAll</tt>.
module Network.Google.Resource.BigQuery.TableData.InsertAll

-- | A resource alias for <tt>bigquery.tabledata.insertAll</tt> method
--   which the <a>TableDataInsertAll</a> request conforms to.
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))))))))))

-- | Creates a value of <a>TableDataInsertAll</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tdiaPayload</a></li>
--   <li><a>tdiaDataSetId</a></li>
--   <li><a>tdiaProjectId</a></li>
--   <li><a>tdiaTableId</a></li>
--   </ul>
tableDataInsertAll :: TableDataInsertAllRequest -> Text -> Text -> Text -> TableDataInsertAll

-- | Streams data into BigQuery one record at a time without needing to run
--   a load job. Requires the WRITER dataset role.
--   
--   <i>See:</i> <a>tableDataInsertAll</a> smart constructor.
data TableDataInsertAll

-- | Multipart request metadata.
tdiaPayload :: Lens' TableDataInsertAll TableDataInsertAllRequest

-- | Dataset ID of the destination table.
tdiaDataSetId :: Lens' TableDataInsertAll Text

-- | Project ID of the destination table.
tdiaProjectId :: Lens' TableDataInsertAll Text

-- | Table ID of the destination table.
tdiaTableId :: Lens' TableDataInsertAll Text
instance GHC.Generics.Generic Network.Google.Resource.BigQuery.TableData.InsertAll.TableDataInsertAll
instance Data.Data.Data Network.Google.Resource.BigQuery.TableData.InsertAll.TableDataInsertAll
instance GHC.Show.Show Network.Google.Resource.BigQuery.TableData.InsertAll.TableDataInsertAll
instance GHC.Classes.Eq Network.Google.Resource.BigQuery.TableData.InsertAll.TableDataInsertAll
instance Network.Google.Types.GoogleRequest Network.Google.Resource.BigQuery.TableData.InsertAll.TableDataInsertAll


-- | Retrieves table data from a specified set of rows. Requires the READER
--   dataset role.
--   
--   <i>See:</i> <a>BigQuery API Reference</a> for
--   <tt>bigquery.tabledata.list</tt>.
module Network.Google.Resource.BigQuery.TableData.List

-- | A resource alias for <tt>bigquery.tabledata.list</tt> method which the
--   <a>TableDataList'</a> request conforms to.
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))))))))))))

-- | Creates a value of <a>TableDataList'</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tDataSetId</a></li>
--   <li><a>tPageToken</a></li>
--   <li><a>tProjectId</a></li>
--   <li><a>tTableId</a></li>
--   <li><a>tStartIndex</a></li>
--   <li><a>tMaxResults</a></li>
--   </ul>
tableDataList' :: Text -> Text -> Text -> TableDataList'

-- | Retrieves table data from a specified set of rows. Requires the READER
--   dataset role.
--   
--   <i>See:</i> <a>tableDataList'</a> smart constructor.
data TableDataList'

-- | Dataset ID of the table to read
tDataSetId :: Lens' TableDataList' Text

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

-- | Project ID of the table to read
tProjectId :: Lens' TableDataList' Text

-- | Table ID of the table to read
tTableId :: Lens' TableDataList' Text

-- | Zero-based index of the starting row to read
tStartIndex :: Lens' TableDataList' (Maybe Word64)

-- | Maximum number of results to return
tMaxResults :: Lens' TableDataList' (Maybe Word32)
instance GHC.Generics.Generic Network.Google.Resource.BigQuery.TableData.List.TableDataList'
instance Data.Data.Data Network.Google.Resource.BigQuery.TableData.List.TableDataList'
instance GHC.Show.Show Network.Google.Resource.BigQuery.TableData.List.TableDataList'
instance GHC.Classes.Eq Network.Google.Resource.BigQuery.TableData.List.TableDataList'
instance Network.Google.Types.GoogleRequest Network.Google.Resource.BigQuery.TableData.List.TableDataList'


-- | Deletes the table specified by tableId from the dataset. If the table
--   contains data, all the data will be deleted.
--   
--   <i>See:</i> <a>BigQuery API Reference</a> for
--   <tt>bigquery.tables.delete</tt>.
module Network.Google.Resource.BigQuery.Tables.Delete

-- | A resource alias for <tt>bigquery.tables.delete</tt> method which the
--   <a>TablesDelete</a> request conforms to.
type TablesDeleteResource = "bigquery" :> ("v2" :> ("projects" :> (Capture "projectId" Text :> ("datasets" :> (Capture "datasetId" Text :> ("tables" :> (Capture "tableId" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] ()))))))))

-- | Creates a value of <a>TablesDelete</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tdDataSetId</a></li>
--   <li><a>tdProjectId</a></li>
--   <li><a>tdTableId</a></li>
--   </ul>
tablesDelete :: Text -> Text -> Text -> TablesDelete

-- | Deletes the table specified by tableId from the dataset. If the table
--   contains data, all the data will be deleted.
--   
--   <i>See:</i> <a>tablesDelete</a> smart constructor.
data TablesDelete

-- | Dataset ID of the table to delete
tdDataSetId :: Lens' TablesDelete Text

-- | Project ID of the table to delete
tdProjectId :: Lens' TablesDelete Text

-- | Table ID of the table to delete
tdTableId :: Lens' TablesDelete Text
instance GHC.Generics.Generic Network.Google.Resource.BigQuery.Tables.Delete.TablesDelete
instance Data.Data.Data Network.Google.Resource.BigQuery.Tables.Delete.TablesDelete
instance GHC.Show.Show Network.Google.Resource.BigQuery.Tables.Delete.TablesDelete
instance GHC.Classes.Eq Network.Google.Resource.BigQuery.Tables.Delete.TablesDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.BigQuery.Tables.Delete.TablesDelete


-- | 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 describes the structure of this table.
--   
--   <i>See:</i> <a>BigQuery API Reference</a> for
--   <tt>bigquery.tables.get</tt>.
module Network.Google.Resource.BigQuery.Tables.Get

-- | A resource alias for <tt>bigquery.tables.get</tt> method which the
--   <a>TablesGet</a> request conforms to.
type TablesGetResource = "bigquery" :> ("v2" :> ("projects" :> (Capture "projectId" Text :> ("datasets" :> (Capture "datasetId" Text :> ("tables" :> (Capture "tableId" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Table))))))))

-- | Creates a value of <a>TablesGet</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tgDataSetId</a></li>
--   <li><a>tgProjectId</a></li>
--   <li><a>tgTableId</a></li>
--   </ul>
tablesGet :: Text -> Text -> Text -> TablesGet

-- | 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 describes the structure of this table.
--   
--   <i>See:</i> <a>tablesGet</a> smart constructor.
data TablesGet

-- | Dataset ID of the requested table
tgDataSetId :: Lens' TablesGet Text

-- | Project ID of the requested table
tgProjectId :: Lens' TablesGet Text

-- | Table ID of the requested table
tgTableId :: Lens' TablesGet Text
instance GHC.Generics.Generic Network.Google.Resource.BigQuery.Tables.Get.TablesGet
instance Data.Data.Data Network.Google.Resource.BigQuery.Tables.Get.TablesGet
instance GHC.Show.Show Network.Google.Resource.BigQuery.Tables.Get.TablesGet
instance GHC.Classes.Eq Network.Google.Resource.BigQuery.Tables.Get.TablesGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.BigQuery.Tables.Get.TablesGet


-- | Creates a new, empty table in the dataset.
--   
--   <i>See:</i> <a>BigQuery API Reference</a> for
--   <tt>bigquery.tables.insert</tt>.
module Network.Google.Resource.BigQuery.Tables.Insert

-- | A resource alias for <tt>bigquery.tables.insert</tt> method which the
--   <a>TablesInsert</a> request conforms to.
type TablesInsertResource = "bigquery" :> ("v2" :> ("projects" :> (Capture "projectId" Text :> ("datasets" :> (Capture "datasetId" Text :> ("tables" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Table :> Post '[JSON] Table))))))))

-- | Creates a value of <a>TablesInsert</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tiPayload</a></li>
--   <li><a>tiDataSetId</a></li>
--   <li><a>tiProjectId</a></li>
--   </ul>
tablesInsert :: Table -> Text -> Text -> TablesInsert

-- | Creates a new, empty table in the dataset.
--   
--   <i>See:</i> <a>tablesInsert</a> smart constructor.
data TablesInsert

-- | Multipart request metadata.
tiPayload :: Lens' TablesInsert Table

-- | Dataset ID of the new table
tiDataSetId :: Lens' TablesInsert Text

-- | Project ID of the new table
tiProjectId :: Lens' TablesInsert Text
instance GHC.Generics.Generic Network.Google.Resource.BigQuery.Tables.Insert.TablesInsert
instance Data.Data.Data Network.Google.Resource.BigQuery.Tables.Insert.TablesInsert
instance GHC.Show.Show Network.Google.Resource.BigQuery.Tables.Insert.TablesInsert
instance GHC.Classes.Eq Network.Google.Resource.BigQuery.Tables.Insert.TablesInsert
instance Network.Google.Types.GoogleRequest Network.Google.Resource.BigQuery.Tables.Insert.TablesInsert


-- | Lists all tables in the specified dataset. Requires the READER dataset
--   role.
--   
--   <i>See:</i> <a>BigQuery API Reference</a> for
--   <tt>bigquery.tables.list</tt>.
module Network.Google.Resource.BigQuery.Tables.List

-- | A resource alias for <tt>bigquery.tables.list</tt> method which the
--   <a>TablesList</a> request conforms to.
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)))))))))

-- | Creates a value of <a>TablesList</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tlDataSetId</a></li>
--   <li><a>tlPageToken</a></li>
--   <li><a>tlProjectId</a></li>
--   <li><a>tlMaxResults</a></li>
--   </ul>
tablesList :: Text -> Text -> TablesList

-- | Lists all tables in the specified dataset. Requires the READER dataset
--   role.
--   
--   <i>See:</i> <a>tablesList</a> smart constructor.
data TablesList

-- | Dataset ID of the tables to list
tlDataSetId :: Lens' TablesList Text

-- | Page token, returned by a previous call, to request the next page of
--   results
tlPageToken :: Lens' TablesList (Maybe Text)

-- | Project ID of the tables to list
tlProjectId :: Lens' TablesList Text

-- | Maximum number of results to return
tlMaxResults :: Lens' TablesList (Maybe Word32)
instance GHC.Generics.Generic Network.Google.Resource.BigQuery.Tables.List.TablesList
instance Data.Data.Data Network.Google.Resource.BigQuery.Tables.List.TablesList
instance GHC.Show.Show Network.Google.Resource.BigQuery.Tables.List.TablesList
instance GHC.Classes.Eq Network.Google.Resource.BigQuery.Tables.List.TablesList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.BigQuery.Tables.List.TablesList


-- | Updates information in an existing table. The update method replaces
--   the entire table resource, whereas the patch method only replaces
--   fields that are provided in the submitted table resource. This method
--   supports patch semantics.
--   
--   <i>See:</i> <a>BigQuery API Reference</a> for
--   <tt>bigquery.tables.patch</tt>.
module Network.Google.Resource.BigQuery.Tables.Patch

-- | A resource alias for <tt>bigquery.tables.patch</tt> method which the
--   <a>TablesPatch</a> request conforms to.
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)))))))))

-- | Creates a value of <a>TablesPatch</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tpPayload</a></li>
--   <li><a>tpDataSetId</a></li>
--   <li><a>tpProjectId</a></li>
--   <li><a>tpTableId</a></li>
--   </ul>
tablesPatch :: Table -> Text -> Text -> Text -> TablesPatch

-- | Updates information in an existing table. The update method replaces
--   the entire table resource, whereas the patch method only replaces
--   fields that are provided in the submitted table resource. This method
--   supports patch semantics.
--   
--   <i>See:</i> <a>tablesPatch</a> smart constructor.
data TablesPatch

-- | Multipart request metadata.
tpPayload :: Lens' TablesPatch Table

-- | Dataset ID of the table to update
tpDataSetId :: Lens' TablesPatch Text

-- | Project ID of the table to update
tpProjectId :: Lens' TablesPatch Text

-- | Table ID of the table to update
tpTableId :: Lens' TablesPatch Text
instance GHC.Generics.Generic Network.Google.Resource.BigQuery.Tables.Patch.TablesPatch
instance Data.Data.Data Network.Google.Resource.BigQuery.Tables.Patch.TablesPatch
instance GHC.Show.Show Network.Google.Resource.BigQuery.Tables.Patch.TablesPatch
instance GHC.Classes.Eq Network.Google.Resource.BigQuery.Tables.Patch.TablesPatch
instance Network.Google.Types.GoogleRequest Network.Google.Resource.BigQuery.Tables.Patch.TablesPatch


-- | Updates information in an existing table. The update method replaces
--   the entire table resource, whereas the patch method only replaces
--   fields that are provided in the submitted table resource.
--   
--   <i>See:</i> <a>BigQuery API Reference</a> for
--   <tt>bigquery.tables.update</tt>.
module Network.Google.Resource.BigQuery.Tables.Update

-- | A resource alias for <tt>bigquery.tables.update</tt> method which the
--   <a>TablesUpdate</a> request conforms to.
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)))))))))

-- | Creates a value of <a>TablesUpdate</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tuPayload</a></li>
--   <li><a>tuDataSetId</a></li>
--   <li><a>tuProjectId</a></li>
--   <li><a>tuTableId</a></li>
--   </ul>
tablesUpdate :: Table -> Text -> Text -> Text -> TablesUpdate

-- | Updates information in an existing table. The update method replaces
--   the entire table resource, whereas the patch method only replaces
--   fields that are provided in the submitted table resource.
--   
--   <i>See:</i> <a>tablesUpdate</a> smart constructor.
data TablesUpdate

-- | Multipart request metadata.
tuPayload :: Lens' TablesUpdate Table

-- | Dataset ID of the table to update
tuDataSetId :: Lens' TablesUpdate Text

-- | Project ID of the table to update
tuProjectId :: Lens' TablesUpdate Text

-- | Table ID of the table to update
tuTableId :: Lens' TablesUpdate Text
instance GHC.Generics.Generic Network.Google.Resource.BigQuery.Tables.Update.TablesUpdate
instance Data.Data.Data Network.Google.Resource.BigQuery.Tables.Update.TablesUpdate
instance GHC.Show.Show Network.Google.Resource.BigQuery.Tables.Update.TablesUpdate
instance GHC.Classes.Eq Network.Google.Resource.BigQuery.Tables.Update.TablesUpdate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.BigQuery.Tables.Update.TablesUpdate


-- | A data platform for customers to create, manage, share and query data.
--   
--   <i>See:</i> <a>BigQuery API Reference</a>
module Network.Google.BigQuery

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

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

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

-- | View your data in Google Cloud Storage
storageReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/devstorage.read_only"]

-- | Insert data into Google BigQuery
bigQueryInsertDataScope :: Proxy '["https://www.googleapis.com/auth/bigquery.insertdata"]

-- | Manage your data in Google Cloud Storage
storageReadWriteScope :: Proxy '["https://www.googleapis.com/auth/devstorage.read_write"]

-- | View and manage your data in Google BigQuery
bigQueryScope :: Proxy '["https://www.googleapis.com/auth/bigquery"]

-- | Manage your data and permissions in Google Cloud Storage
storageFullControlScope :: Proxy '["https://www.googleapis.com/auth/devstorage.full_control"]

-- | Represents the entirety of the methods and resources available for the
--   BigQuery API service.
type BigQueryAPI = JobsInsertResource :<|> (JobsListResource :<|> (JobsGetResource :<|> (JobsQueryResource :<|> (JobsCancelResource :<|> (JobsGetQueryResultsResource :<|> (TablesInsertResource :<|> (TablesListResource :<|> (TablesPatchResource :<|> (TablesGetResource :<|> (TablesDeleteResource :<|> (TablesUpdateResource :<|> (TableDataListResource :<|> (TableDataInsertAllResource :<|> (ProjectsListResource :<|> (DataSetsInsertResource :<|> (DataSetsListResource :<|> (DataSetsPatchResource :<|> (DataSetsGetResource :<|> (DataSetsDeleteResource :<|> DataSetsUpdateResource)))))))))))))))))))
data JobReference

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

-- | <ul>
--   <li><i>Required</i> 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.</li>
--   </ul>
jrJobId :: Lens' JobReference (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The ID of the project containing this job.</li>
--   </ul>
jrProjectId :: Lens' JobReference (Maybe Text)
data TableList

-- | Creates a value of <a>TableList</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tlTotalItems</a></li>
--   <li><a>tlEtag</a></li>
--   <li><a>tlNextPageToken</a></li>
--   <li><a>tlKind</a></li>
--   <li><a>tlTables</a></li>
--   </ul>
tableList :: TableList

-- | The total number of tables in the dataset.
tlTotalItems :: Lens' TableList (Maybe Int32)

-- | A hash of this page of results.
tlEtag :: Lens' TableList (Maybe Text)

-- | A token to request the next page of results.
tlNextPageToken :: Lens' TableList (Maybe Text)

-- | The type of list.
tlKind :: Lens' TableList Text

-- | Tables in the requested dataset.
tlTables :: Lens' TableList [TableListTablesItem]
data DataSetListDataSetsItem

-- | Creates a value of <a>DataSetListDataSetsItem</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsldsiFriendlyName</a></li>
--   <li><a>dsldsiKind</a></li>
--   <li><a>dsldsiDataSetReference</a></li>
--   <li><a>dsldsiId</a></li>
--   <li><a>dsldsiLabels</a></li>
--   </ul>
dataSetListDataSetsItem :: DataSetListDataSetsItem

-- | A descriptive name for the dataset, if one exists.
dsldsiFriendlyName :: Lens' DataSetListDataSetsItem (Maybe Text)

-- | The resource type. This property always returns the value
--   "bigquery#dataset".
dsldsiKind :: Lens' DataSetListDataSetsItem Text

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

-- | The fully-qualified, unique, opaque ID of the dataset.
dsldsiId :: Lens' DataSetListDataSetsItem (Maybe Text)

-- | <ul>
--   <li><i>Experimental</i> The labels associated with this dataset. You
--   can use these to organize and group your datasets.</li>
--   </ul>
dsldsiLabels :: Lens' DataSetListDataSetsItem (Maybe DataSetListDataSetsItemLabels)
data TableDataList

-- | Creates a value of <a>TableDataList</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tdlEtag</a></li>
--   <li><a>tdlKind</a></li>
--   <li><a>tdlRows</a></li>
--   <li><a>tdlPageToken</a></li>
--   <li><a>tdlTotalRows</a></li>
--   </ul>
tableDataList :: TableDataList

-- | A hash of this page of results.
tdlEtag :: Lens' TableDataList (Maybe Text)

-- | The resource type of the response.
tdlKind :: Lens' TableDataList Text

-- | Rows of results.
tdlRows :: Lens' TableDataList [TableRow]

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

-- | The total number of rows in the complete table.
tdlTotalRows :: Lens' TableDataList (Maybe Int64)
data JobConfigurationTableCopy

-- | Creates a value of <a>JobConfigurationTableCopy</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jctcDestinationTable</a></li>
--   <li><a>jctcWriteDisPosition</a></li>
--   <li><a>jctcSourceTables</a></li>
--   <li><a>jctcCreateDisPosition</a></li>
--   <li><a>jctcSourceTable</a></li>
--   </ul>
jobConfigurationTableCopy :: JobConfigurationTableCopy

-- | <ul>
--   <li><i>Required</i> The destination table</li>
--   </ul>
jctcDestinationTable :: Lens' JobConfigurationTableCopy (Maybe TableReference)

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

-- | <ul>
--   <li><i>Pick one</i> Source tables to copy.</li>
--   </ul>
jctcSourceTables :: Lens' JobConfigurationTableCopy [TableReference]

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

-- | <ul>
--   <li><i>Pick one</i> Source table to copy.</li>
--   </ul>
jctcSourceTable :: Lens' JobConfigurationTableCopy (Maybe TableReference)
data TableListTablesItem

-- | Creates a value of <a>TableListTablesItem</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tltiTableReference</a></li>
--   <li><a>tltiFriendlyName</a></li>
--   <li><a>tltiKind</a></li>
--   <li><a>tltiId</a></li>
--   <li><a>tltiLabels</a></li>
--   <li><a>tltiType</a></li>
--   </ul>
tableListTablesItem :: TableListTablesItem

-- | A reference uniquely identifying the table.
tltiTableReference :: Lens' TableListTablesItem (Maybe TableReference)

-- | The user-friendly name for this table.
tltiFriendlyName :: Lens' TableListTablesItem (Maybe Text)

-- | The resource type.
tltiKind :: Lens' TableListTablesItem Text

-- | An opaque ID of the table
tltiId :: Lens' TableListTablesItem (Maybe Text)

-- | <ul>
--   <li><i>Experimental</i> The labels associated with this table. You can
--   use these to organize and group your tables.</li>
--   </ul>
tltiLabels :: Lens' TableListTablesItem (Maybe TableListTablesItemLabels)

-- | The type of table. Possible values are: TABLE, VIEW.
tltiType :: Lens' TableListTablesItem (Maybe Text)
data TableSchema

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

-- | Describes the fields in a table.
tsFields :: Lens' TableSchema [TableFieldSchema]
data ProjectList

-- | Creates a value of <a>ProjectList</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>plTotalItems</a></li>
--   <li><a>plEtag</a></li>
--   <li><a>plNextPageToken</a></li>
--   <li><a>plKind</a></li>
--   <li><a>plProjects</a></li>
--   </ul>
projectList :: ProjectList

-- | The total number of projects in the list.
plTotalItems :: Lens' ProjectList (Maybe Int32)

-- | A hash of the page of results
plEtag :: Lens' ProjectList (Maybe Text)

-- | A token to request the next page of results.
plNextPageToken :: Lens' ProjectList (Maybe Text)

-- | The type of list.
plKind :: Lens' ProjectList Text

-- | Projects to which you have at least READ access.
plProjects :: Lens' ProjectList [ProjectListProjectsItem]
data ExplainQueryStep

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

-- | Human-readable stage descriptions.
eqsSubsteps :: Lens' ExplainQueryStep [Text]

-- | Machine-readable operation type.
eqsKind :: Lens' ExplainQueryStep (Maybe Text)
data QueryParameterTypeStructTypesItem

-- | Creates a value of <a>QueryParameterTypeStructTypesItem</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>qptstiName</a></li>
--   <li><a>qptstiType</a></li>
--   <li><a>qptstiDescription</a></li>
--   </ul>
queryParameterTypeStructTypesItem :: QueryParameterTypeStructTypesItem

-- | <ul>
--   <li><i>Optional</i> The name of this field.</li>
--   </ul>
qptstiName :: Lens' QueryParameterTypeStructTypesItem (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The type of this field.</li>
--   </ul>
qptstiType :: Lens' QueryParameterTypeStructTypesItem (Maybe QueryParameterType)

-- | <ul>
--   <li><i>Optional</i> Human-oriented description of the field.</li>
--   </ul>
qptstiDescription :: Lens' QueryParameterTypeStructTypesItem (Maybe Text)
data BigtableColumnFamily

-- | Creates a value of <a>BigtableColumnFamily</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bcfFamilyId</a></li>
--   <li><a>bcfColumns</a></li>
--   <li><a>bcfOnlyReadLatest</a></li>
--   <li><a>bcfType</a></li>
--   <li><a>bcfEncoding</a></li>
--   </ul>
bigtableColumnFamily :: BigtableColumnFamily

-- | Identifier of the column family.
bcfFamilyId :: Lens' BigtableColumnFamily (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
bcfColumns :: Lens' BigtableColumnFamily [BigtableColumn]

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

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

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
bcfEncoding :: Lens' BigtableColumnFamily (Maybe Text)
data JobStatistics

-- | Creates a value of <a>JobStatistics</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jsCreationTime</a></li>
--   <li><a>jsStartTime</a></li>
--   <li><a>jsLoad</a></li>
--   <li><a>jsTotalBytesProcessed</a></li>
--   <li><a>jsEndTime</a></li>
--   <li><a>jsQuery</a></li>
--   <li><a>jsExtract</a></li>
--   </ul>
jobStatistics :: JobStatistics

-- | <ul>
--   <li><i>Output-only</i> Creation time of this job, in milliseconds
--   since the epoch. This field will be present on all jobs.</li>
--   </ul>
jsCreationTime :: Lens' JobStatistics (Maybe Int64)

-- | <ul>
--   <li><i>Output-only</i> 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.</li>
--   </ul>
jsStartTime :: Lens' JobStatistics (Maybe Int64)

-- | <ul>
--   <li><i>Output-only</i> Statistics for a load job.</li>
--   </ul>
jsLoad :: Lens' JobStatistics (Maybe JobStatistics3)

-- | <ul>
--   <li><i>Output-only</i> [Deprecated] Use the bytes processed in the
--   query statistics instead.</li>
--   </ul>
jsTotalBytesProcessed :: Lens' JobStatistics (Maybe Int64)

-- | <ul>
--   <li><i>Output-only</i> End time of this job, in milliseconds since the
--   epoch. This field will be present whenever a job is in the DONE
--   state.</li>
--   </ul>
jsEndTime :: Lens' JobStatistics (Maybe Int64)

-- | <ul>
--   <li><i>Output-only</i> Statistics for a query job.</li>
--   </ul>
jsQuery :: Lens' JobStatistics (Maybe JobStatistics2)

-- | <ul>
--   <li><i>Output-only</i> Statistics for an extract job.</li>
--   </ul>
jsExtract :: Lens' JobStatistics (Maybe JobStatistics4)

-- | <ul>
--   <li><i>Experimental</i> 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 &lt;= 128 bytes in size.</li>
--   </ul>
--   
--   <i>See:</i> <a>jobConfigurationLabels</a> smart constructor.
data JobConfigurationLabels

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

-- | Creates a value of <a>DataSet</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsCreationTime</a></li>
--   <li><a>dsAccess</a></li>
--   <li><a>dsEtag</a></li>
--   <li><a>dsLocation</a></li>
--   <li><a>dsFriendlyName</a></li>
--   <li><a>dsKind</a></li>
--   <li><a>dsLastModifiedTime</a></li>
--   <li><a>dsDataSetReference</a></li>
--   <li><a>dsSelfLink</a></li>
--   <li><a>dsId</a></li>
--   <li><a>dsLabels</a></li>
--   <li><a>dsDefaultTableExpirationMs</a></li>
--   <li><a>dsDescription</a></li>
--   </ul>
dataSet :: DataSet

-- | <ul>
--   <li><i>Output-only</i> The time when this dataset was created, in
--   milliseconds since the epoch.</li>
--   </ul>
dsCreationTime :: Lens' DataSet (Maybe Int64)

-- | <ul>
--   <li><i>Optional</i> 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;</li>
--   </ul>
dsAccess :: Lens' DataSet [DataSetAccessItem]

-- | <ul>
--   <li><i>Output-only</i> A hash of the resource.</li>
--   </ul>
dsEtag :: Lens' DataSet (Maybe Text)

-- | <ul>
--   <li><i>Experimental</i> The geographic location where the dataset
--   should reside. Possible values include EU and US. The default value is
--   US.</li>
--   </ul>
dsLocation :: Lens' DataSet (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> A descriptive name for the dataset.</li>
--   </ul>
dsFriendlyName :: Lens' DataSet (Maybe Text)

-- | <ul>
--   <li><i>Output-only</i> The resource type.</li>
--   </ul>
dsKind :: Lens' DataSet Text

-- | <ul>
--   <li><i>Output-only</i> The date when this dataset or any of its tables
--   was last modified, in milliseconds since the epoch.</li>
--   </ul>
dsLastModifiedTime :: Lens' DataSet (Maybe Int64)

-- | <ul>
--   <li><i>Required</i> A reference that identifies the dataset.</li>
--   </ul>
dsDataSetReference :: Lens' DataSet (Maybe DataSetReference)

-- | <ul>
--   <li><i>Output-only</i> A URL that can be used to access the resource
--   again. You can use this URL in Get or Update requests to the
--   resource.</li>
--   </ul>
dsSelfLink :: Lens' DataSet (Maybe Text)

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

-- | <ul>
--   <li><i>Experimental</i> 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.</li>
--   </ul>
dsLabels :: Lens' DataSet (Maybe DataSetLabels)

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
dsDefaultTableExpirationMs :: Lens' DataSet (Maybe Int64)

-- | <ul>
--   <li><i>Optional</i> A user-friendly description of the dataset.</li>
--   </ul>
dsDescription :: Lens' DataSet (Maybe Text)
data BigtableOptions

-- | Creates a value of <a>BigtableOptions</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>boReadRowkeyAsString</a></li>
--   <li><a>boIgnoreUnspecifiedColumnFamilies</a></li>
--   <li><a>boColumnFamilies</a></li>
--   </ul>
bigtableOptions :: BigtableOptions

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

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

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
boColumnFamilies :: Lens' BigtableOptions [BigtableColumnFamily]
data ExternalDataConfiguration

-- | Creates a value of <a>ExternalDataConfiguration</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>edcBigtableOptions</a></li>
--   <li><a>edcIgnoreUnknownValues</a></li>
--   <li><a>edcCompression</a></li>
--   <li><a>edcSourceFormat</a></li>
--   <li><a>edcSchema</a></li>
--   <li><a>edcMaxBadRecords</a></li>
--   <li><a>edcGoogleSheetsOptions</a></li>
--   <li><a>edcAutodetect</a></li>
--   <li><a>edcSourceURIs</a></li>
--   <li><a>edcCSVOptions</a></li>
--   </ul>
externalDataConfiguration :: ExternalDataConfiguration

-- | <ul>
--   <li><i>Optional</i> Additional options if sourceFormat is set to
--   BIGTABLE.</li>
--   </ul>
edcBigtableOptions :: Lens' ExternalDataConfiguration (Maybe BigtableOptions)

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

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

-- | <ul>
--   <li><i>Required</i> 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.</li>
--   </ul>
edcSourceFormat :: Lens' ExternalDataConfiguration (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
edcSchema :: Lens' ExternalDataConfiguration (Maybe TableSchema)

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

-- | <ul>
--   <li><i>Optional</i> Additional options if sourceFormat is set to
--   GOOGLE_SHEETS.</li>
--   </ul>
edcGoogleSheetsOptions :: Lens' ExternalDataConfiguration (Maybe GoogleSheetsOptions)

-- | <ul>
--   <li><i>Experimental</i> Try to detect schema and format options
--   automatically. Any option specified explicitly will be honored.</li>
--   </ul>
edcAutodetect :: Lens' ExternalDataConfiguration (Maybe Bool)

-- | <ul>
--   <li><i>Required</i> 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.</li>
--   </ul>
edcSourceURIs :: Lens' ExternalDataConfiguration [Text]

-- | Additional properties to set if sourceFormat is set to CSV.
edcCSVOptions :: Lens' ExternalDataConfiguration (Maybe CSVOptions)
data TableReference

-- | Creates a value of <a>TableReference</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>trDataSetId</a></li>
--   <li><a>trProjectId</a></li>
--   <li><a>trTableId</a></li>
--   </ul>
tableReference :: TableReference

-- | <ul>
--   <li><i>Required</i> The ID of the dataset containing this table.</li>
--   </ul>
trDataSetId :: Lens' TableReference (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The ID of the project containing this table.</li>
--   </ul>
trProjectId :: Lens' TableReference (Maybe Text)

-- | <ul>
--   <li><i>Required</i> 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.</li>
--   </ul>
trTableId :: Lens' TableReference (Maybe Text)
data TableFieldSchema

-- | Creates a value of <a>TableFieldSchema</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tfsMode</a></li>
--   <li><a>tfsName</a></li>
--   <li><a>tfsType</a></li>
--   <li><a>tfsDescription</a></li>
--   <li><a>tfsFields</a></li>
--   </ul>
tableFieldSchema :: TableFieldSchema

-- | <ul>
--   <li><i>Optional</i> The field mode. Possible values include NULLABLE,
--   REQUIRED and REPEATED. The default value is NULLABLE.</li>
--   </ul>
tfsMode :: Lens' TableFieldSchema (Maybe Text)

-- | <ul>
--   <li><i>Required</i> 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.</li>
--   </ul>
tfsName :: Lens' TableFieldSchema (Maybe Text)

-- | <ul>
--   <li><i>Required</i> 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).</li>
--   </ul>
tfsType :: Lens' TableFieldSchema (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> The field description. The maximum length is 16K
--   characters.</li>
--   </ul>
tfsDescription :: Lens' TableFieldSchema (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> Describes the nested schema fields if the type
--   property is set to RECORD.</li>
--   </ul>
tfsFields :: Lens' TableFieldSchema [TableFieldSchema]
data GetQueryResultsResponse

-- | Creates a value of <a>GetQueryResultsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gqrrJobReference</a></li>
--   <li><a>gqrrEtag</a></li>
--   <li><a>gqrrKind</a></li>
--   <li><a>gqrrSchema</a></li>
--   <li><a>gqrrTotalBytesProcessed</a></li>
--   <li><a>gqrrRows</a></li>
--   <li><a>gqrrPageToken</a></li>
--   <li><a>gqrrNumDmlAffectedRows</a></li>
--   <li><a>gqrrTotalRows</a></li>
--   <li><a>gqrrErrors</a></li>
--   <li><a>gqrrJobComplete</a></li>
--   <li><a>gqrrCacheHit</a></li>
--   </ul>
getQueryResultsResponse :: GetQueryResultsResponse

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

-- | A hash of this response.
gqrrEtag :: Lens' GetQueryResultsResponse (Maybe Text)

-- | The resource type of the response.
gqrrKind :: Lens' GetQueryResultsResponse Text

-- | The schema of the results. Present only when the query completes
--   successfully.
gqrrSchema :: Lens' GetQueryResultsResponse (Maybe TableSchema)

-- | The total number of bytes processed for this query.
gqrrTotalBytesProcessed :: Lens' GetQueryResultsResponse (Maybe Int64)

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

-- | A token used for paging results.
gqrrPageToken :: Lens' GetQueryResultsResponse (Maybe Text)

-- | <ul>
--   <li><i>Output-only, Experimental</i> The number of rows affected by a
--   DML statement. Present only for DML statements INSERT, UPDATE or
--   DELETE.</li>
--   </ul>
gqrrNumDmlAffectedRows :: Lens' GetQueryResultsResponse (Maybe Int64)

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

-- | <ul>
--   <li><i>Output-only</i> 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.</li>
--   </ul>
gqrrErrors :: Lens' GetQueryResultsResponse [ErrorProto]

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

-- | Whether the query result was fetched from the query cache.
gqrrCacheHit :: Lens' GetQueryResultsResponse (Maybe Bool)
data DataSetList

-- | Creates a value of <a>DataSetList</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dslEtag</a></li>
--   <li><a>dslNextPageToken</a></li>
--   <li><a>dslKind</a></li>
--   <li><a>dslDataSets</a></li>
--   </ul>
dataSetList :: DataSetList

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

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

-- | The list type. This property always returns the value
--   "bigquery#datasetList".
dslKind :: Lens' DataSetList Text

-- | 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]
data QueryRequest

-- | Creates a value of <a>QueryRequest</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>qrUseQueryCache</a></li>
--   <li><a>qrPreserveNulls</a></li>
--   <li><a>qrKind</a></li>
--   <li><a>qrQueryParameters</a></li>
--   <li><a>qrQuery</a></li>
--   <li><a>qrParameterMode</a></li>
--   <li><a>qrTimeoutMs</a></li>
--   <li><a>qrUseLegacySQL</a></li>
--   <li><a>qrDryRun</a></li>
--   <li><a>qrMaxResults</a></li>
--   <li><a>qrDefaultDataSet</a></li>
--   </ul>
queryRequest :: QueryRequest

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
qrUseQueryCache :: Lens' QueryRequest Bool

-- | <ul>
--   <li><i>Deprecated</i> This property is deprecated.</li>
--   </ul>
qrPreserveNulls :: Lens' QueryRequest (Maybe Bool)

-- | The resource type of the request.
qrKind :: Lens' QueryRequest Text

-- | <ul>
--   <li><i>Experimental</i> Query parameters for Standard SQL
--   queries.</li>
--   </ul>
qrQueryParameters :: Lens' QueryRequest [QueryParameter]

-- | <ul>
--   <li><i>Required</i> A query string, following the BigQuery query
--   syntax, of the query to execute. Example: "SELECT count(f1) FROM</li>
--   <li><i>myProjectId:myDatasetId.myTableId</i> ".</li>
--   </ul>
qrQuery :: Lens' QueryRequest (Maybe Text)

-- | <ul>
--   <li><i>Experimental</i> Standard SQL only. Set to POSITIONAL to use
--   positional (?) query parameters or to NAMED to use named ('myparam)
--   query parameters in this query.</li>
--   </ul>
qrParameterMode :: Lens' QueryRequest (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> 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).</li>
--   </ul>
qrTimeoutMs :: Lens' QueryRequest (Maybe Word32)

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

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

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
qrMaxResults :: Lens' QueryRequest (Maybe Word32)

-- | <ul>
--   <li><i>Optional</i> 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'.</li>
--   </ul>
qrDefaultDataSet :: Lens' QueryRequest (Maybe DataSetReference)

-- | Restrict information returned to a set of selected fields
data JobsListProjection

-- | <tt>full</tt> Includes all job data
Full :: JobsListProjection

-- | <tt>minimal</tt> Does not include the job configuration
Minimal :: JobsListProjection
data QueryParameter

-- | Creates a value of <a>QueryParameter</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>qpParameterValue</a></li>
--   <li><a>qpParameterType</a></li>
--   <li><a>qpName</a></li>
--   </ul>
queryParameter :: QueryParameter

-- | <ul>
--   <li><i>Required</i> The value of this parameter.</li>
--   </ul>
qpParameterValue :: Lens' QueryParameter (Maybe QueryParameterValue)

-- | <ul>
--   <li><i>Required</i> The type of this parameter.</li>
--   </ul>
qpParameterType :: Lens' QueryParameter (Maybe QueryParameterType)

-- | <ul>
--   <li><i>Optional</i> If unset, this is a positional parameter.
--   Otherwise, should be unique within a query.</li>
--   </ul>
qpName :: Lens' QueryParameter (Maybe Text)
data JobStatistics4

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

-- | <ul>
--   <li><i>Output-only</i> 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.</li>
--   </ul>
jsDestinationURIFileCounts :: Lens' JobStatistics4 [Int64]
data ProjectReference

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

-- | <ul>
--   <li><i>Required</i> ID of the project. Can be either the numeric ID or
--   the assigned ID of the project.</li>
--   </ul>
prProjectId :: Lens' ProjectReference (Maybe Text)
data ExplainQueryStage

-- | Creates a value of <a>ExplainQueryStage</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eqsStatus</a></li>
--   <li><a>eqsWaitRatioMax</a></li>
--   <li><a>eqsRecordsWritten</a></li>
--   <li><a>eqsSteps</a></li>
--   <li><a>eqsWriteRatioAvg</a></li>
--   <li><a>eqsRecordsRead</a></li>
--   <li><a>eqsComputeRatioAvg</a></li>
--   <li><a>eqsName</a></li>
--   <li><a>eqsReadRatioMax</a></li>
--   <li><a>eqsWaitRatioAvg</a></li>
--   <li><a>eqsId</a></li>
--   <li><a>eqsComputeRatioMax</a></li>
--   <li><a>eqsWriteRatioMax</a></li>
--   <li><a>eqsReadRatioAvg</a></li>
--   </ul>
explainQueryStage :: ExplainQueryStage

-- | Current status for the stage.
eqsStatus :: Lens' ExplainQueryStage (Maybe Text)

-- | Relative amount of time the slowest shard spent waiting to be
--   scheduled.
eqsWaitRatioMax :: Lens' ExplainQueryStage (Maybe Double)

-- | Number of records written by the stage.
eqsRecordsWritten :: Lens' ExplainQueryStage (Maybe Int64)

-- | List of operations within the stage in dependency order (approximately
--   chronological).
eqsSteps :: Lens' ExplainQueryStage [ExplainQueryStep]

-- | Relative amount of time the average shard spent on writing output.
eqsWriteRatioAvg :: Lens' ExplainQueryStage (Maybe Double)

-- | Number of records read into the stage.
eqsRecordsRead :: Lens' ExplainQueryStage (Maybe Int64)

-- | Relative amount of time the average shard spent on CPU-bound tasks.
eqsComputeRatioAvg :: Lens' ExplainQueryStage (Maybe Double)

-- | Human-readable name for stage.
eqsName :: Lens' ExplainQueryStage (Maybe Text)

-- | Relative amount of time the slowest shard spent reading input.
eqsReadRatioMax :: Lens' ExplainQueryStage (Maybe Double)

-- | Relative amount of time the average shard spent waiting to be
--   scheduled.
eqsWaitRatioAvg :: Lens' ExplainQueryStage (Maybe Double)

-- | Unique ID for stage within plan.
eqsId :: Lens' ExplainQueryStage (Maybe Int64)

-- | Relative amount of time the slowest shard spent on CPU-bound tasks.
eqsComputeRatioMax :: Lens' ExplainQueryStage (Maybe Double)

-- | Relative amount of time the slowest shard spent on writing output.
eqsWriteRatioMax :: Lens' ExplainQueryStage (Maybe Double)

-- | Relative amount of time the average shard spent reading input.
eqsReadRatioAvg :: Lens' ExplainQueryStage (Maybe Double)
data JobConfigurationLoad

-- | Creates a value of <a>JobConfigurationLoad</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jclSkipLeadingRows</a></li>
--   <li><a>jclProjectionFields</a></li>
--   <li><a>jclDestinationTable</a></li>
--   <li><a>jclWriteDisPosition</a></li>
--   <li><a>jclAllowJaggedRows</a></li>
--   <li><a>jclSchemaInline</a></li>
--   <li><a>jclIgnoreUnknownValues</a></li>
--   <li><a>jclSchemaUpdateOptions</a></li>
--   <li><a>jclCreateDisPosition</a></li>
--   <li><a>jclSchemaInlineFormat</a></li>
--   <li><a>jclAllowQuotedNewlines</a></li>
--   <li><a>jclSourceFormat</a></li>
--   <li><a>jclSchema</a></li>
--   <li><a>jclQuote</a></li>
--   <li><a>jclMaxBadRecords</a></li>
--   <li><a>jclAutodetect</a></li>
--   <li><a>jclSourceURIs</a></li>
--   <li><a>jclEncoding</a></li>
--   <li><a>jclFieldDelimiter</a></li>
--   <li><a>jclNullMarker</a></li>
--   </ul>
jobConfigurationLoad :: JobConfigurationLoad

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

-- | <ul>
--   <li><i>Experimental</i> 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.</li>
--   </ul>
jclProjectionFields :: Lens' JobConfigurationLoad [Text]

-- | <ul>
--   <li><i>Required</i> The destination table to load the data into.</li>
--   </ul>
jclDestinationTable :: Lens' JobConfigurationLoad (Maybe TableReference)

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

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

-- | <ul>
--   <li><i>Deprecated</i> The inline schema. For CSV schemas, specify as
--   "Field1:Type1[,Field2:Type2]*". For example, "foo:STRING, bar:INTEGER,
--   baz:FLOAT".</li>
--   </ul>
jclSchemaInline :: Lens' JobConfigurationLoad (Maybe Text)

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

-- | <ul>
--   <li><i>Experimental</i> 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.</li>
--   </ul>
jclSchemaUpdateOptions :: Lens' JobConfigurationLoad [Text]

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

-- | <ul>
--   <li><i>Deprecated</i> The format of the schemaInline property.</li>
--   </ul>
jclSchemaInlineFormat :: Lens' JobConfigurationLoad (Maybe Text)

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

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

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
jclSchema :: Lens' JobConfigurationLoad (Maybe TableSchema)

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

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

-- | <ul>
--   <li><i>Experimental</i> Indicates if we should automatically infer the
--   options and schema for CSV and JSON sources.</li>
--   </ul>
jclAutodetect :: Lens' JobConfigurationLoad (Maybe Bool)

-- | <ul>
--   <li><i>Required</i> 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.</li>
--   </ul>
jclSourceURIs :: Lens' JobConfigurationLoad [Text]

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

-- | <ul>
--   <li><i>Optional</i> 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 (',').</li>
--   </ul>
jclFieldDelimiter :: Lens' JobConfigurationLoad (Maybe Text)

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

-- | Filter for job state
data JobsListStateFilter

-- | <tt>done</tt> Finished jobs
Done :: JobsListStateFilter

-- | <tt>pending</tt> Pending jobs
Pending :: JobsListStateFilter

-- | <tt>running</tt> Running jobs
Running :: JobsListStateFilter
data DataSetReference

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

-- | <ul>
--   <li><i>Required</i> 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.</li>
--   </ul>
dsrDataSetId :: Lens' DataSetReference (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> The ID of the project containing this
--   dataset.</li>
--   </ul>
dsrProjectId :: Lens' DataSetReference (Maybe Text)
data TableDataInsertAllRequest

-- | Creates a value of <a>TableDataInsertAllRequest</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tdiarKind</a></li>
--   <li><a>tdiarIgnoreUnknownValues</a></li>
--   <li><a>tdiarRows</a></li>
--   <li><a>tdiarTemplateSuffix</a></li>
--   <li><a>tdiarSkipInvalidRows</a></li>
--   </ul>
tableDataInsertAllRequest :: TableDataInsertAllRequest

-- | The resource type of the response.
tdiarKind :: Lens' TableDataInsertAllRequest Text

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

-- | The rows to insert.
tdiarRows :: Lens' TableDataInsertAllRequest [TableDataInsertAllRequestRowsItem]

-- | <ul>
--   <li><i>Experimental</i> 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.</li>
--   </ul>
tdiarTemplateSuffix :: Lens' TableDataInsertAllRequest (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
tdiarSkipInvalidRows :: Lens' TableDataInsertAllRequest (Maybe Bool)
data ProjectListProjectsItem

-- | Creates a value of <a>ProjectListProjectsItem</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>plpiFriendlyName</a></li>
--   <li><a>plpiKind</a></li>
--   <li><a>plpiProjectReference</a></li>
--   <li><a>plpiId</a></li>
--   <li><a>plpiNumericId</a></li>
--   </ul>
projectListProjectsItem :: ProjectListProjectsItem

-- | A descriptive name for this project.
plpiFriendlyName :: Lens' ProjectListProjectsItem (Maybe Text)

-- | The resource type.
plpiKind :: Lens' ProjectListProjectsItem Text

-- | A unique reference to this project.
plpiProjectReference :: Lens' ProjectListProjectsItem (Maybe ProjectReference)

-- | An opaque ID of this project.
plpiId :: Lens' ProjectListProjectsItem (Maybe Text)

-- | The numeric ID of this project.
plpiNumericId :: Lens' ProjectListProjectsItem (Maybe Word64)
data BigtableColumn

-- | Creates a value of <a>BigtableColumn</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bcQualifierEncoded</a></li>
--   <li><a>bcFieldName</a></li>
--   <li><a>bcQualifierString</a></li>
--   <li><a>bcOnlyReadLatest</a></li>
--   <li><a>bcType</a></li>
--   <li><a>bcEncoding</a></li>
--   </ul>
bigtableColumn :: BigtableColumn

-- | <ul>
--   <li><i>Required</i> 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.</li>
--   </ul>
bcQualifierEncoded :: Lens' BigtableColumn (Maybe ByteString)

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
bcFieldName :: Lens' BigtableColumn (Maybe Text)
bcQualifierString :: Lens' BigtableColumn (Maybe Text)

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

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

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
bcEncoding :: Lens' BigtableColumn (Maybe Text)
data Streamingbuffer

-- | Creates a value of <a>Streamingbuffer</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sEstimatedBytes</a></li>
--   <li><a>sOldestEntryTime</a></li>
--   <li><a>sEstimatedRows</a></li>
--   </ul>
streamingbuffer :: Streamingbuffer

-- | <ul>
--   <li><i>Output-only</i> A lower-bound estimate of the number of bytes
--   currently in the streaming buffer.</li>
--   </ul>
sEstimatedBytes :: Lens' Streamingbuffer (Maybe Word64)

-- | <ul>
--   <li><i>Output-only</i> Contains the timestamp of the oldest entry in
--   the streaming buffer, in milliseconds since the epoch, if the
--   streaming buffer is available.</li>
--   </ul>
sOldestEntryTime :: Lens' Streamingbuffer (Maybe Word64)

-- | <ul>
--   <li><i>Output-only</i> A lower-bound estimate of the number of rows
--   currently in the streaming buffer.</li>
--   </ul>
sEstimatedRows :: Lens' Streamingbuffer (Maybe Word64)
data TableRow

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

-- | Represents a single row in the result set, consisting of one or more
--   fields.
trF :: Lens' TableRow [TableCell]
data JobListJobsItem

-- | Creates a value of <a>JobListJobsItem</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jljiJobReference</a></li>
--   <li><a>jljiStatus</a></li>
--   <li><a>jljiState</a></li>
--   <li><a>jljiUserEmail</a></li>
--   <li><a>jljiKind</a></li>
--   <li><a>jljiErrorResult</a></li>
--   <li><a>jljiId</a></li>
--   <li><a>jljiStatistics</a></li>
--   <li><a>jljiConfiguration</a></li>
--   </ul>
jobListJobsItem :: JobListJobsItem

-- | Job reference uniquely identifying the job.
jljiJobReference :: Lens' JobListJobsItem (Maybe JobReference)

-- | <ul>
--   <li><i>Full-projection-only</i> Describes the state of the job.</li>
--   </ul>
jljiStatus :: Lens' JobListJobsItem (Maybe JobStatus)

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

-- | <ul>
--   <li><i>Full-projection-only</i> Email address of the user who ran the
--   job.</li>
--   </ul>
jljiUserEmail :: Lens' JobListJobsItem (Maybe Text)

-- | The resource type.
jljiKind :: Lens' JobListJobsItem Text

-- | A result object that will be present only if the job has failed.
jljiErrorResult :: Lens' JobListJobsItem (Maybe ErrorProto)

-- | Unique opaque ID of the job.
jljiId :: Lens' JobListJobsItem (Maybe Text)

-- | <ul>
--   <li><i>Output-only</i> Information about the job, including starting
--   time and ending time of the job.</li>
--   </ul>
jljiStatistics :: Lens' JobListJobsItem (Maybe JobStatistics)

-- | <ul>
--   <li><i>Full-projection-only</i> Specifies the job configuration.</li>
--   </ul>
jljiConfiguration :: Lens' JobListJobsItem (Maybe JobConfiguration)
data TimePartitioning

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

-- | <ul>
--   <li><i>Optional</i> Number of milliseconds for which to keep the
--   storage for a partition.</li>
--   </ul>
tpExpirationMs :: Lens' TimePartitioning (Maybe Int64)

-- | <ul>
--   <li><i>Required</i> The only type supported is DAY, which will
--   generate one partition per day based on data loading time.</li>
--   </ul>
tpType :: Lens' TimePartitioning (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> The struct field values, in order of the struct
--   type's declaration.</li>
--   </ul>
--   
--   <i>See:</i> <a>queryParameterValueStructValues</a> smart constructor.
data QueryParameterValueStructValues

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

-- | <ul>
--   <li><i>Experimental</i> 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.</li>
--   </ul>
--   
--   <i>See:</i> <a>dataSetLabels</a> smart constructor.
data DataSetLabels

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

-- | Creates a value of <a>JobConfiguration</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jcCopy</a></li>
--   <li><a>jcLoad</a></li>
--   <li><a>jcQuery</a></li>
--   <li><a>jcExtract</a></li>
--   <li><a>jcLabels</a></li>
--   <li><a>jcDryRun</a></li>
--   </ul>
jobConfiguration :: JobConfiguration

-- | <ul>
--   <li><i>Pick one</i> Copies a table.</li>
--   </ul>
jcCopy :: Lens' JobConfiguration (Maybe JobConfigurationTableCopy)

-- | <ul>
--   <li><i>Pick one</i> Configures a load job.</li>
--   </ul>
jcLoad :: Lens' JobConfiguration (Maybe JobConfigurationLoad)

-- | <ul>
--   <li><i>Pick one</i> Configures a query job.</li>
--   </ul>
jcQuery :: Lens' JobConfiguration (Maybe JobConfigurationQuery)

-- | <ul>
--   <li><i>Pick one</i> Configures an extract job.</li>
--   </ul>
jcExtract :: Lens' JobConfiguration (Maybe JobConfigurationExtract)

-- | <ul>
--   <li><i>Experimental</i> 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 &lt;= 128 bytes in size.</li>
--   </ul>
jcLabels :: Lens' JobConfiguration (Maybe JobConfigurationLabels)

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
jcDryRun :: Lens' JobConfiguration (Maybe Bool)
data Job

-- | Creates a value of <a>Job</a> with the minimum fields required to make
--   a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jJobReference</a></li>
--   <li><a>jStatus</a></li>
--   <li><a>jEtag</a></li>
--   <li><a>jUserEmail</a></li>
--   <li><a>jKind</a></li>
--   <li><a>jSelfLink</a></li>
--   <li><a>jId</a></li>
--   <li><a>jStatistics</a></li>
--   <li><a>jConfiguration</a></li>
--   </ul>
job :: Job

-- | <ul>
--   <li><i>Optional</i> Reference describing the unique-per-user name of
--   the job.</li>
--   </ul>
jJobReference :: Lens' Job (Maybe JobReference)

-- | <ul>
--   <li><i>Output-only</i> The status of this job. Examine this value when
--   polling an asynchronous job to see if the job is complete.</li>
--   </ul>
jStatus :: Lens' Job (Maybe JobStatus)

-- | <ul>
--   <li><i>Output-only</i> A hash of this resource.</li>
--   </ul>
jEtag :: Lens' Job (Maybe Text)

-- | <ul>
--   <li><i>Output-only</i> Email address of the user who ran the job.</li>
--   </ul>
jUserEmail :: Lens' Job (Maybe Text)

-- | <ul>
--   <li><i>Output-only</i> The type of the resource.</li>
--   </ul>
jKind :: Lens' Job Text

-- | <ul>
--   <li><i>Output-only</i> A URL that can be used to access this resource
--   again.</li>
--   </ul>
jSelfLink :: Lens' Job (Maybe Text)

-- | <ul>
--   <li><i>Output-only</i> Opaque ID field of the job</li>
--   </ul>
jId :: Lens' Job (Maybe Text)

-- | <ul>
--   <li><i>Output-only</i> Information about the job, including starting
--   time and ending time of the job.</li>
--   </ul>
jStatistics :: Lens' Job (Maybe JobStatistics)

-- | <ul>
--   <li><i>Required</i> Describes the job configuration.</li>
--   </ul>
jConfiguration :: Lens' Job (Maybe JobConfiguration)
data TableDataInsertAllResponseInsertErrorsItem

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

-- | Error information for the row indicated by the index property.
tdiarieiErrors :: Lens' TableDataInsertAllResponseInsertErrorsItem [ErrorProto]

-- | The index of the row that error applies to.
tdiarieiIndex :: Lens' TableDataInsertAllResponseInsertErrorsItem (Maybe Word32)
data JobConfigurationExtract

-- | Creates a value of <a>JobConfigurationExtract</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jceDestinationFormat</a></li>
--   <li><a>jceSourceTable</a></li>
--   <li><a>jcePrintHeader</a></li>
--   <li><a>jceCompression</a></li>
--   <li><a>jceDestinationURIs</a></li>
--   <li><a>jceDestinationURI</a></li>
--   <li><a>jceFieldDelimiter</a></li>
--   </ul>
jobConfigurationExtract :: JobConfigurationExtract

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

-- | <ul>
--   <li><i>Required</i> A reference to the table being exported.</li>
--   </ul>
jceSourceTable :: Lens' JobConfigurationExtract (Maybe TableReference)

-- | <ul>
--   <li><i>Optional</i> Whether to print out a header row in the results.
--   Default is true.</li>
--   </ul>
jcePrintHeader :: Lens' JobConfigurationExtract Bool

-- | <ul>
--   <li><i>Optional</i> The compression type to use for exported files.
--   Possible values include GZIP and NONE. The default value is NONE.</li>
--   </ul>
jceCompression :: Lens' JobConfigurationExtract (Maybe Text)

-- | <ul>
--   <li><i>Pick one</i> A list of fully-qualified Google Cloud Storage
--   URIs where the extracted table should be written.</li>
--   </ul>
jceDestinationURIs :: Lens' JobConfigurationExtract [Text]

-- | <ul>
--   <li><i>Pick one</i> DEPRECATED: Use destinationUris instead, passing
--   only one URI as necessary. The fully-qualified Google Cloud Storage
--   URI where the extracted table should be written.</li>
--   </ul>
jceDestinationURI :: Lens' JobConfigurationExtract (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> Delimiter to use between fields in the exported
--   data. Default is ','</li>
--   </ul>
jceFieldDelimiter :: Lens' JobConfigurationExtract (Maybe Text)
data JobCancelResponse

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

-- | The resource type of the response.
jcrKind :: Lens' JobCancelResponse Text

-- | The final state of the job.
jcrJob :: Lens' JobCancelResponse (Maybe Job)

-- | Represents a single JSON object.
--   
--   <i>See:</i> <a>jsonObject</a> smart constructor.
data JSONObject

-- | Creates a value of <a>JSONObject</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>joAddtional</a></li>
--   </ul>
jsonObject :: HashMap Text JSONValue -> JSONObject
joAddtional :: Lens' JSONObject (HashMap Text JSONValue)
data JobConfigurationQuery

-- | Creates a value of <a>JobConfigurationQuery</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jcqDestinationTable</a></li>
--   <li><a>jcqWriteDisPosition</a></li>
--   <li><a>jcqPriority</a></li>
--   <li><a>jcqUseQueryCache</a></li>
--   <li><a>jcqPreserveNulls</a></li>
--   <li><a>jcqTableDefinitions</a></li>
--   <li><a>jcqQueryParameters</a></li>
--   <li><a>jcqSchemaUpdateOptions</a></li>
--   <li><a>jcqMaximumBytesBilled</a></li>
--   <li><a>jcqCreateDisPosition</a></li>
--   <li><a>jcqUserDefinedFunctionResources</a></li>
--   <li><a>jcqAllowLargeResults</a></li>
--   <li><a>jcqMaximumBillingTier</a></li>
--   <li><a>jcqQuery</a></li>
--   <li><a>jcqFlattenResults</a></li>
--   <li><a>jcqParameterMode</a></li>
--   <li><a>jcqUseLegacySQL</a></li>
--   <li><a>jcqDefaultDataSet</a></li>
--   </ul>
jobConfigurationQuery :: JobConfigurationQuery

-- | <ul>
--   <li><i>Optional</i> Describes the table where the query results should
--   be stored. If not present, a new table will be created to store the
--   results.</li>
--   </ul>
jcqDestinationTable :: Lens' JobConfigurationQuery (Maybe TableReference)

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

-- | <ul>
--   <li><i>Optional</i> Specifies a priority for the query. Possible
--   values include INTERACTIVE and BATCH. The default value is
--   INTERACTIVE.</li>
--   </ul>
jcqPriority :: Lens' JobConfigurationQuery (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
jcqUseQueryCache :: Lens' JobConfigurationQuery Bool

-- | <ul>
--   <li><i>Deprecated</i> This property is deprecated.</li>
--   </ul>
jcqPreserveNulls :: Lens' JobConfigurationQuery (Maybe Bool)

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
jcqTableDefinitions :: Lens' JobConfigurationQuery (Maybe JobConfigurationQueryTableDefinitions)

-- | Query parameters for standard SQL queries.
jcqQueryParameters :: Lens' JobConfigurationQuery [QueryParameter]

-- | <ul>
--   <li><i>Experimental</i> 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.</li>
--   </ul>
jcqSchemaUpdateOptions :: Lens' JobConfigurationQuery [Text]

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
jcqMaximumBytesBilled :: Lens' JobConfigurationQuery (Maybe Int64)

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

-- | <ul>
--   <li><i>Experimental</i> Describes user-defined function resources used
--   in the query.</li>
--   </ul>
jcqUserDefinedFunctionResources :: Lens' JobConfigurationQuery [UserDefinedFunctionResource]

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

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
jcqMaximumBillingTier :: Lens' JobConfigurationQuery Int32

-- | <ul>
--   <li><i>Required</i> BigQuery SQL query to execute.</li>
--   </ul>
jcqQuery :: Lens' JobConfigurationQuery (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
jcqFlattenResults :: Lens' JobConfigurationQuery Bool

-- | <ul>
--   <li><i>Experimental</i> Standard SQL only. Set to POSITIONAL to use
--   positional (?) query parameters or to NAMED to use named ('myparam)
--   query parameters in this query.</li>
--   </ul>
jcqParameterMode :: Lens' JobConfigurationQuery (Maybe Text)

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

-- | <ul>
--   <li><i>Optional</i> Specifies the default dataset to use for
--   unqualified table names in the query.</li>
--   </ul>
jcqDefaultDataSet :: Lens' JobConfigurationQuery (Maybe DataSetReference)
data GoogleSheetsOptions

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

-- | <ul>
--   <li><i>Optional</i> 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 &gt; 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.</li>
--   </ul>
gsoSkipLeadingRows :: Lens' GoogleSheetsOptions (Maybe Int64)
data TableDataInsertAllRequestRowsItem

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

-- | <ul>
--   <li><i>Required</i> A JSON object that contains a row of data. The
--   object's properties and values must match the destination table's
--   schema.</li>
--   </ul>
tdiarriJSON :: Lens' TableDataInsertAllRequestRowsItem (Maybe JSONObject)

-- | <ul>
--   <li><i>Optional</i> A unique ID for each row. BigQuery uses this
--   property to detect duplicate insertion requests on a best-effort
--   basis.</li>
--   </ul>
tdiarriInsertId :: Lens' TableDataInsertAllRequestRowsItem (Maybe Text)
data JobList

-- | Creates a value of <a>JobList</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jlEtag</a></li>
--   <li><a>jlNextPageToken</a></li>
--   <li><a>jlKind</a></li>
--   <li><a>jlJobs</a></li>
--   </ul>
jobList :: JobList

-- | A hash of this page of results.
jlEtag :: Lens' JobList (Maybe Text)

-- | A token to request the next page of results.
jlNextPageToken :: Lens' JobList (Maybe Text)

-- | The resource type of the response.
jlKind :: Lens' JobList Text

-- | List of jobs that were requested.
jlJobs :: Lens' JobList [JobListJobsItem]

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
--   
--   <i>See:</i> <a>jobConfigurationQueryTableDefinitions</a> smart
--   constructor.
data JobConfigurationQueryTableDefinitions

-- | Creates a value of <a>JobConfigurationQueryTableDefinitions</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jcqtdAddtional</a></li>
--   </ul>
jobConfigurationQueryTableDefinitions :: HashMap Text ExternalDataConfiguration -> JobConfigurationQueryTableDefinitions
jcqtdAddtional :: Lens' JobConfigurationQueryTableDefinitions (HashMap Text ExternalDataConfiguration)
data TableCell

-- | Creates a value of <a>TableCell</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tcV</a></li>
--   </ul>
tableCell :: TableCell
tcV :: Lens' TableCell (Maybe JSONValue)
data QueryParameterValue

-- | Creates a value of <a>QueryParameterValue</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>qpvStructValues</a></li>
--   <li><a>qpvValue</a></li>
--   <li><a>qpvArrayValues</a></li>
--   </ul>
queryParameterValue :: QueryParameterValue

-- | <ul>
--   <li><i>Optional</i> The struct field values, in order of the struct
--   type's declaration.</li>
--   </ul>
qpvStructValues :: Lens' QueryParameterValue (Maybe QueryParameterValueStructValues)

-- | <ul>
--   <li><i>Optional</i> The value of this value, if a simple scalar
--   type.</li>
--   </ul>
qpvValue :: Lens' QueryParameterValue (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> The array values, if this is an array type.</li>
--   </ul>
qpvArrayValues :: Lens' QueryParameterValue [QueryParameterValue]
data ViewDefinition

-- | Creates a value of <a>ViewDefinition</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vdUserDefinedFunctionResources</a></li>
--   <li><a>vdQuery</a></li>
--   <li><a>vdUseLegacySQL</a></li>
--   </ul>
viewDefinition :: ViewDefinition

-- | <ul>
--   <li><i>Experimental</i> Describes user-defined function resources used
--   in the query.</li>
--   </ul>
vdUserDefinedFunctionResources :: Lens' ViewDefinition [UserDefinedFunctionResource]

-- | <ul>
--   <li><i>Required</i> A query that BigQuery executes when the view is
--   referenced.</li>
--   </ul>
vdQuery :: Lens' ViewDefinition (Maybe Text)

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

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

-- | <ul>
--   <li><i>Pick one</i> A code resource to load from a Google Cloud
--   Storage URI (gs://bucket/path).</li>
--   </ul>
udfrResourceURI :: Lens' UserDefinedFunctionResource (Maybe Text)

-- | <ul>
--   <li><i>Pick one</i> 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.</li>
--   </ul>
udfrInlineCode :: Lens' UserDefinedFunctionResource (Maybe Text)
data JobStatistics2

-- | Creates a value of <a>JobStatistics2</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jSchema</a></li>
--   <li><a>jTotalBytesProcessed</a></li>
--   <li><a>jBillingTier</a></li>
--   <li><a>jUndeclaredQueryParameters</a></li>
--   <li><a>jReferencedTables</a></li>
--   <li><a>jStatementType</a></li>
--   <li><a>jNumDmlAffectedRows</a></li>
--   <li><a>jQueryPlan</a></li>
--   <li><a>jCacheHit</a></li>
--   <li><a>jTotalBytesBilled</a></li>
--   </ul>
jobStatistics2 :: JobStatistics2

-- | <ul>
--   <li><i>Output-only, Experimental</i> The schema of the results.
--   Present only for successful dry run of non-legacy SQL queries.</li>
--   </ul>
jSchema :: Lens' JobStatistics2 (Maybe TableSchema)

-- | <ul>
--   <li><i>Output-only</i> Total bytes processed for the job.</li>
--   </ul>
jTotalBytesProcessed :: Lens' JobStatistics2 (Maybe Int64)

-- | <ul>
--   <li><i>Output-only</i> Billing tier for the job.</li>
--   </ul>
jBillingTier :: Lens' JobStatistics2 (Maybe Int32)

-- | <ul>
--   <li><i>Output-only, Experimental</i> Standard SQL only: list of
--   undeclared query parameters detected during a dry run validation.</li>
--   </ul>
jUndeclaredQueryParameters :: Lens' JobStatistics2 [QueryParameter]

-- | <ul>
--   <li><i>Output-only, Experimental</i> Referenced tables for the job.
--   Queries that reference more than 50 tables will not have a complete
--   list.</li>
--   </ul>
jReferencedTables :: Lens' JobStatistics2 [TableReference]

-- | <ul>
--   <li><i>Output-only, Experimental</i> The type of query statement, if
--   valid.</li>
--   </ul>
jStatementType :: Lens' JobStatistics2 (Maybe Text)

-- | <ul>
--   <li><i>Output-only, Experimental</i> The number of rows affected by a
--   DML statement. Present only for DML statements INSERT, UPDATE or
--   DELETE.</li>
--   </ul>
jNumDmlAffectedRows :: Lens' JobStatistics2 (Maybe Int64)

-- | <ul>
--   <li><i>Output-only, Experimental</i> Describes execution plan for the
--   query.</li>
--   </ul>
jQueryPlan :: Lens' JobStatistics2 [ExplainQueryStage]

-- | <ul>
--   <li><i>Output-only</i> Whether the query result was fetched from the
--   query cache.</li>
--   </ul>
jCacheHit :: Lens' JobStatistics2 (Maybe Bool)

-- | <ul>
--   <li><i>Output-only</i> Total bytes billed for the job.</li>
--   </ul>
jTotalBytesBilled :: Lens' JobStatistics2 (Maybe Int64)
data JobStatus

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

-- | <ul>
--   <li><i>Output-only</i> Running state of the job.</li>
--   </ul>
jsState :: Lens' JobStatus (Maybe Text)

-- | <ul>
--   <li><i>Output-only</i> Final error result of the job. If present,
--   indicates that the job has completed and was unsuccessful.</li>
--   </ul>
jsErrorResult :: Lens' JobStatus (Maybe ErrorProto)

-- | <ul>
--   <li><i>Output-only</i> All errors encountered during the running of
--   the job. Errors here do not necessarily mean that the job has
--   completed or was unsuccessful.</li>
--   </ul>
jsErrors :: Lens' JobStatus [ErrorProto]

-- | <ul>
--   <li><i>Experimental</i> 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 &lt;= 128 bytes in size.</li>
--   </ul>
--   
--   <i>See:</i> <a>tableLabels</a> smart constructor.
data TableLabels

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

-- | Creates a value of <a>DataSetAccessItem</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsaiGroupByEmail</a></li>
--   <li><a>dsaiDomain</a></li>
--   <li><a>dsaiSpecialGroup</a></li>
--   <li><a>dsaiRole</a></li>
--   <li><a>dsaiView</a></li>
--   <li><a>dsaiUserByEmail</a></li>
--   </ul>
dataSetAccessItem :: DataSetAccessItem

-- | <ul>
--   <li><i>Pick one</i> An email address of a Google Group to grant access
--   to.</li>
--   </ul>
dsaiGroupByEmail :: Lens' DataSetAccessItem (Maybe Text)

-- | <ul>
--   <li><i>Pick one</i> A domain to grant access to. Any users signed in
--   with the domain specified will be granted the specified access.
--   Example: "example.com".</li>
--   </ul>
dsaiDomain :: Lens' DataSetAccessItem (Maybe Text)

-- | <ul>
--   <li><i>Pick one</i> 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.</li>
--   </ul>
dsaiSpecialGroup :: Lens' DataSetAccessItem (Maybe Text)

-- | <ul>
--   <li><i>Required</i> 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.</li>
--   </ul>
dsaiRole :: Lens' DataSetAccessItem (Maybe Text)

-- | <ul>
--   <li><i>Pick one</i> 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.</li>
--   </ul>
dsaiView :: Lens' DataSetAccessItem (Maybe TableReference)

-- | <ul>
--   <li><i>Pick one</i> An email address of a user to grant access to. For
--   example: fred'example.com.</li>
--   </ul>
dsaiUserByEmail :: Lens' DataSetAccessItem (Maybe Text)
data TableDataInsertAllResponse

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

-- | The resource type of the response.
tKind :: Lens' TableDataInsertAllResponse Text

-- | An array of errors for rows that were not inserted.
tInsertErrors :: Lens' TableDataInsertAllResponse [TableDataInsertAllResponseInsertErrorsItem]
data QueryParameterType

-- | Creates a value of <a>QueryParameterType</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>qptStructTypes</a></li>
--   <li><a>qptType</a></li>
--   <li><a>qptArrayType</a></li>
--   </ul>
queryParameterType :: QueryParameterType

-- | <ul>
--   <li><i>Optional</i> The types of the fields of this struct, in order,
--   if this is a struct.</li>
--   </ul>
qptStructTypes :: Lens' QueryParameterType [QueryParameterTypeStructTypesItem]

-- | <ul>
--   <li><i>Required</i> The top level type of this field.</li>
--   </ul>
qptType :: Lens' QueryParameterType (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> The type of the array's elements, if this is an
--   array.</li>
--   </ul>
qptArrayType :: Lens' QueryParameterType (Maybe QueryParameterType)
data Table

-- | Creates a value of <a>Table</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tabCreationTime</a></li>
--   <li><a>tabEtag</a></li>
--   <li><a>tabNumBytes</a></li>
--   <li><a>tabExternalDataConfiguration</a></li>
--   <li><a>tabLocation</a></li>
--   <li><a>tabTableReference</a></li>
--   <li><a>tabFriendlyName</a></li>
--   <li><a>tabKind</a></li>
--   <li><a>tabLastModifiedTime</a></li>
--   <li><a>tabSchema</a></li>
--   <li><a>tabStreamingBuffer</a></li>
--   <li><a>tabSelfLink</a></li>
--   <li><a>tabTimePartitioning</a></li>
--   <li><a>tabNumRows</a></li>
--   <li><a>tabView</a></li>
--   <li><a>tabId</a></li>
--   <li><a>tabLabels</a></li>
--   <li><a>tabType</a></li>
--   <li><a>tabNumLongTermBytes</a></li>
--   <li><a>tabExpirationTime</a></li>
--   <li><a>tabDescription</a></li>
--   </ul>
table :: Table

-- | <ul>
--   <li><i>Output-only</i> The time when this table was created, in
--   milliseconds since the epoch.</li>
--   </ul>
tabCreationTime :: Lens' Table (Maybe Int64)

-- | <ul>
--   <li><i>Output-only</i> A hash of this resource.</li>
--   </ul>
tabEtag :: Lens' Table (Maybe Text)

-- | <ul>
--   <li><i>Output-only</i> The size of this table in bytes, excluding any
--   data in the streaming buffer.</li>
--   </ul>
tabNumBytes :: Lens' Table (Maybe Int64)

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
tabExternalDataConfiguration :: Lens' Table (Maybe ExternalDataConfiguration)

-- | <ul>
--   <li><i>Output-only</i> The geographic location where the table
--   resides. This value is inherited from the dataset.</li>
--   </ul>
tabLocation :: Lens' Table (Maybe Text)

-- | <ul>
--   <li><i>Required</i> Reference describing the ID of this table.</li>
--   </ul>
tabTableReference :: Lens' Table (Maybe TableReference)

-- | <ul>
--   <li><i>Optional</i> A descriptive name for this table.</li>
--   </ul>
tabFriendlyName :: Lens' Table (Maybe Text)

-- | <ul>
--   <li><i>Output-only</i> The type of the resource.</li>
--   </ul>
tabKind :: Lens' Table Text

-- | <ul>
--   <li><i>Output-only</i> The time when this table was last modified, in
--   milliseconds since the epoch.</li>
--   </ul>
tabLastModifiedTime :: Lens' Table (Maybe Word64)

-- | <ul>
--   <li><i>Optional</i> Describes the schema of this table.</li>
--   </ul>
tabSchema :: Lens' Table (Maybe TableSchema)

-- | <ul>
--   <li><i>Output-only</i> 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.</li>
--   </ul>
tabStreamingBuffer :: Lens' Table (Maybe Streamingbuffer)

-- | <ul>
--   <li><i>Output-only</i> A URL that can be used to access this resource
--   again.</li>
--   </ul>
tabSelfLink :: Lens' Table (Maybe Text)

-- | <ul>
--   <li><i>Experimental</i> If specified, configures time-based
--   partitioning for this table.</li>
--   </ul>
tabTimePartitioning :: Lens' Table (Maybe TimePartitioning)

-- | <ul>
--   <li><i>Output-only</i> The number of rows of data in this table,
--   excluding any data in the streaming buffer.</li>
--   </ul>
tabNumRows :: Lens' Table (Maybe Word64)

-- | <ul>
--   <li><i>Optional</i> The view definition.</li>
--   </ul>
tabView :: Lens' Table (Maybe ViewDefinition)

-- | <ul>
--   <li><i>Output-only</i> An opaque ID uniquely identifying the
--   table.</li>
--   </ul>
tabId :: Lens' Table (Maybe Text)

-- | <ul>
--   <li><i>Experimental</i> 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 &lt;= 128 bytes in size.</li>
--   </ul>
tabLabels :: Lens' Table (Maybe TableLabels)

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

-- | <ul>
--   <li><i>Output-only</i> The number of bytes in the table that are
--   considered "long-term storage".</li>
--   </ul>
tabNumLongTermBytes :: Lens' Table (Maybe Int64)

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
tabExpirationTime :: Lens' Table (Maybe Int64)

-- | <ul>
--   <li><i>Optional</i> A user-friendly description of this table.</li>
--   </ul>
tabDescription :: Lens' Table (Maybe Text)
data ErrorProto

-- | Creates a value of <a>ErrorProto</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>epDebugInfo</a></li>
--   <li><a>epLocation</a></li>
--   <li><a>epReason</a></li>
--   <li><a>epMessage</a></li>
--   </ul>
errorProto :: ErrorProto

-- | Debugging information. This property is internal to Google and should
--   not be used.
epDebugInfo :: Lens' ErrorProto (Maybe Text)

-- | Specifies where the error occurred, if present.
epLocation :: Lens' ErrorProto (Maybe Text)

-- | A short error code that summarizes the error.
epReason :: Lens' ErrorProto (Maybe Text)

-- | A human-readable description of the error.
epMessage :: Lens' ErrorProto (Maybe Text)
data CSVOptions

-- | Creates a value of <a>CSVOptions</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>coSkipLeadingRows</a></li>
--   <li><a>coAllowJaggedRows</a></li>
--   <li><a>coAllowQuotedNewlines</a></li>
--   <li><a>coQuote</a></li>
--   <li><a>coEncoding</a></li>
--   <li><a>coFieldDelimiter</a></li>
--   </ul>
csvOptions :: CSVOptions

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
coSkipLeadingRows :: Lens' CSVOptions (Maybe Int64)

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

-- | <ul>
--   <li><i>Optional</i> Indicates if BigQuery should allow quoted data
--   sections that contain newline characters in a CSV file. The default
--   value is false.</li>
--   </ul>
coAllowQuotedNewlines :: Lens' CSVOptions (Maybe Bool)

-- | <ul>
--   <li><i>Optional</i> 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.</li>
--   </ul>
coQuote :: Lens' CSVOptions Text

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

-- | <ul>
--   <li><i>Optional</i> 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 (',').</li>
--   </ul>
coFieldDelimiter :: Lens' CSVOptions (Maybe Text)
data JobStatistics3

-- | Creates a value of <a>JobStatistics3</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jsInputFiles</a></li>
--   <li><a>jsOutputRows</a></li>
--   <li><a>jsOutputBytes</a></li>
--   <li><a>jsInputFileBytes</a></li>
--   </ul>
jobStatistics3 :: JobStatistics3

-- | <ul>
--   <li><i>Output-only</i> Number of source files in a load job.</li>
--   </ul>
jsInputFiles :: Lens' JobStatistics3 (Maybe Int64)

-- | <ul>
--   <li><i>Output-only</i> Number of rows imported in a load job. Note
--   that while an import job is in the running state, this value may
--   change.</li>
--   </ul>
jsOutputRows :: Lens' JobStatistics3 (Maybe Int64)

-- | <ul>
--   <li><i>Output-only</i> Size of the loaded data in bytes. Note that
--   while a load job is in the running state, this value may change.</li>
--   </ul>
jsOutputBytes :: Lens' JobStatistics3 (Maybe Int64)

-- | <ul>
--   <li><i>Output-only</i> Number of bytes of source data in a load
--   job.</li>
--   </ul>
jsInputFileBytes :: Lens' JobStatistics3 (Maybe Int64)
data QueryResponse

-- | Creates a value of <a>QueryResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>qJobReference</a></li>
--   <li><a>qKind</a></li>
--   <li><a>qSchema</a></li>
--   <li><a>qTotalBytesProcessed</a></li>
--   <li><a>qRows</a></li>
--   <li><a>qPageToken</a></li>
--   <li><a>qNumDmlAffectedRows</a></li>
--   <li><a>qTotalRows</a></li>
--   <li><a>qErrors</a></li>
--   <li><a>qJobComplete</a></li>
--   <li><a>qCacheHit</a></li>
--   </ul>
queryResponse :: QueryResponse

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

-- | The resource type.
qKind :: Lens' QueryResponse Text

-- | The schema of the results. Present only when the query completes
--   successfully.
qSchema :: Lens' QueryResponse (Maybe TableSchema)

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

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

-- | A token used for paging results.
qPageToken :: Lens' QueryResponse (Maybe Text)

-- | <ul>
--   <li><i>Output-only, Experimental</i> The number of rows affected by a
--   DML statement. Present only for DML statements INSERT, UPDATE or
--   DELETE.</li>
--   </ul>
qNumDmlAffectedRows :: Lens' QueryResponse (Maybe Int64)

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

-- | <ul>
--   <li><i>Output-only</i> 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.</li>
--   </ul>
qErrors :: Lens' QueryResponse [ErrorProto]

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

-- | Whether the query result was fetched from the query cache.
qCacheHit :: Lens' QueryResponse (Maybe Bool)

-- | <ul>
--   <li><i>Experimental</i> The labels associated with this dataset. You
--   can use these to organize and group your datasets.</li>
--   </ul>
--   
--   <i>See:</i> <a>dataSetListDataSetsItemLabels</a> smart constructor.
data DataSetListDataSetsItemLabels

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

-- | <ul>
--   <li><i>Experimental</i> The labels associated with this table. You can
--   use these to organize and group your tables.</li>
--   </ul>
--   
--   <i>See:</i> <a>tableListTablesItemLabels</a> smart constructor.
data TableListTablesItemLabels

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